错误:r无法连接到mysql

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

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

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

错误:

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

cnjp1d6j1#

我有同样的pb:

Error in .local(drv, ...) : 
  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不是好的)
[客户]

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

[mysql]数据库

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

[我的qld]

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

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

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

[client]
default-character-set   = utf8

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

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

参考文献:
mysql my.ini位置
在my.cnf中将mysql默认字符集更改为utf-8?
无法加载身份验证插件“caching\u sha2\u password”

相关问题