昨天我更新了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)
5条答案
按热度按时间cnjp1d6j1#
我有同样的pb:
我尝试了hugo(修改my.ini)和davidguerin(使用rmariadb)的解决方案,但都不起作用。经过一些研究和经验,这个解决方案对我很有效
修改my.ini(这是要查找的路径
C:\ProgramData\MySQL\MySQL Server 8.0
) :与雨果的答案相反,你需要输入utf8mb4(utf8不是好的)
[客户]
[mysql]数据库
[我的qld]
在mysql中,您需要更改密码:
r6l8ljro2#
与此问题相关的是,可以在本文中找到一个解决方案,它可以阻止您更改r首选库和/或降级mysql。
你只需要更改my.cnf设置。
xzabzqsa3#
我也有同样的问题。尝试更改架构上的字符集。还尝试用遗留的身份验证方法选项重新安装mysql,但rmysql仍然没有成功。
尝试了rmariadb包,它成功了。我会切换到rmariadb而不是降级mysql。
https://cran.r-project.org/web/packages/rmariadb/
ycl3bljg4#
我也遇到了这个问题,我注意到在最近发布的MySQL5.8中,服务器和客户端连接的默认字符集现在被默认设置为utf8mb4。在mysql 5.7中,默认字符集设置为utf8。
我试着使用服务器和客户端的字符集,将值还原为utf8,但我就是无法让它工作,所以我将安装的mysql还原为5.7。之后rmysql就开始工作了。
感觉rmysql目前无法支持utf8mb4,需要更新。
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
ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';