navicat连接MySql8

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/niufeiyun/article/details/97133176

安装环境:CentOS / 7.5 x86_64 (64bit)

MySql版本:8.0.17(本文不适用8.0以下版本)

一、修改默认密码

MySql安装完成后会在  mysqld.log  文件中生成一个默认的密码

使用命令  cat /var/log/mysqld.log  查看该文件:

A temporary password is generated for root@localhost: 8fMLhvG?Qdks   其中   8fMLhvG?Qdks  就是生成的密码。

使用  mysql -u root -p  登录mysql

输入mysqld.log中生成的密码即可登录如下图。

输入use mysql 命令进入mysql库

此时报错了:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.  翻译过来是  在执行此命令之前你必须使用 ALTER USER 语句重置你的密码。

现在使用语句 alter user 'root'@'localhost' identified by 'root'; 重置密码

又报错了:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements  你的密码不满足当前策略的要求。

使用命令:show variables like 'validate_password%';   查看密码策略

默认为:最小长度8,包含大小写字母、数字、和特殊字符。

再执行新的语句将密码设置为满足策略要求:alter user 'root'@'localhost' identified by 'jCodeYun@123';

再执行  flush privileges; 完成修改。

如果是用于测试或是其他原因想设置简单密码,就要执行下面的语句修改默认密码策略了。

set global validate_password.policy=0;

set global validate_password.length=4;

set global validate_password.mixed_case_count=0;

set global validate_password.number_count=0;

set global validate_password.special_char_count=0;

set global validate_password.check_user_name=0;

flush privileges;

完成密码策略修改。

再执行新的语句:alter user 'root'@'localhost' identified by 'root';

修改成功了,执行  flush privileges; 完成修改。生产环境请勿设置弱密码

二、连接navicat

在navicat中新建MySQL连接,默认端口3306,点击测试连接按钮,若出现下图中的错误可能是账号只允许在localhost登录。

在服务器使用  mysql -u root -p  登录mysql 使用 use mysql 进入mysql库执行下面的命令:

update user set host = '%' where user ='root';

flush privileges;

在点击测试连接,可能回报如下错误:

错误原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password

解决办法

更改加密方式:ALTER USER 'root'@'%' IDENTIFIED BY 'jCodeYun@123' PASSWORD EXPIRE NEVER;

更新用户密码:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'jCodeYun@123';

flush privileges;

现在单击测试连接按钮  连接成功!

猜你喜欢

转载自blog.csdn.net/niufeiyun/article/details/97133176