MySQL8.0版本安装踩坑指南

前提:RedHat7.4,MySQL8.0以上版本,可连接外网

1.安装rpm包

wget https://dev.mysql.com/downloads/repo/yum/mysql80-community-release-el7-3.noarch.rpm

rpm -ivh mysql-community-release-el7-5.noarch.rpm

yum update

yum install mysql-server

 

2.设置权限

chown mysql:mysql -R /var/lib/mysql

 

3.初始化MySQL

mysqld --initialize

 

4.启动MySQL

systemctl start mysqld

这时候会报以下错误:

Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

查看systemctl status mysqld.servicejournalctl -xe并不能很详细的反馈错误信息

只有去查看日志less /var/log/mysqld.log

 

方法一:

修改mysql文件的权限,chmod -R 777 /var/lib/mysql

方法二:

停止mysql进程(此处我们根本就没启动,所以不必停止)

进入目录cd /var/lib/mysql

删除ib_logfile0ib_logfile1两个文件

再次执行systemctl start mysqld

最后查看mysql进程是否启动systemctl status mysqld

 

5.修改root初始密码

跳过密码校验直接登录,在/etc/my.cnf文件中找到[mysqld],添加一行内容skip-grant-tables

重启mysql进程,systemctl restart mysqld

执行mysql或者mysql -uroot -p无密码进入数据库

注意:mysql8.0以上密码策略限制必须要大小写加数字加特殊符号

刷新权限表,执行命令flush privileges;

修改root密码,'%'意为任何ip都可以连接该mysql,alter user'root'@'%' IDENTIFIED BY 'MyNewPass@123';

退出数据库,删除my.cnf中添加的skip-grant-tables

重启mysql进程,systemctl restart mysqld

执行mysql -uroot -pMyNewPass@123成功进入数据库

 

6.开启远程连接

进入数据库,执行use mysql;

授权,执行 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyNewPass@123' WITH GRANT OPTION;

如果报错可先执行update user set host = '%' where user = 'root';

刷新权限表,执行命令flush privileges;

再次执行授权命令,此时依然无法连接,原因是MySQL8.0的密码加密规则发生了改变

MySQL8.0之前的版本密码加密规则:mysql_native_password

MySQL8.0密码加密规则:caching_sha2_password

执行命令ALTER USER 'root'@'%' IDENTIFIED BY 'MyNewPass@123' PASSWORD EXPIRE NEVER;

执行命令ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'MyNewPass@123';

加密规则修改之后,同时修改密码,执行ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'MyNewPasswd@123';

此时执行命令GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyNewPasswd@123' WITH GRANT OPTION;

退出数据库,查看3006端口是否在工作

根据版本,执行systemctl status firewall.servicesystemctl status firewalld查看防火墙状态

执行systemctl stop firewalld或者systemctl stop firewall.service 停止防火墙

 

打开Navicat,输入信息后连接成功

至此,MySQL8.0版本的安装就算完成了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值