我正在尝试将我的 Rails 应用程序从 mysql 迁移到 postgres。因为我们已经运行了应用程序,所以我使用 pgloader 将 mysql 数据移动到 postgres 数据库。但当我这样做时
pgloader mysql://root:[email protected] /cdn-cgi/l/email-protection/mysql_database postgresql://postgres_user:[email protected] /cdn-cgi/l/email-protection/postgres_database
我收到错误 - 无法以用户“root”身份连接到“127.0.0.1”(端口 3306)处的 mysql:发出条件 QMYND:MYSQL-UNSUPPORTED-AUTHENTICATION 信号。不过,我可以轻松地从终端登录 mysql。
提前致谢。
问题是目前pgloader不支持caching_sha2_password
身份验证插件,这是 MySQL 8 的默认设置,而较旧的 MySQL 版本使用mysql_native_password
插入。相应的问题打开于Github https://github.com/dimitri/pgloader/issues/782.
基于这条评论 https://github.com/dimitri/pgloader/issues/782#issuecomment-502323324,这里的解决方法是编辑my.cnf
(如果你不知道它在哪里,请看here https://stackoverflow.com/a/9603176/6609485)并在[mysqld]
部分添加
default-authentication-plugin=mysql_native_password
然后重新启动 MySQL 服务器并执行:
ALTER USER 'youruser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
之后错误一定会消失。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)