Node.js连接Mysql数据库时出错,显示如下:
failed: SequelizeConnectionError: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server;
原因:mysql版本8.0以上引入了caching_sha2_password机制,但是在node.js中尚未支持此加密方式。
解决方案:
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘YourRootPassword’
flush privileges
MySQL 8.0 版本授权 root 远程连接,修改权限,更改加密方式
未解决的问题,首先新建一个用户www,然后更改它的加密方式,退出后,用原来的密码登录不了。
mysql 运行外部脚本文件:
未登录状态:
mysql -u root -p -P3307 -D sampledb<E:/t_user.sql
注意:
①如果在sql脚本文件中使用了use 数据库,则-D数据库选项可以忽略
②如果【Mysql的bin目录】中包含空格,则需要使用""包含。 –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】
③命令末尾千万不要有分号,大坑啊
登陆状态:
mysql> use 数据库名;
mysql>source 【sql脚本文件的路径全名】,如:
mysql> source E:/t_user.sql;
注意:windows路径为E:\t_user.sql,但这里要用正斜杠/