但在应用进程中,自从学习并利用它使用到实在的支出的进度中照旧会蒙受不菲的难点

原因

当我试图使用mysql模块来连接MySQL 8时,出现了如下错误信息:

mysql8.0用户密码设置注意事项

use mysql; update user set authentication_string="newpassword" where user="root";

引言

前言

③查看mysql 数据库的 user 表中当前 root 用户的相关信息

这样会给user表中root用户的authentication_string字段下设置了newpassword值;

执行该命令,结果为Query OK说明修改成功,如下图所示。

D:workspaceGithubnodejs-book-samplessamplesmysql-demoindex.js:17throw error;^Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL clientat Handshake.Sequence._packetToError (D:workspaceGithubnodejs-book-samplessamplesmysql-demonode_modulesmysqllibprotocolsequencesSequence.js:47:14)at Handshake.ErrorPacket (D:workspaceGithubnodejs-book-samplessamplesmysql-demonode_modulesmysqllibprotocolsequencesHandshake.js:123:18)at Protocol._parsePacket (D:workspaceGithubnodejs-book-samplessamplesmysql-demonode_modulesmysqllibprotocolProtocol.js:291:23)at Parser._parsePacket (D:workspaceGithubnodejs-book-samplessamplesmysql-demonode_modulesmysqllibprotocolParser.js:433:10)at Parser.write (D:workspaceGithubnodejs-book-samplessamplesmysql-demonode_modulesmysqllibprotocolParser.js:43:10)at Protocol.write (D:workspaceGithubnodejs-book-samplessamplesmysql-demonode_modulesmysqllibprotocolProtocol.js:38:16)at Socket.anonymous (D:workspaceGithubnodejs-book-samplessamplesmysql-demonode_modulesmysqllibConnection.js:91:28)at Socket.anonymous (D:workspaceGithubnodejs-book-samplessamplesmysql-demonode_modulesmysqllibConnection.js:525:10)at Socket.emit (events.js:196:13)at addChunk (_stream_readable.js:290:12)--------------------at Protocol._enqueue (D:workspaceGithubnodejs-book-samplessamplesmysql-demonode_modulesmysqllibprotocolProtocol.js:144:48)at Protocol.handshake (D:workspaceGithubnodejs-book-samplessamplesmysql-demonode_modulesmysqllibprotocolProtocol.js:51:23)at Connection.connect (D:workspaceGithubnodejs-book-samplessamplesmysql-demonode_modulesmysqllibConnection.js:119:18)at Object.anonymous (D:workspaceGithubnodejs-book-samplessamplesmysql-demoindex.js:12:12)at Module._compile (internal/modules/cjs/loader.js:759:30)at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)at Module.load (internal/modules/cjs/loader.js:628:32)at Function.Module._load (internal/modules/cjs/loader.js:555:12)at Function.Module.runMain (internal/modules/cjs/loader.js:826:10)at internal/main/run_main_module.js:17:11

二、MySQL8.0 的远程链接

ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '新密码';FLUSH PRIVILEGES; #刷新数据

具体原因:新的MySQL 8.0安装,在初始化数据目录时,将
‘root’@’localhost’创建帐户,并且该帐户caching_sha2_password默认使用,密码的加密方法发生了改变,因此SQLyog不能正常解析,才报出如上错误。

导致这个错误的原因是,目前,最新的mysql模块并未完全支持MySQL
8的“caching_sha2_password”加密方式,而“caching_sha2_password”在MySQL
8中是默认的加密方式。因此,下面的方式命令是默认已经使用了“caching_sha2_password”加密方式,该账号、密码无法在mysql模块中使用。

如果还是用原来5.7的那种方式,会报错误:

分析原因:

按照以下sql格式输入命令,其中password是指root账号的密码。

mysql ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';Query OK, 0 rows affected (0.12 sec)

mysqli_real_connect(): The server requested authentication method
unknown to the client [sha256_password]

重置密码

以管理员运行—-,如下图所示:

再此运行应用,可以看到如下的控制台输出信息:

今天在新服务上配置安装mysql8.0.11时,像往常一样设置mysql密码,设置成功后在shell下输入mysql
-u root
-p,再输入密码能正常进入,但在phpmyadmin或直接用上的连接,均提示无法连接,具体报错信息为

到此为止自己创建的本地MySQL创建完毕!!!重新连接即可!!!

该错误提示如下图所示:

上述语句,显示指定了使用“mysql_native_password”的加密方式。这种方式是在mysql模块能够支持。

grantallprivilegeson*.*to’sroot’@’%’identifiedby’123123′;

ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondsto
yourMySQLserverversionfortherightsyntaxtousenear’identifiedby’123123”atline1

成功连接!!!

键入root账号的密码如下所示.

解决方法是从新修改用户root的密码,并指定mysql模块能够支持的加密方式:

查看mysql 数据库中存储的用户信息的 user 表。

1.解压缩文件,复制key

解决方案

$ node index.jsThe result is: RowDataPacket { user_id: 1, username: '老卫' }

执行完命令后显示一个表格, root 用户的 host默认显示的
localhost,说明只支持本地访问,不允许远程访问。

然后会在C:mysql-8.0.17-winx64mysql-8.0.17-winx64目录下生成data目录

MySQL新版本有它的优势,也有一定弊端,再选择之前我们要充分的斟酌,以免出现一些不可预知的问题。只有不但的发现问题,解决问题,总结解决方法,才能不断的提升自己,若本文能帮你了解或者解决该问题,希望添加关注!

源码

回车后输入密码

步骤2.使用ALTER修改root用户密码,方法为:

用SQLyog重新连接MySQL,可以成功连接。此时查看mysql数据库中的user表,发现root账号的插件名称发生了变化,如下所示。

解决方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

写在前面

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

本文介绍了出现该问题的原因及解决方案。

执行命令为:mysql -u root -p

host: 允许用户登录的ip;

用SQLyog连接MySQL8.0(社区版:mysql-installer-community-8.0.15.0.msi),出现错误2058(Plugin
caching_sha2_password could not be
loaded:xxxx),通过查询资料了解了该错误的原因并在本文中提出了该问题的方案。

出错原因

一、创建用户和授权

注意:在MySQL 5.7.9以后废弃了password字段和password()函数

总结

mysql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';Query OK, 0 rows affected (0.12 sec)

执行命令为:flush privileges;

![]()

mysql模块是一个开源的、JavaScript编写的MySQL驱动,可以在Node.js应用中来操作MySQL。但在使用过程中,出现了“ER_NOT_SUPPORTED_AUTH_MODE”问题。

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

MySQL 安装

其中,“RowDataPacket { user_id: 1, username: ‘老卫’
}”就是数据库查询的结果。

④ 更改 host 的默认配置

2.在MySQL官网上下载 Windows 版本的MySQL 安装包。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

MySQL8.0 安装完成后出现无法远程链接的现象,这是因为MySQL8.0只支持
localhost 访问,我们必须设置一下才可以远程访问。

总结

报错信息

问题就解决了。

user:当前数据库的用户名;

本节例子可以在的“mysql-demo”应用中找到。

执行命令为:use mysql;

出现的问题: 这里连接出现失败,如图:

相关文章

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图