1.下载 MySQL yum包
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
2.安装MySQL源
rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
3.安装MySQL服务端
yum install -y mysql-community-server
4.启动MySQL
systemctl start mysqld.service
5.检查是否启动
systemctl status mysqld.service
6.获取临时密码,MySQL5.7为root用户随机生成了一个密码
grep 'temporary password' /var/log/mysqld.log 或者 cat /var/log/mysqld.log |grep password
7. 通过临时密码登录MySQL,进行修改密码操作
mysql -u root -p
MySQL的默认密码规则需要很复杂,设置一下密码规则
mysql> set global validate_password_policy=LOW;
mysql> flush privileges;
设置密码
mysql> alter user 'root'@'localhost' identified by '12345678$%^';
8. 授权其他机器远程登录
mysql> update user set Host='%' where User='root';
mysql> grant all privileges on *.* to 'root'@'%' identified by 'yourpassword' with grant option;
mysql> flush privileges;
9.设置开机自启动
systemctl enable mysqld
systemctl daemon-reload
10.设置MySQL的字符集为UTF-8,令其支持中文
vim /etc/my.cnf
[mysql]
default-character-set=utf8
重启MySQL,令配置生效
service mysqld restart
11.防火墙开放3306端口
firewall-cmd --state
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
常见问题
1. MySQL修改密码报错:Your password does not satisfy the current policy requirements
1、查看MySQL的密码策略
SHOW VARIABLES LIKE 'validate_password%';2、设置密码的验证强度等级,设置 validate_password_policy 全局参数为 LOW
set global validate_password_policy=LOW;3、设置 validate_password_length 的全局参数为 6
set global validate_password_length=6;
2.MySQL修改密码报错 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
加载授权表到MySQL服务器
FLUSH PRIVILEGES;
重新执行密码修改语句
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
3.MySQL登录错误 1045 (28000): Access denied for user 'root @'localhost' (using password: YES)
检查3306端口是否开启,如果开启3306端口后,出现了没有权限的问题。
进到mysql中,检查user表
SELECT host, user FROM mysql.user;
一般没有权限是因为里面与root相关的一条数据,host: localhost, user: root。意思是root用户只允许在本机访问,通过修改host值来解决。
update mysql.user set host = '%' where host = 'localhost' and user = 'root';
改完重启服务
sudo service mysqld restart;