Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

한바다

[배포]mySql 복제 본문

aws

[배포]mySql 복제

한바다진화 2024. 9. 5. 19:51

☑️ 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