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

本文指导如何在MySQL8.0中设置表名不区分大小写,并演示了初次修改密码过程,包括赋予远程登录权限,及解决navicat连接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在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

如果 /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

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

rm -rf /var/lib/mysql

3)启动MySQL,命令为

service mysql start

二、第一次修改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

原始的密码为:rlq5X%n5otUj

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

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

正确修改密码的做法是:

mysqladmin -uroot -poldpassword password Root@123

-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;        //赋予权限

到这里的时候,你以为一切都好了,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';

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值