mariaDb 인코딩 셋 에러가 나서 아래와 같이 간단하게 정리 한다.
이것은 R 연결 까지 되어 있고, R source 코드까지 기록되어 있다. 지금 내가 세팅 한것은 UTF8버전으로 잘되어 있는거 같은데, 회사 것은 그렇지 않아 보인다.
# maria db 설치
sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation
# 환경 설정
sudo vi /etc/my.cnf
[mysqld]
socket=/var/lib/mysql/mysql.sock
[client]
socket=/var/lib/mysql/mysql.sock
# 마리아 DB 실행
sudo mariadb
# 마리아 DB 아이디 생성 및 DB 생성
use mysql;
create database mdb01;
create user 'yongas'@'%' identified by '3207mymy';
grant all privileges on mdb01.* to 'yongas'@'%';
마리아 DB 관리 툴
https://dbeaver.io/download/
|
연결된 캐릭터 셋 |
# 마리아 사용자 삭제
select Host, User from user; # 마리아 DB 확인
drop user 'yonage'@'localhost';
# 마리아 DB Character Set
show variables like 'c%';
|
마리아 DB 캐릭터 셋 |
만약에 캐릭터 데이터 셋에 문제가 있다면, DB 만들때, 아래와 같이 하여야 한다.
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
# install.packages("RJDBC")
# install.packages("RMariaDB")
#
library(RMariaDB)
library(DBI)
con <- dbConnect(MariaDB(), host = "localhost", dbname = "mdb01",
user = "useid", password = "passwd", port = 3306)
# 벡터 데이터 만들기
bankName <- c("농협은행", "국민은행", "신한은행",
"우리은행", "하나은행", "기업은행")
지점수 <- c(1149, 1055, 872, 880, 765, 612)
# 벡터 데이터 data.frame에 넣기
hangul_test <- data.frame(bankName, 지점수)
# 데이터 있는지 확인하고 있으면 날리기
if(dbExistsTable(con,"hangul_test") == TRUE) dbRemoveTable(con, "hangul_test")
data <- dbWriteTable(con, "hangul_test", hangul_test)
get_hangul <- dbReadTable(con, "hangul_test")
get_hangul
에러에 대한 트러블 슈팅
'/var/lib/mysql/mysql.sock' (2)
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysqld restart
ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/m
ysql.sock' (40)
chown mysql.mysql -R /var/lib/mysql