CentOS 7 环境下 mysql5.7的安装与配置

环境要求

  • CentOS 7
  • 较好网络
  • yum已配置完成

安装mysql源

# mysql源下载
#当然你也可以选择其他镜像站的资源
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

CentOS 7 环境下 mysql5.7的安装与配置

# 安装 mysql 源
yum localinstall mysql57-community-release-el7-11.noarch.rpm

需要下载相关的资源文件,需要一定的时间,慢慢等待···
CentOS 7 环境下 mysql5.7的安装与配置
安装完成后,查看mysql源是否安装完成

yum repolist enabled | grep "mysql.*-community.*"

CentOS 7 环境下 mysql5.7的安装与配置

安装mysql

通过yum install 命令进行安装

yum install -y mysql-community-server

CentOS 7 环境下 mysql5.7的安装与配置
在这里解释下yum安装时 yum -y install 和 yum install 之间的区别:
如果使用yum install xxxx,会找到安装包之后,询问你Is this OK[y/d/N],需要你手动进行选择。但是如果加上参数-y,就会自动选择y,不需要你再手动选择!

启动mysql

在CentOS7 下,将使用新的启动服务命令 systemctl start XXX

# 启动mysqld服务
systemctl start mysqld
# 启动后查看mysql状态
systemctl status mysqld

CentOS 7 环境下 mysql5.7的安装与配置

出现绿色的 “active (runing)” 就表明mysql 服务已经成功启动!

mysql开机启动设置

systemctl enable mysqld
# 重新加载所有修改后的配置文件
systemctl daemon-reload

修改mysql密码

mysql 安装完成之后,会生成一个初始密码,保存在 /var/log/mysqld.log 文件中。使用 grep 命令找到日志中的密码。

grep 'temporary password' /var/log/mysqld.log

CentOS 7 环境下 mysql5.7的安装与配置
用拿到的初始密码登录进去后,需要修改下这个密码,不然无法选择mysql数据库进行下一步的操作。
mysql -u用户名 -p 按回车(enter),输入密码后回车(enter)

# mysql 登录
mysql -uroot -p
# 选择mysql数据库
mysql> use mysql;

由于没有进行密码修改,所以无法选择mysql数据。CentOS 7 环境下 mysql5.7的安装与配置
在第一次通过初始密码登录后,使用以下命令修改初始密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '123ABCpassword!!'; 
#或者
set password for 'root'@'localhost'=password('123ABCpassword!!'); 

第一次修改初始密码后,再次需要修改密码:

  • (老版本5.7以下)修改密码:UPDATE user SET Password = password (‘xxxxxx’) WHERE User = ‘root’ ;
  • 特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了而是将加密后的用户密码存储于authentication_string字段
# 登录
mysql -uroot -p
#选择mysql
use mysql;
#修改密码
update user set authentication_string=PASSWORD('xxxxxxx') where user='root';

CentOS 7 环境下 mysql5.7的安装与配置

  • 注意
    mysql 5.7 默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 错误。

添加远程登录用户

默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须添加一个允许远程连接的帐户。或者修改 root 为允许远程连接(强烈不推荐)

# 添加远程账号
GRANT ALL PRIVILEGES ON *.* TO 'abc'@'%' IDENTIFIED BY 'xxxx密码xxxx' WITH GRANT OPTION;

编码配置

mysql 安装后默认不支持中文,需要修改编码。
修改 /etc/my.cnf 配置文件,在相关节点(没有则自行添加)下添加编码配置

[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

退出mysql,重启mysql后,查看修改后的配置

#退出mysql
mysql>exit;
#重启
systemctl restart mysqld
#登录进去后进行配置查看
mysql -uroot -p
# 查看编码
show variables like 'character%';
# 查看时区
show variables like '%time_zone%'

CentOS 7 环境下 mysql5.7的安装与配置
CentOS 7 环境下 mysql5.7的安装与配置
time_zone 表明当前mysql使用的时间是系统时间。