Node-MySQL2库可以连接MySQL 8,但不能连接MySQL 5.7



在我的开发环境中,我安装了MySQL 8.0并相应地构建了应用程序,但在prod服务器上,MySQL版本为5.7,我的应用程序无法连接到数据库。

我使用mysql2程序包是因为我需要异步API(mysql2/promise(,而它在mysql中不可用。我甚至尝试使用mysql-await,它是mysql的一个端口,添加了Async API,但在对数据库进行身份验证后,它无法创建表。

是什么原因造成的?MySQL 8.0和MySQL 5.7中使用了不同的身份验证方法吗?如果是,那么5.7使用了什么方法?我如何配置mysql2连接中使用的身份验证方法?

我这样连接到数据库:

db = await mysql.createConnection({
host: mysql_host,
user: mysql_user,
password: mysql_pass,
database: mysql_db
})

并创建这样的表:

await db.query(
"CREATE TABLE IF NOT EXISTS form (ID int NOT NULL AUTO_INCREMENT, 
Name varchar(255), 
Email varchar(255), 
Phone varchar(15), 
Address varchar(255), 
Occupation varchar(50), 
PRIMARY KEY (ID))")

是的,两者都有不同的身份验证方法。为了解决这个问题,更好的选择是用MySQL 5.7更改开发MySQL 8,或者用MySQL 8更改生产MySQL 5.7,否则,您可能会在生产中面临更多的错误。

相关内容

  • 没有找到相关文章

最新更新