MySQL 외부 접근 설정 및 데이터베이스 관리

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 데이터베이스를 안전하게 관리하고, 필요한 경우 데이터를 백업하고 복원할 수 있습니다. 외부 접근 설정과 권한 관리는 데이터베이스의 접근성과 보안에 큰 영향을 미칩니다. 올바른 설정과 관리로 데이터베이스를 효과적으로 운영하세요.

Subscribe to Keun's Story newsletter and stay updated.

Don't miss anything. Get all the latest posts delivered straight to your inbox. It's free!
Great! Check your inbox and click the link to confirm your subscription.
Error! Please enter a valid email address!