CentOS 7 安装 MySQL 8.0
1. 安装 MySQL 8.0 的yum源
wget -i https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
yum install mysql80-community-release-el7-2.noarch.rpm(rpm -ivh)
2. 安装 MySQL
yum install mysql-community-server
3. 修改 所有者
sudo chown -R root:root /var/lib/mysql
4. 启动 MySQL 服务
systemctl start mysqld.service
service mysqld restart (CentOS 6 使用)
systemctl status mysqld.service
5. 查看 root 密码
cat /var/log/mysql.log
6. 登陆 MySQL
mysql -u root -p
7. 修改 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
flush privileges;
注: MySQL 8.0 更改密码策略,密码包含大小写字母数字特殊字符
8. 开启mysql的远程访问
update user set host = "%" where user = "root";
9. Navicat 连接(Windows 下)
MySQL 8.0 修改了 加密插件,默认为:caching_sha2_password,默认字符集为:utf8mb4 ( 支持 Emoji 表情存储 ) 导致 无法连接,可以修改加密插件,改为原来的 mysql_native_password
在my.cnf(或mi.ini) 中的 [mysqld] 下添加
default_authentication_plugin=mysql_native_password
character_set_server =utf8
重启 Mysql 服务
net start mysql ( Windows 下以管理员身份运行 )
systemctl restart mysqld.service (CentOS7)
登陆 Mysql 后,运行
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
忘记密码修改方法
利用--init-file参数解决
该参数指定服务启动时先执行一个包含sql命令文件,因此,只需要将重置密码的命令写在该文件中,以此参数指定启动时执行该命令,启动完成即可重置系统密码了。
第一步,关掉系统服务
net start mysql ( Windows 下以管理员身份运行 )
systemctl restart mysqld.service (CentOS7)
第二步,创建一个文本文件mysqlc.sql,内含一条密码修改命令
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysql@123456';
第三步:命令行方式启动服务器,指定启动时执行上述的密码修改命令文件
mysqld --init-file=(mysqlc.sql文件路径)--console
附录
/etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]