我是不熟悉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并从头开始。我下次想知道的是:
任何想法都将大有帮助。谢谢!
-craig
答案 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')
没有问题。