在我的开发环境中,我已经安装了 MySQL 8.0 并相应地构建了应用程序,但是在产品服务器上,MySQL 版本是 5.7,我的应用程序无法连接到数据库。
我使用这个mysql2
包是因为我需要 Async API ( mysql2/promise
),它在mysql
. 我什至尝试使用添加了 Async APImysql-await
的端口mysql
,但是在对数据库进行身份验证后,它只是无法创建表。
这是什么原因造成的?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))")