UP/IT

새로운 서버에 DB 이관했을 때 참고 사항

해티:) 2024. 8. 22. 17:42
1. 방화벽 오픈 여부 확인
-- 방화벽 확인
sudo netstat -tuln

-- 방화벽 추가
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent

-- 방화벽 재시작
sudo firewall-cmd --reload

-- 방화벽 열렸는지 확인 _ yes뜨면 됨
sudo firewall-cmd --zone=public --query-port=3306/tcp

 

※ 3306은 해당 DB의 포트 번호 이다.

 

2. 권한 관련 DB 쿼리 실행

가끔 권한 관련 에러가 뜰 때가 있다.

프로시저 권한 에러가 뜬다면 한번에 바꿔주는 아래 쿼리를 실행해 주면 된다.

select db, name, type, definer
from mysql.proc
where db in ('대상DB명')
and definer not like 'mysql.%';

update mysql.proc
set definer = '권한대상user'            /*  ex ) root@localhost */
where db in ('대상DB명') 
and definer not like 'mysql.%';

 

3. etc 경로에 있는 my.cnf 파일을 수정해준다 (재시작 필수)
[mysqld]
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

-- group by 에러나는 해결책 
-- sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
-- collation-server = utf8_general_ci 이부분 다른걸로 되어있으면 아래와 같은 오류남 그러면 db삭제하고 덤프 다시받아야함.
-- Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='