登录 MariaDB
mysql -u root -p
导入数据表结构
create database `mychatroom`;
use `mychatroom`;
source /home/apps/chat/chat.sql;
运行项目
cd /home/apps/chat
node app
打开浏览器访问:localhost:3000
啊咧?好像卡住了?
遂检查控制台
Error: ER_NOT_SUPPORTED_AUTH_MODE:
Client does not support authentication protocol
requested by server; consider upgrading MariaDB client
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
flush privileges;
但我是 MariaDB 啊。。
先修改连接参数,增加 insecureAuth : true
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '********',
database : 'mychatroom',
insecureAuth : true
});
再试,还是不行。。
继续查资料,再试,还是不行。。。
于是又谷歌 “how to change mariadb auth mode”
总算找到了解决办法
use mysql;
ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("newpassword");
flush privileges;
还有备选方案
use mysql;
update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';
flush privileges;
本来只是调试一个项目,结果浪费了半个多小时的时间。算是给我这个菜鸡一个教训吧,填完了坑,记录一下。希望能帮助到遇到相同问题的同学。
© 2020 飞鱼的博客