当前位置:   article > 正文

MySQL8.0修改密码以及修改表名不区分大小写_mysql8.0不区分大小写

mysql8.0不区分大小写


在MySQL安装MySQL8.0的时候,与MySQL5.7的修改有些区别,我们的需求是先修改MySQL表名不区分大小写,然后再赋予远程登陆权限。

一、修改MySQL表名不区分大小写

这一步需要在安装MySQL-Server后启动Server前实现,步骤为:

1)修改/etc/my.cnf中的变量,添加 lower-case-table-names=1

2)然后执行初始化命令:

mysqld --initialize --user=mysql --lower-case-table-names=1
  • 1

如果 /var/log/mysql/mysqld.log中有提示以下错误:

2020-08-19T10:46:21.497887Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').
2020-08-19T10:46:21.498110Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2020-08-19T10:46:21.498273Z 0 [ERROR] [MY-010119] [Server] Aborting
  • 1
  • 2
  • 3

则需要把MySQL的数据目录清空,默认的位置为:/var/lib/mysql,运行的命令为:

rm -rf /var/lib/mysql
  • 1

3)启动MySQL,命令为

service mysql start
  • 1

二、第一次修改MySQL密码

由于第一次修改MySQL密码的时候,是不允许使用alter语句的,默认会生成原始密码,在/var/log/mysql/mysql.log中有原始密码,如下:

2020-08-18T02:54:53.021683Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2020-08-18T02:55:01.111572Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2020-08-18T02:55:15.100986Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rlq5X%n5otUj
2020-08-18T02:55:51.237288Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.21) starting as process 4387
  • 1
  • 2
  • 3
  • 4

原始的密码为:rlq5X%n5otUj

然后使用 mysql -uroot -prlq5X%n5otUj,是不允许使用alter语句的。会提示以下错误:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement
  • 1

正确修改密码的做法是:

mysqladmin -uroot -poldpassword password Root@123
  • 1

-p后面的oldpassword是旧密码,Root@123是新密码,这样修改密码旧完成了,然后需要赋予远程远程登陆权限

三、赋予远程登陆权限

在MySQL8.0中和MySQL5.7不一样,MySQL5.7中只需要一条语句就完成了,然而在MySQL8.0需要用2条命令来完成,如下

CREATE USER 'root'@'%' IDENTIFIED BY 'Root@123';        //创建用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;        //赋予权限
  • 1
  • 2

到这里的时候,你以为一切都好了,But。。。你在用Navicate登陆的时候,还会报一个错误:Authentication plugin ‘caching_sha2_password’ cannot be loaded,如下:

出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password,这里选择还原加密规则,做法为:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123';
  • 1

Root@123为新密码,到这里为止,一切就完成了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/494983
推荐阅读
相关标签
  

闽ICP备14008679号