MySQL 데이터베이스를 외부에서 접근 가능하게 설정하고, 사용자 권한을 관리하며, 데이터베이스를 백업 및 복원하는 방법을 안내합니다.
MySQL 외부 접근 설정
MySQL 데이터베이스는 기본적으로 로컬 접속만을 허용합니다. 외부 디바이스에서 데이터베이스에 접근하려면 몇 가지 설정을 변경해야 합니다.
포트 설정
Docker Compose 파일에서 MySQL 서비스의 포트를 설정하여 외부 접속을 허용합니다.
yamlCopy code
db:
image: mysql:8
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: ghost
MYSQL_PASSWORD: ghostpass
MYSQL_DATABASE: ghost
volumes:
- ./mysql-data:/var/lib/mysql
MySQL 콘솔 접근
컨테이너 내부에 접속한 후, MySQL 커맨드 라인 툴을 사용하여 데이터베이스에 로그인합니다. 다음 명령을 사용할 수 있습니다:
bashCopy code
mysql -u root -p
이 때, 비밀번호를 입력하라는 프롬프트가 나타납니다. 컨테이너를 구성할 때 설정한 MYSQL_ROOT_PASSWORD
값을 입력하세요.
사용자 권한 설정
MySQL 데이터베이스에서 외부 접속을 위한 사용자 권한을 설정합니다.
사용자 생성
sqlCopy code
CREATE USER 'ghost'@'%' IDENTIFIED BY 'password';
권한 부여
sqlCopy code
GRANT ALL PRIVILEGES ON ghost.* TO 'ghost'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
- **
GRANT ALL PRIVILEGES ON ghost.* TO 'ghost'@'%';
**는ghost
데이터베이스의 모든 테이블에 대해ghost
사용자에게 모든 권한을 부여합니다. - **
FLUSH PRIVILEGES;
**는 변경된 권한을 즉시 적용하기 위해 MySQL 권한 테이블을 리로드합니다.
데이터베이스 백업 및 복원
데이터베이스의 백업 및 복원은 데이터 손실 방지 및 데이터 이전 시 중요한 작업입니다.
데이터베이스 백업
mysqldump
도구를 사용하여 데이터베이스를 백업합니다. 이 명령은 데이터베이스의 모든 데이터를 .sql
파일로 저장합니다.
bashCopy code
mysqldump -u ghost -pghost ghost > backup.sql
데이터베이스 복원
백업 파일을 사용하여 데이터베이스를 복원합니다.
bashCopy code
mysql -u ghost -pghost ghost < backup.sql
결론
위의 설정과 절차를 통해 MySQL 데이터베이스를 안전하게 관리하고, 필요한 경우 데이터를 백업하고 복원할 수 있습니다. 외부 접근 설정과 권한 관리는 데이터베이스의 접근성과 보안에 큰 영향을 미칩니다. 올바른 설정과 관리로 데이터베이스를 효과적으로 운영하세요.