本章节阐述为在指定版本环境下示例安装,其它环境可根据实际情况参考安装
一. 下载mysql
软件 | 版本 | centos环境 | 下载地址 | 提取码 |
mysql | 5.7.19.el7.x86_64 | el7 | 6s86 | |
mysql | 5.7.20.el6.x86_64 | el6 | de6m | |
mysql | 官网定制下载 | 官网定制下载 | – |
官网下载较慢,上面第一二个可从百度云快速提取
二. 环境准备
- 使用Centos7环境
- 使用 5.7.19.el7.x86_64 mysql包
三. 卸载旧版本
- 检查是否存在旧mysql
rpm -qa|grep -i mysql
- 依次卸载
rpm -e –nodeps 包名
#如果提示错误,尝试用下列命令执行
rpm -ev 包名 --nodeps
rpm -e --noscripts 包名
- 查找之前老版本mysql的目录、并且删除老版本mysql的文件和库
# 查询
find / -name mysql
# 显示下列结果
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
# 依次删除
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /usr/lib64/mysql
四. 开始安装
- 上传压缩文件到服务器
- 解压压缩文件到当前目录
tar -xvf mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar
- 安装
rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm --force --nodeps
注意,安装第二步时可能会出现以下问题,卸载 centos 自带的 mariadb 包后重新执行安装命令
- 修改配置文件
vim /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysql]
[mysqld]
#设置端口
port = 3306
#数据存储路径
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#错误日志路径
log-error=/var/log/mysqld.log
#日志路径
pid-file=/var/run/mysqld/mysqld.pid
disable-partition-engine-check=1
#只能用IP地址检查客户端的登录,不用主机名
skip_name_resolve = 1
##数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server=utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server=utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
#最大连接数
max_connections=400
##最大错误连接数
max_connect_errors=1000
#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet=128M
#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout 值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout=1800
wait_timeout=1800
#mysql binlog日志文件保存的过期时间,过期后自动删除
expire_logs_days=5
############################主从复制 设置########################################
#开启mysql binlog功能
#log-bin=mysql-bin
#binlog记录内容的方式,记录被操作的每一行
#binlog_format = ROW
##作为从库时生效,想进行级联复制,则需要此参数
#log_slave_updates
#作为从库时生效,中继日志relay-log可以自我修复
#relay_log_recovery = 1
- 启动
systemctl start mysqld
- root用户登陆
mysql5.7之后初始密码不再默认为空,需通过命令查询:
grep 'temporary password' /var/log/mysqld.log
即初始密码为:Ag_aGz0D/Pa9 (密码是随机产生的)
- 登陆mysql
mysql -p
# 修改root密码
use mysql;
update user set authentication_string=password("123456") where user="root";
flush privileges;
- 设置开机自启
systemctl enable mysqld.service