네이버 클라우드 mysql 서버 생성이 아닌
mysql -u root -p
root 계정 비밀번호 변경 ( 필수 : 안바꾸면 정상 이용이 불가능 )
> alter user 'root'@'localhost' identified by '비밀번호';
원격으로 접속가능한 root 계정을 만든 경우 root % 계정에 DBA 권한 주기
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
> flush privileges;
그외 계정의 Mysql GLOBAL 권한 부여
- SHOW DATABASES ,
REPLICATION CLIENT , 무중단 부하 분산(CREATE , INSERT , UPDATE)
REPLICATION SLAVE, 무중단 부하 분산(SELECT)
PROCESS , ( 실행중인 PROCESS )
SUPER ( FUNCTION, EVENT 필수 )
최종 반영하기
> flush privileges;
비밀번호 정책 확인
> show variables like 'validate_password%';
low PW 정책으로 변경하기
> set global validate_password.policy=LOW;
함수 사용하기
> SET GLOBAL log_bin_trust_function_creators = 1;
덤프 파일을 Restore Database 하려고 할때
Authentication plugin 'caching_sha2_password' cannot be loaded 에러가 나는 경우.
:: 보안 연결이나 RSA 보안을 사용하지 않으면 아래와 같은 에러가 발생한다.
> ALTER USER '사용자'@'%' IDENTIFIED WITH mysql_native_password BY '비밀번호';
> ALTER USER '사용자'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';
Access denied for user 'root@'@'localhost' 해결방법 : 기본적으로 초기설정되어있는 mysql의 root 계정의 패스워드 타입때문인데 이 타입을 변경해주면된다.
> SELECT User, Host, plugin FROM mysql.user;
> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '본인 Mysql root 패스워드';
> flush privileges;
특정 계정으로 원격접속해서 함수 생성할때 오류 : Error Code: 1419. You do not have the SUPER privilege and binary logging is enabled
SET Global log_bin_trust_function_creators='ON'
사용자 확인
> select host,user,authentication_string from mysql.user;
> SELECT User, Host, plugin FROM mysql.user;
사용자 삭제
> drop user '사용자'@'%';
사용자 생성
> create user '사용자'@'%' identified by '비밀번호';
> create user 사용자@localhost identified by '비밀번호';
특정 계정에 root 권한 주기
> grant all privileges on *.* to '사용자'@'localhost';
> grant all privileges on *.* to '사용자'@'%';
사용자 에게 test 데이터베이스 모든 테이블에 대한 권한 부여
> grant all privileges on 사용자.* to '사용자'@'localhost';
> grant all privileges on 사용자.* to '사용자'@'%';
user 에게 사용자 데이터베이스 모든 테이블에 select, insert, update 권한 부여
> grant select, insert on DB이름.테이블명 to '사용자'@'localhost';
사용자에게 부여된 권한 확인
예시.. SHOW GRANTS FOR 사용자@'200.100.100.50';
> show grants for 사용자@localhost;
데이터 베이스 확인
SHOW DATABASES;
=================================================================
쉘스크립트
수정모드 >> a
Bash 파일 만들기 vi 파일명.sh
파일 저장 >> :w
파일 저장하고 종료 >> :wq
파일 저장안하고 종료 >> :q
현재 줄 지우기 > Ctrl + u
_________________________________________________________
새로운 사용자 및 데이터 베이스 생성 쉘 스크립트 명령
#!/bin/bash
USER="$1"
NEWDB="$2"
mysql -u 사용자 -p비밀번호 -e "create database $NEWDB"
echo "================= $NEWDB가 생성되었습니다.========================"
echo ""
mysql -u 사용자 -p비밀번호 -e "create user $USER@'%' identified by '비밀번호'"
mysql -u 사용자 -p비밀번호 -e "create user $USER@localhost identified by '비밀번호'"
echo "================= $USER 가 생성 되었습니다.========================"
echo ""
mysql -u 사용자 -p비밀번호 -e "GRANT ALL PRIVILEGES ON $NEWDB.* to $USER@'%'"
mysql -u 사용자 -p비밀번호 -e "GRANT ALL PRIVILEGES ON $NEWDB.* to $USER@localhost"
echo "================ $USER 에게$NEWDB Database 권한이 부여 되었습니다.========================"
echo ""
mysql -u 사용자 -p비밀번호 -e "GRANT SHOW DATABASES, REPLICATION CLIENT, REPLICATION SLAVE, PROCESS, SUPER ON *.* TO $USER@'%'"
mysql -u 사용자 -p비밀번호 -e "GRANT SHOW DATABASES, REPLICATION CLIENT, REPLICATION SLAVE, PROCESS, SUPER ON *.* TO $USER@localhost"
echo "================ $USER 에게administrative Role 권한이 부여 되었습니다.========================"
echo ""
mysql -u 사용자 -p비밀번호 -e "USE $NEWDB"
mysqldump -u root -p비밀번호 -n --routines --triggers bb_smart | mysql -u root -p비밀번호 $NEWDB
## 데이터 제외하고 Dump
mysqldump -d -u aiportal -pqwer1234!@ -n --routines --triggers bb_smart | mysql -u aiportal -pqwer1234!@ $NEWDB
echo "============================ DB Dump ..... =========================="
echo ""
mysql -u aiportal -p비밀번호 -e "insert into $NEWDB.tc_std_cd select * from TestDB.tc_std_cd"
mysql -u aiportal -p비밀번호 -e "insert into $NEWDB.tc_std_cd_grp select * from TestDB.tc_std_cd_grp "
mysql -u aiportal -p비밀번호 -e "insert into $NEWDB.tn_auth select * from TestDB.tn_auth "
mysql -u aiportal -p비밀번호 -e "insert into $NEWDB.tn_menu select * from TestDB.tn_menu "
mysql -u aiportal -p비밀번호 -e "insert into $NEWDB.tn_menu_auth select * from TestDB.tn_menu_auth "
mysql -u aiportal -p비밀번호 -e "insert into $NEWDB.tn_bbs_auth select * from TestDB.tn_bbs_auth "
mysql -u aiportal -p비밀번호 -e "insert into $NEWDB.tn_bbs_div select * from TestDB.tn_bbs_div "
mysql -u aiportal -p비밀번호 -e "insert into $NEWDB.tn_bbs_mng select * from TestDB.tn_bbs_mng "
mysql -u aiportal -p비밀번호 -e "insert into $NEWDB.tn_bbs_qna select * from TestDB.tn_bbs_qna "
echo "============================ Base Data Insert ..... =========================="
mysql -u 사용자 -p비밀번호 -e "flush privileges"
echo "=============== 반영완료!!!!!!! ========================"
_________________________________________________________
0. cd /home
1. bash 파일 만들고 >> vi 파일명.sh
2. execute 파일로 변경 >> chmod u+x 파일명.sh
3. Bash 파일 실행 >> ./파일명.sh $1 $2