CentOS7安装MySQL8.0踩坑记录

写这篇博客的是因为现在很多都是基于5.7版本的,而且对一些细节讲得不清楚。

很多文章说要先删除mariadb,其实不用的,现在安装了MySQL就会自动被覆盖。

首先就是下载:

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql80-community-release-el7-3.noarch.rpm

这里多说一句,我看到有小白在别人5.7的博客上问为什么下载不了,因为url会随版本更新变化,这个要自己去官网上看https://dev.mysql.com/downloads/repo/yum/.

然后安装

yum -y install mysql-community-server

安装完了开启服务

 systemctl start  mysqld.service

看默认密码是多少

grep "password" /var/log/mysqld.log

然后就用默认密码登录

mysql -uroot -p

而我在这一步出了问题,提示access deny!

其他博客的方法都是在/etc/my.cnf里加skip-grant-tables,这是对的,但是按着做还是有问题,原因就是细节不对,这里我详细一点

首先把服务停掉(重要)

systemctl stop mysqld.service

然后把skip-grant-tables加到/etc/my.cnf

然后在开启服务

这样打开数据库:

mysql -uroot

这样是不需要密码的,而我们的目的正是设置密码

别的教程会告诉你输grant all privileges on *.* to 'root'@'localhost' identified by '新密码' with grant option;这是对的,但是它是5,7版本的,不适用于8.0。

正确的方法是:

首先重新加载一下授权表

FLUSH PRIVILEGES;

然后还是不急改密码,先看下用户表再说!

select user,host from user;

结果是:

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
+------------------+-----------+

而官网https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html告诉我们这么写:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

道理上没毛病,但是我的root用户的host不是localhost 而是 %,那我就应该这么写:

ALTER USER 'root'@'%' IDENTIFIED BY 'MyNewPass';

因为我们没有改安全规则什么的,所以密码要设的符合安全要求,得同时有大小写特殊符号数字,还得大于8位。

然后保险起见我们反复操作一下:

flush privileges;
ALTER USER 'root'@'%' IDENTIFIED BY 'MyNewPass';
exit;

退出MySQL,再次关闭mysqld服务

然后把/etc/my.cnf恢复原状!

然后再开启服务,用你的新密码登录,发现可以登录成功了!

总结一下我遇到的问题就是

  1. 没有正确的停止/开启服务,启停发生在修改配置文件前后,或许只有我这样憨憨修改配置文件不关服务。
  2. 改密码时照搬官方文档,其实应该根据自己的情况变化一下的。
  3. 没有把配置文件恢复原状,如果你的配置文件里带着skip-grant-tables会导致很多功能不能正常使用,所以一定要恢复原状。很多教程没有写这一点,这个也是根据官方文档传达的精神摸索出来的,官方文档的说法是先带--skip-grant-tables参数启动服务,再改了密码,关闭服务,再正常启动服务。但是我带了--skip-grant-tables参数也没有启动成功,可能需要其他参数吧,有点没看懂,但是结合修改配置文件的方法也就成功了,因为原理是一样的。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值