RMySQL: Can't connect to local MySQL server through socket '/tmp/mysql.sock' 에러
library(RMySQL)
> dbConnect( MySQL() )
Error in .local(drv, ...) :
Failed to connect to database: Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
>
tmp/mysql.sock을 통해 MySQL로 접근할 수 없다고 에러가 뜬다.
# Ubuntu
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
# MariaDB
$ mysql --version
mysql Ver 14.14 Distrib 5.7.24, for Linux (x86_64) using EditLine wrapper
1. libmariadb-client-lgpl-dev 설치
$ sudo apt-get install libmariadb-client-lgpl-dev
2. MariaDB socket file 위치 확인
$ ls -al /var/run/mysqld/mysqld.sock
srwxrwxrwx 1 mysql mysql 0 Sep 12 05:56 /var/run/mysqld/mysqld.sock
MyriaDB 설치시에 변경하지 않으면, default 경로는 위와 같다.
3. R에서, unix.socket 경로를 입력하여 dbConnect() 동작 확인
> library(RMySQL)
> con <- dbConnect(RMySQL::MySQL(),
dbname = "dbname",
username = "id",
password = "passwd",
host = "localhost",
port = 3306,
unix.socket="/var/run/mysqld/mysqld.sock")