Linux下使用Navicat连接Mysql数据库常见错误的解决方法

欢迎喜欢编程语言知识和机器学习算法等科技类文章,以及经济和历史等文史类文章的朋友们关注公众号:CodingFarmer2019

我们一起格物致知和学史悟道,实现人生辉煌!

https://mp.weixin.qq.com/s?__biz=MzI0OTYxMTQyMw==&tempkey=MTExM19HK0JmQVN4ZG1UMUNqZ09PaHNhd0pNTXo4S3F2V2x4SFFhRGsxdkZyZVhWSklqZ29ydEJkZjhVZXZGTklhZ2YzNEhTQlRHdDBoaUFHWmNTdk5CRkdJQjRENTNSbVZtUmRqRDBXYUdDRTRrOHZJdDFIc1BaZGJPdmxxLVZkVGxuZXprY1Aydmc4QmJLVGdoZzVGdjh0TTJTSzZFYzNmQ2RVWG5jOGtBfn4%3D&chksm=e98f97fddef81eebd6ee7efaa2de0c926153921e75f4d06c7beb59a92b54ebe79c97bcb72ae0&token=1784588135&lang=zh_CN#rd

目录

一、Navicat连接异常,错误编号2059的解决方法

1. 登录mysql数据库

2. 查看mysql 8.0版本默认加密方式

3. 修改root账户的加密方式为mysql_native_password并设置密码为root

4. 修改成功后,刷新权限

二、Navicat连接异常,错误编号1045的解决方法

1. 跳过mysql的密码认证登录mysql

2. 重启mysql后免密登录mysql

3. 清空mysql密码:在mysql命令行下输入

4. 屏蔽第1步的跳过mysql密码认证登录

5. 重新登录mysql数据库

6. 修改mysql登录密码

7. 重新启动mysql,输入新密码进入mysql


一、Navicat连接异常,错误编号2059的解决方法

在首次使用navicate连接mysql数据库时,报错,错误编号2059:authentication plugin 'caching_sha2_password',如下图1所示:

 

                                                                       图1  Navicat连接异常时错误编号2059

本办法适用的环境为:mysql版本是8.0,navicate版本是12.0。出现此错误的原因为mysql 8.0版本之前使用mysql_native_password方式进行加密,现在使用caching_sha2_password方式加密。所以只需把mysql的加密方式改回mysql_native_password就可以。具体修改步骤为:

1. 登录mysql数据库

命令为mysql –uroot –p,回车后输入安装mysql时的初始密码即可登录mysql数据库,进入mysql命令行。登录成功后如下图2所示:

                                                                                                                   图2  成功登录mysql数据库

2. 查看mysql 8.0版本默认加密方式

在mysql命令行下输入:show variables like 'default_authentication_plugin'; ,果然mysql 8.0版本使用caching_sha2_password方式加密,如下图3所示:

                                                                                                                 图3  查看mysql 8.0版本默认加密方式

3. 修改root账户的加密方式为mysql_native_password并设置密码为root

在mysql命令行下输入:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '{root}'; ,修改成功的话,如下图4所示。之后输入命令:select host,user,plugin from mysql.user; 进一步确认是否修改成功,如下图5所示:

                                                                                                                 图4  成功修改root账户的加密方式以及密码

                                                                                                           图5  查看成功修改的root账户的加密方式

4. 修改成功后,刷新权限

在mysql命令行下输入:FLUSH PRIVILEGES;  

现在就可以愉快地使用navicat对mysql数据库进行进行可视化管理了。如果在上述第3步修改root账户加密方式以及密码时,不慎忘记了新修改的密码,在使用Navicat连接时出现编号为1045的错误,并且此时也无法通过命令mysql –uroot –p登录mysql数据库(因为无法键入密码),那么此时可重置mysql的root账户的密码,如下述第二部分的内容介绍。

二、Navicat连接异常,错误编号1045的解决方法

忘记mysql的登录密码时,使用navicate连接mysql数据库时,报错,错误编号1045:Access denied for user’root’@ 'localhost'(using password:YES),如下图6所示;通过命令mysql –uroot –p登录mysql数据库时,报错,如下图7所示:

                                                                                                             图6  Navicat连接异常时错误编号1045

                                                                                                                        图7  无法登录mysql数据库

本办法适用的环境为:mysql版本是8.0,navicate版本是12.0。出现此错误的原因为登录密码错误,解决的办法自然就是重置密码。具体步骤为:

1. 跳过mysql的密码认证登录mysql

通过cd命令进入到根目录下的etc/mysql文件夹,使用vim工具编辑my.cnf配置文件,命令为:sudo vim my.cnf,回车后按“i”键进入编辑模式,输入[mysqld] skip-grant-tables,按Ese退出编辑模式后,再键入“:wq”表示退出vim编辑并保存,此时已在my.cnf配置文件中加入了跳过密码认证登录mysql的语句,如下图8所示:

                                                                                                         图8  my.cnf配置文件输入跳过密码认证登录的语句

2. 重启mysql后免密登录mysql

在mysql文件夹的命令行下输入命令:service mysql restart,重启后输入命令:mysql,登录mysql数据库。

3. 清空mysql密码:在mysql命令行下输入

use mysql; 再输入清空密码的命令:update user set authentication_string=’’ where user=’root’; 之后输入命令退出mysql:exit。各条命令的输入详情如下图9所示:

                                                                                                                    图9  mysql密码清空的命令

4. 屏蔽第1步的跳过mysql密码认证登录

通过cd命令进入到根目录下的etc/mysql文件夹,使用vim工具编辑my.cnf配置文件,命令为:sudo vim my.cnf,回车后按“i”键进入编辑模式,在[mysqld] skip-grant-tables语句前面加#即可注释,按Ese退出编辑模式后,再键入“:wq”表示退出vim编辑并保存,此时已在my.cnf配置文件中加入了屏蔽第1步的跳过密码认证登录mysql的语句。输入命令:service mysql restart重启mysql,让my.cnf的修改生效。

5. 重新登录mysql数据库

命令为mysql –uroot –p,因为密码清空了,直接回车后就可登录。

6. 修改mysql登录密码

在mysql命令行下输入:use mysql切换到mysql数据库; 再输入设置密码的命令:ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ’root’; 就将mysql的root账户的密码重置为root,之后输入命令:FLUSH PRIVILEGES; 刷新mysql相关系统权限表,之后输入命令退出mysql:exit。各条命令的输入详情如下图10所示:

                                                                                                                       图10  mysql密码重置的命令

7. 重新启动mysql,输入新密码进入mysql

在mysql文件夹的命令行下输入命令:service mysql restart重启mysql,之后输入命令mysql –uroot –p,回车后输入新设置的密码即可登录mysql数据库,进入mysql命令行。各条命令的输入详情如下图11所示:

 

                                                                                                          图11  使用新设置的密码登录mysql数据库

现在通过root账号的新密码root就可以愉快地使用navicat连接mysql数据库了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值