rmariadb:连接到mysql时缓存\u sha2\u密码错误

rsl1atfo  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(332)

我刚开始使用r数据库连接(在ubuntu16.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/. 有一些依赖性问题,成功地完全打破了mysql,所以现在没有任何工作了。我计划完全卸载mysql和mariadb,从头开始。下次我想知道的是:
我需要安装mariadb吗?或者普通的mysql会和rmariadb一起工作(两个数据库之间的关系让我有点困惑。)
在设置mysql时,我需要做一些特殊的事情来确保缓存sha2密码插件正常工作吗?我担心这与我最初为root用户设置密码的方式有关。
任何想法都会大有帮助。谢谢!
--克雷格

wmtdaxz3

wmtdaxz31#

好 啊。。。这似乎奏效了。首先,我删除了mysql和mariadb,并使用从https://dev.mysql.com/downloads/mysql/ 并遵循https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html.
我卸载了所有的驱动程序,重新安装了unixodbc sudo apt get remove 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

这安装了mariadb客户端而没有破坏mysql。我真的不知道这两者有什么区别。
以消除 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')

没有任何麻烦。

相关问题