我正在尝试将我的 rails 应用程序从 mysql 迁移到 postgres。由于我们已经运行了应用程序,所以我正在使用 pgloader 将 mysql 数据移动到 postgres 数据库。但是当我这样做时
pgloader mysql://root:root_password@127.0.0.1/mysql_database postgresql://postgres_user:postgres_pass@127.0.0.1/postgres_database
我收到错误 - 无法以用户“root”身份在“127.0.0.1”(端口 3306)连接到 mysql:条件 QMYND:MYSQL-UNSUPPORTED-AUTHENTICATION 已发出信号。 不过,我可以轻松地从终端登录到 mysql。
提前致谢。
最佳答案
问题是目前 pgloader 不支持 caching_sha2_password
身份验证插件,这是 MySQL 8 的默认设置,而较旧的 MySQL 版本使用 mysql_native_password
插入。对应issue在Github上开启.
基于 this comment ,这里的解决方法是编辑 my.cnf
(如果您不知道它在哪里,请查看 here )和 [mysqld]
部分添加
default-authentication-plugin=mysql_native_password
然后重启你的 MySQL 服务器并执行:ALTER USER 'youruser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
之后,错误必须消失。
关于mysql - pgloader - 无法以用户 "localhost": Condition QMYND:MYSQL-UNSUPPORTED-AUTHENTICATION was signalled 的身份在 "root"(端口 3306)连接到 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56542036/