안녕하세요 jju_developer 입니다.
오늘은 기존 mysql을 사용하다가 maria db로 연동을 해야하는 일이 생겨서
해당 부분을 기록하려고 합니다.
우선 mysql에 있는 모든 테이블과 정보들을 덤프로 떠서 그대로 마리아디비로 이관하는 작업 내용을 공유드립니다.
윈도우 찾기에서 mysql 클라이언트에 들어갔습니다.
그후 cmd로 하는것이 편해서 root 비밀번호를 먼저 생성해준후 데이터베이스명이랑 아이디를 생성하였습니다.
그후 사용자의 권한도 줬습니다. (모든 권한 부여)
GRANT ALL PRIVILEGES ON 데이터베이스명.* TO '아이디'@'%';
다 하고 나서 FLUSH PRIVILEGES; 도 해주면 깔끔하게 됩니다.
그다음 해당 계정으로 로그인을 하고 mysql workbench로 연결을 해주면 성공!
회사에서 아직 인텔리제이 유료버전을 사주지 않았기 때문에
데이터베이스 툴을 이용해서 야금야금 사용을 하고 있습니다.
저도 언젠가는 유료툴로 개발을 할 날이 있으리라 생각하면서 ...
mariaDB를 사용하는데 workbench로 해도 되나 의문이 있으신 분들이 있으실수도 있지만
해당 workbench로 마리아디비 연결에 성공하면
connection warning이 나타나지만 아랑곳하지 않고 continue Anyway를 해줍니다..ㅎ
덤프 데이터 뜨는이유는 기존 mysql의 모든 테이블과 데이터들을 mariadb에 일일이
체인지 쿼리를 쳐줄 시간이 없기 때문에 저는 그냥 모든 정보를 그래도 maria에서
쓰기 위해서 export 를 진행하였습니다!
여기서 먼저 내가 복제를 하고자 하는 mysql 의 데이터를 덤프를 따와야합니다.
이럴때 workbench툴을 사용하면 됩니다.
뭐 다른블로그에서는
GRANT RELOAD,LOCK TABLES,
REPLICATION CLIENT,
REPLICATION SLAVE,SHOW DATABASES,
SHOW VIEW,PROCESS ON *.* TO ’마이그레이션 계정’@’%’;
이러한 방법을 쓰라고 했는데 ...
너무 어려운것 같아서 그냥 workbench에 있는 server 탭에 들어가서
기존에 있는 mysql server의 데이터를 export 를 하고 mariaDB로 연결된 workbench 들어가서
가져온 덤프 데이터를 import 해주었습니다.

아주 쉽죠?
만약 오류가 나셨다면 아마 이 내용이실 수 도 있습니다.
오류1)
Unknown collation: 'utf8mb4_0900_ai_ci'
11:36:28 Restoring C:\Users\jju\Documents\dumps\test\jju_dump.sql
Running: mysql.exe --defaults-file="c:\users\public\documents\estsoft\creatortemp\tmpntep4y.cnf" --protocol=tcp --host=100.0.0.1 --user=root --port=3016 --default-character-set=utf8 --comments --database=test < "C:\\Users\\jju\Documents\dumps\test\jju_dump.sqll"
ERROR 1273 (HY000) at line 207: Unknown collation: 'utf8mb4_0900_ai_ci'
[Operation failed with exitcode 해결방법
1) mysql의 버전을 올린다.
-> 현실적으로 불가 왜냐면 기존에 쓰는 mysql의 버전을 옮기는것보다
내가 지금 maria DB를 하려고 하니까 해방법은 불필요함.
2) dump 파일을 열고 utf8mb4_0900_ai_ci 라고 되어있는 부분을 싹다
utf8mb4_general_ci 로 변경
-> 해당 방법으로 고침!!!!

해결된 dump 내용
11:41:12 Restoring C:\Users\jju\Documents\dumps\test\jju_dump.sql
Running: mysql.exe --defaults-file="c:\users\public\documents\estsoft\creatortemp\tmpu2bza5.cnf" --protocol=tcp --host=100.0.0.1 --user=root --port=3016 --default-character-set=utf8 --comments --database=test < "C:\\Users\\jju\Documents\dumps\test\jju_dump.sqll"
11:41:27 Import of C:\Users\Geunju\Documents\dumps\test\jju_dump.sql has finished
오류 2)
ERROR 1418 (HY000) at line 1969: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) Operation failed with exitcode 1
이런 오류가 났다면 해당 되는 데이터베이스에 아래 쿼리문을 날려주고 다시 import gain 클릭하시면 해결됩니다!
SET GLOBAL log_bin_trust_function_creators = 1;
그럼 다음시간에는 server.xml을 변경하는 부분에 대해 다뤄보도록 하겠습니다.
[스프링] Tomcat MariaDB 연동
안녕하세요 jju_developer 입니다. 지난시간에 mysql에서 maria 디비로 연동하는 방법에 대해 알아보았습니다. 데이터베이스 MYSQL에서 MariaDB로 연동하기 안녕하세요 jju_developer 입니다. 오늘은 기존 mysql
jju240.tistory.com
감사합니다~

'주니어 기초 코딩공부 > Database 기초' 카테고리의 다른 글
spring boot mysql -> mariadb로 연동시 났던 오류 모음집 (2) | 2023.12.15 |
---|---|
[스프링] Tomcat MariaDB 연동 (53) | 2023.12.13 |
[MYSQL] 일정 시간단위로 데이터 가져오는 방법 (하루, 한시간, 한달) (2) | 2023.11.24 |
내 로컬 데이터베이스를 다른 사용자가 접근 할 수 있도록 변경하기 (2) | 2023.11.22 |
[MySQL] GROUP_CONCAT 사용하기 (0) | 2023.10.17 |