错误:r无法连接到mysql

3wabscal  于 2021-06-23  发布在  Mysql
关注(0)|答案(5)|浏览(415)

昨天我更新了mysql到最新版本8.0.11,并尝试使用rmysql连接到mysql,但它不起作用,我找不到任何解决方案。
我的代码:

  1. library(RMySQL)
  2. con <- dbConnect(MySQL(), user="hello", password="hi", dbname = "webscrape", host="xx.xxx.xxx.xxx", port=xxxx)

错误:

  1. Error in .local(drv, ...) :
  2. Failed to connect to database: Error: Can't initialize character set unknown (path: compiled_in)
cnjp1d6j

cnjp1d6j1#

我有同样的pb:

  1. Error in .local(drv, ...) :
  2. Failed to connect to database: Error: Can't initialize character set unknown (path: compiled_in)

我尝试了hugo(修改my.ini)和davidguerin(使用rmariadb)的解决方案,但都不起作用。经过一些研究和经验,这个解决方案对我很有效
修改my.ini(这是要查找的路径 C:\ProgramData\MySQL\MySQL Server 8.0 ) :
与雨果的答案相反,你需要输入utf8mb4(utf8不是好的)
[客户]

  1. default-character-set = utf8 (the old line "utf" to "utfmb4")
  2. default-character-set = utf8mb4 (the new line with modification)

[mysql]数据库

  1. default-character-set = utf8 (the old line "utf" to "utfmb4")
  2. default-character-set = utf8mb4 (the new line with modification)

[我的qld]

  1. character-set-client-handshake = FALSE (new line to add)
  2. character-set-server = utf8mb4 (the old line "utf" to "utfmb4")
  3. collation-server = utf8mb4_unicode_ci (new line to add)
  4. skip-character-set-client-handshake (Line to remove)

在mysql中,您需要更改密码:

  1. ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 'mot-passe';
展开查看全部
r6l8ljro

r6l8ljro2#

与此问题相关的是,可以在本文中找到一个解决方案,它可以阻止您更改r首选库和/或降级mysql。
你只需要更改my.cnf设置。

xzabzqsa

xzabzqsa3#

我也有同样的问题。尝试更改架构上的字符集。还尝试用遗留的身份验证方法选项重新安装mysql,但rmysql仍然没有成功。
尝试了rmariadb包,它成功了。我会切换到rmariadb而不是降级mysql。
https://cran.r-project.org/web/packages/rmariadb/

ycl3bljg

ycl3bljg4#

我也遇到了这个问题,我注意到在最近发布的MySQL5.8中,服务器和客户端连接的默认字符集现在被默认设置为utf8mb4。在mysql 5.7中,默认字符集设置为utf8。
我试着使用服务器和客户端的字符集,将值还原为utf8,但我就是无法让它工作,所以我将安装的mysql还原为5.7。之后rmysql就开始工作了。
感觉rmysql目前无法支持utf8mb4,需要更新。

k2fxgqgv

k2fxgqgv5#

我这样解决这个问题:
用户窗口
1.error in.local(drv,…):未能连接到数据库:错误:无法初始化未知字符集(路径:compiled\u in)
添加这些行之后:
文件路径: %PROGRAMDATA%\MySQL\MySQL Server X.X\my.ini ```
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
skip-character-set-client-handshake

  1. [client]
  2. default-character-set = utf8
  3. [mysql]
  4. default-character-set = utf8
  1. 2-无法加载身份验证插件“caching\u sha2\u password

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';

  1. 参考文献:
  2. mysql my.ini位置
  3. my.cnf中将mysql默认字符集更改为utf-8
  4. 无法加载身份验证插件“caching\u sha2\u password
展开查看全部

相关问题