한바다
[배포]mySql 복제 본문
☑️ mySql복제
내 컴퓨터에서 아래 파일을 두번 클릭 한다!
Add를 누른 후 MySQL Shell을 추가 해준다!
- 환경변수 경로 찾는법
- 그리고 설치한 경로를 환경변수편집에 저장해준다!
그리고 cmd창에서 아래 명령어를 통해 mysql로 접속한다!
C:\Users\user1>mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 908
mysql>quit
Bye
C:\Users\user1>mysqldump -u root -p kh_workbook > C:\Users\user1\Desktop/workboot_data.sql
Enter password:
mysqldump: Got error: 1049: Unknown database 'kh_workbook' when selecting the database
//오류 발생: 1049: 데이터베이스를 선택할 때 알 수 없는 데이터베이스 'kh_workbook'는 아이디가 다름
C:\Users\user1>mysqldump -u root -p kh_woukbook > C:\Users\user1\Desktop/workboot_data.sql
▶ 위 명령어에서 > 는 sql파일을 출력하는 거
Enter password: 입력 후
C:\Users\user1>
[파일경로 비교]
C:\Users\user1 > mysqldump -u root -p kh_workbook > C:\Users\user1\Desktop/workboot_data.sql
▶ sql파일을 출력하는 거!
C:\Users\user1 > mysqldump -u root -p kh_test < /home/ec2-user/kh_test_backup.sql : 복원 명령어
▶ sql파일을 읽어서 저장하는 거
[파이널조 mysql 복제 진행 코드]
우선 mySql명령어를 아래와 같이 깔아준다
그 전에 awc 콘솔창에 자바를 깔아준다
sudo yum install java-17-amazon-corretto-devel -y
<복습!!! mysql 설정명령어>
wget https://repo.mysql.com/mysql80-community-release-el9-5.noarch.rpm
//wget 명령어를 사용하여 MySQL 8.0 커뮤니티릴리즈 패키지를 다운로드
sudo yum localinstall mysql80-community-release-el9-5.noarch.rpm
//yum을 사용하여 로컬에 다운로드된 MySQL저장소 패키지를 설치
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
//MySQL의 GPG키를 가져와 설치된 MySQL의 패키지의 신뢰성을 확인
sudo yum install mysql-community-server
//MySQL 서버 패키지를 설치
sudo systemctl enable mysqld.service
//MySQL 서비스를 시스템부팅 시 자동으로 시작되도록 설정
sudo systemctl start mysqld.service
//MySQL 서비스를 즉시 시작
위 명령어를 진행 한 후
sudo grep 'temporary password' /var/log/mysqld.log
//MySQL 초기 설치 시 생성된 임시 비밀번호를 확인
mysql -uroot -p
//mysql 명령어를 사용하여 MySQL 서버에 루트 계정으로 접속
ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Kh13579!';
//MySQL에서 루트계정의 비밀번호를설정 기본적으로 mysql_native_password플러그인을 사용하여 비밀번호인증을 설정
//관리자 비밀번호이기 때문에 " Kh13579!"해도 됨
CREATE USER '유저명'@'%' IDENTIFIED BY '비밀번호설정';
//새로운 MySQL사용자 계정을 생성 %는 이 계정이 원격에서도 접근할 수 있도록 설정
GRANT ALL PRIVILEGES ON database_name.* TO '유저명'@'%';
//지정한 데이터베이스에 대해 새로 생성한 사용자에게 모든 권한을 부여, database_name이라고 기재하지 말고
설정한 데이터베이스명을 기재해준다
FLUSH PRIVILEGES; (두번해주는게 좋다)
//변경된 권한 설정을 즉시 적용
CREATE DATABASE 데이터베이스명;
//새로 사용할 데이터베이스를 생성
quit
//mysql종료
sudo nano /etc/my.cnf
[mysqld]
bind-address = 0.0.0.0
bind-address = 퍼블릭주소
▶ 입력 후 ctrl + o 엔터치고 ctrl + x 입력 후 나간다!
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 6060(현재프로젝트 포트번호)
sudo yum install iptables
//포트번호변경
위와 같이 mySQL을 연결하고 mySQL복제를 진행한다!
여기서 잠깐 mySQL 오류문을 잠시 적어본다!
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'Sixsence'@'%';
위와 같이 sql문을 작성하면 아래와 같은 오류가 발생한다
ERROR 1044 (42000): Access denied for user 'Sixsence'@'%' to database 'sixsence'
(오류원인)
해당오류는 MySQL에서 Sixsence 사용자에게 sixsence 데이터베이스에 대한 접근 권한이 없기 때문에 발생한 문제로
Sixsince 사용자에게 권한을 부여한다.
GRANT ALL PRIVILEGES ON sixsence.* TO 'Sixsence'@'%';
//권한을 부여한 후 , 권한 벼경사항을 적용한다
FLUSH PRIVILEGES;
☑️ 위에는 mysql 복습을 하였고 이제 진짜 복제를 한다!!
서버 컴퓨터에 있는 mysql 프로젝트 테이블을 복제 하는 명령어이다
[ec2-user@ip-172-31-14-40 ~]$ mysql -u Sixsince -p sixsince < /home/ec2-user/sixsence.sql
Enter password:
'aws' 카테고리의 다른 글
Mysql Dialect 설정 에러 (0) | 2024.09.04 |
---|---|
[배포]명령어 정리, awc mysql (2) | 2024.09.03 |
[배포]aws에 git프로젝트 올리기 (0) | 2024.09.02 |