Linux Mysql8.0开启忽略表大小写后,无法启动,解决方案和查看MySQL默认密码或重置密码

Linux Mysql8.0开启忽略表大小写后,无法启动,解决方案

mysql8.0默认是区分大小写。因此如果要设置忽略大小写,需要在安装完成之后,初始化数据库的时候进行设置。初始化完成之后在启动数据库,否则的话就会是无效的,未启动之前可以使用以下命令操作。

/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1

如果要是已经启动了数据库,在/etc/my.cnf配置文件中再去修改不区分大小写,就会造成数据库无法启动的情况
如果出现这个情况,首先需要删除掉 /var/lib/mysql 文件夹下面的所有的文件,数据会被清除掉,有需要的备份所有表数据,密码也会被清除掉。再去修改配置文件my.cnf添加lower_case_table_names=1,在启动mysql。这样可以解决。

systemctl start mysqld.service

Linux MySQL查看默认密码

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

上述查看可能的密码不正确(忘记密码也可以使用以下操作),可以使用以下操作。

 vim /etc/my.cnf
  • 在[mysqld]下加入 skip-grant-tables(这个意思是跳过权限验证,可免密码登录 ),然后保存退出,重启mysql。
    登录

  • mysql -u root -p (回车,密码可不用输入继续回车即可)。

    mysql> UPDATE user SET password=password("test123") WHERE user='root';
    mysql> flush privileges;
    
  • 如果抛出 Your password does not satisfy the current policy requirements 的错误(密码不符合规范),请查看下篇文章。
    https://blog.csdn.net/weixin_43947102/article/details/123542528

  • 编辑my.cnf文件删掉或者注释skip-grant-tables 这一行,然后重启MySQL,否则MySQL仍能免密码登录

  • mysql -u root -p输入密码

你可能感兴趣的:(linux,mysql,数据库)