mysql
不知道从8点几的版本开始,禁用了 mysql_native_password
插件
网上找到的资料基本都是修改配置文件 my.cnf或my.ini
[mysqld]
mysql_native_password=ON #添加此行
但是,我在官网下载的安装包,macOS系统,没有找到这个配置文件,此路行不通。
那就只能从 TypeORM 方向入手,
在使用 Nodejs
连接 mysql
的项目中,mysql2
是支持 caching_sha2_password
的
所以先安装 mysql2
npm install mysql2
然后修改 TypeORM 配置:
TypeOrmModule.forRootAsync({
useFactory() {
return {
type: 'mysql',
host: process.env.DATABASE_HOST,
port: Number(process.env.DATABASE_PORT),
username: process.env.DATABASE_USER,
password: process.env.DATABASE_PASSWORD,
database: process.env.DATABASE_NAME,
entities: entityArr,
synchronize: true,
charset: 'utf8mb4',
driver: require('mysql2'), // 显示指定使用 mysql2 客户端
};
},
});
这样就能连接上了