我正在使用mysql
package连接到设置为连接到MySQL数据库的ProxySQL。在命令行中,可以进行以下操作:
mysql -u demo1 -P6033 --database=database -p
但是,这不起作用。
var connection = mysql.createConnection({
"host" : "localhost",
"port": 6033,
"user": "demo1",
"password" : "password as above",
"database": "database"
})
connection.connect( (err) => { console.log(err.stack) } )
这是错误消息。
Error: ER_ACCESS_DENIED_ERROR: ProxySQL Error: Access denied for user 'demo1'@'127.0.0.1' (using password: YES)
用户创建为
CREATE USER 'demo1'@'localhost' IDENTIFIED BY 'password';
我尝试将另一个用户添加为'demo'@'127.0.0.1'
,并为其授予了特权;没用。
如何保留上面的定义并获得mysql
来返回成功的连接?
答案 0 :(得分:0)
已解决!多亏了这样的问题-https://stackoverflow.com/a/50131831/919480
两件事。
mysql_native_password
。我认为,这与安装MySQL时选择“强密码”有关。localhost
,因为在Unix上,它的处理方式有所不同。即,通过插座进行连接。因此,将主机参数设置为127.0.0.1
。或者,删除主机参数并使用socketPath
。