解决Navicat连接MySQL出现1251-Client does not support authentication protocol requested by server;
MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
一:MySQL的安装
在windows下面,点击mysql下载链接,去下载页面下载,下载页有安装包和解压包两种,随便下载哪种都可以。
下载完之后,安装包选择安装,安装过程当中会设置初始的一些账户名称和密码,要记住。解压包就解压在你想解压的文件夹下面就可以了。现在文件夹下面一般是没有data目录(一个空的目录结构)和my.ini文件的,所以这就需要自己新建。
其中,my.ini文件内容比较简单,如下:
[mysqld]
basedir=C:\Program Files\MySQL\MySQL Server 8.0
datadir=C:\Program Files\MySQL\MySQL Server 8.0\data
port = 3306
character-set-server=utf8
#忘记密码时使用
#skip-grant-tables
#设置协议认证方式(重点啊)
default_authentication_plugin=mysql_native_password
[mysql]
default-character-set=utf8
二:设置MySQL的环境变量
这个都比较简单,在win10界面左下角查询框当中去查询"高级系统设置",然后弹出下面这个界面
设置完成之后,编辑Path系统变量:在系统变量里,找到Path变量,点击“编辑”按钮,我们将;%MYSQL_HOME%\bin添加到path变量(一般放在最后面),注意如果前面有还有其他的配置,一定要在前面加上英文的分号(半角)。MYSQL_HOME不是必须的,为了以后mysql重新安装到其他目录下的更改方便,毕竟Path系统变量比较多,修改容易出错,因此也可直接在Path变量中添加:C:\Program Files\MySQL\MySQL Server 8.0\bin
三:出现的一个错误
在安装完MySQL的时候,我们现在一般都使用Navicat来连接数据库,可惜出现下面的错误:1251-Client does not support authentication protocol requested by server; consider upgrading MySQL client。
出现上述问题的原因是:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password 把mysql用户登录密码加密规则还原成mysql_native_password
我安装的时候是使用的安装包去安装的,所以新建了几个用户,cmd命令,连接mysql,查询系统当中所有的用户。
1.查看MYSQL数据库中所有用户
mysql> SELECT DISTINCT CONCAT(‘User: ‘’’,user,’’’@’’’,host,’’’;’) AS query FROM mysql.user;
2.修改加密规则,因为最新版的加密规则好像不一样,安装的过程当中是有提示的。
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;;
3.修改用户的认证规则
mysql> alter user ‘用户名’@’%’ identified with mysql_native_password by ‘密码’;
例如我的用户名是admin,密码是123456,那么,我修改的规则如下
mysql> alter user ‘admin’@’%’ identified with mysql_native_password by ‘123456’;
其中还有’用户名’@’%‘和’用户名’@'localhost’的区别,一个是任意连接,一个是本地连接。
4.刷新权限
mysql> flush privileges;
5.停止并重启服务
mysql> net stop mysql
mysql> net start mysql
这里需要注意的是:mysql这个是你的mysql服务的名称,具体名称如何查询呢?假如你的服务名称为MySQL80,那么mysql就得改成MySQL80。
现在再去用Navicat去连接数据库,就不会出现上述的问题了。
相关文章
- MySQL存储过程详解 mysql 存储过程
- MySQL :: MySQL Installation Guide :: 7.6.1 Basic Steps for MySQL Server Deployment with Docker
- SQL Server - Management Studio - Client Statistics - Wait time on server replies vs Client processing time
- is-a,has-a,like-a是什么 sql server中,N''表示什么意思? 关于SQL SERVER的N前缀的理解
- Mysql连接错误:Lost connection to Mysql server at 'waiting for initial communication packet'
- mysql远程连接 Host * is not allowed to connect to this MySQL server
- 从SQL Server到MySQL,4款主流迁移工具到底哪家强?
- Mysql错误check the manual that corresponds to your MySQL server version for the right syntax
- MySQL第四讲 MySql Undo日志 - 对聚簇索引进行CUD操作
- 【MySQL进阶-01】深入理解mysql索引本质
- .NET/Mysql-petatoco连接mysql数据库
- 通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
- JDBC 连接 MySQL 异常:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed
- mac ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- 使用navicat连接mysql连接错误:Lost connection to Mysql server at 'waiting for initial communication packet'
- MYSQL导入csv类型的数据出现The MySQL server is running with the --secure-file-priv option
- python操作mysql数据库系列-操作MySql数据库(三)
- mysql远程连接 Host is not allowed to connect to this MySQL server
- mysql报错:Can’t start server: Bind on TCP/IP port: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
- 【3.3】mysql链接服务器,Federated存储引擎实现远程表,相当于sql server的连接服务器
- 最小配置启动SQL SERVER,更改SQL Server最大内存大小导致不能启动的解决方法
- 【sql server镜像】SQL SERVER 基于数据库镜像的主从同步(数据库镜像实践汇总)
- mysql和sql server的按组连接
- Mac - Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- Eclipse中使用MySql遇到:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading o
- node连接mysql:Client does not support authentication protocol requested by server; consider upgrading
- MySQL 教程(基础篇)第04话:mysqld 和 mysql 命令的区别