RMariaDB:连接到MySQL时出现caching_sha2_password错误

时间:2018-07-28 02:47:59

标签: mysql r mariadb

我是不熟悉R的数据库连接(在Ubuntu 16.04下),遇到了一些麻烦。遵循我在网上看到的文档之后,我尝试了如下操作:

con <- DBI::dbConnect(RMySQL::MySQL(),  
             dbname='IFsHistSeries',   
             host='127.0.0.1')

这使我收到一条错误消息,内容为:

Failed to connect to database: Error: Can't initialize character set unknown (path: compiled_in)

从我使用Google所能找到的内容来看,RMariaDB似乎比RMySQL更新,所以我给了一个镜头:

con <- DBI::dbConnect(RMariaDB::MariaDB(),
             dbname='IFsHistSeries',
             host='127.0.0.1')

这导致同样错误的错误消息:

Failed to connect: Plugin caching_sha2_password could not be loaded: 

因此,然后我尝试了一些非常愚蠢的事情-按照https://downloads.mariadb.org/mariadb/repositories/上的说明安装MariaDB。有一些依赖性问题设法完全破坏了MySQL,因此现在什么也没有了。我打算完全卸载MySQL和MariaDB并从头开始。我下次想知道的是:

  • 我需要安装MariaDB吗?还是普通的MySQL可与RMariaDB一起使用? (两个数据库之间的关系使我有些困惑。)
  • 设置MySQL以确保caching_sha2_password插件正常工作时,我需要做一些特别的事情吗?我担心这与我最初为root用户设置密码的方式有关。

任何想法都将大有帮助。谢谢!

-craig

1 个答案:

答案 0 :(得分:0)

好的...这似乎可行。首先,我使用https://dev.mysql.com/downloads/mysql/的下载内容删除了MySQL和MariaDB并安装了8.0.12 MySQL,并按照https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html上的说明进行操作。

我卸载了所有驱动程序,然后重新安装了unixODBC     sudo apt-get删除unixodbc unixodbc-dev tdsodbc odbc-postgresql libmyodbc libsqliteodbc     sudo apt-get install unixodbc unixodbc-dev

在我安装libmariadbclient-dev之前,一切都不对劲。相反,我跑了

sudo apt-get install libmariadb-client-lgpl-dev

这在不破坏MySQL的情况下安装了MariaDB客户端。我真的不知道两者之间有什么区别。

要摆脱caching_sha2_password插件的错误,我需要在启动MySQL服务器时更改默认的身份验证模式:

sudo ./mysqld_safe --user=mysql --default-authentication-plugin=mysql_native_password &

在这一点上,我可以跑步

con <- dbConnect(RMariaDB::MariaDB(),
                 host='127.0.0.1',
                 user='root',
                 password='password')

没有问题。