使TypeORM 和 MySQL项目支持 caching_sha2_password

作者:重庆崽儿Brand

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 客户端
    };
  },
});

这样就能连接上了

文章归类于: 码不停蹄

文章标签: #项目

版权声明: 自由转载-署名-非商用