Linux MySQL 5.7 설치

May 15, 2021

MySQL 설치

apt-get을 업데이트한 후 MySQL을 설치합니다.

sudo apt-get update sudo apt-get install mysql-server

부팅 시 MySQL이 시작되도록 설정합니다.

sudo systemctl enable mysql

기본 보안 세팅합니다.

sudo mysql_secure_installation
  1. VALIDATE PASSWORD plugin? : 테스트 환경이라 활성화하지 않았습니다. (n)
  2. New password: : 초기 비밀번호를 설정해줍니다.
  3. Remove anonymous users? : 익명의 사용자를 삭제합니다. (y)
  4. Disallow root login remotely? : 외부에서 root 계정으로 접속하지 못하게 합니다. (y)
  5. Remove test database and access to it? : test DB를 삭제합니다. (y)
  6. Reload privilege tables now? : privilege tables 을 reload 해줍니다. (y)

외부접속 설정

네트워크 상태 확인합니다.

netstat -tnl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

127.0.0.1:3306으로 설정되어 있습니다. 외부에서 접속할 수 있도록 로컬 어드레스를 수정합니다.

vi /etc/mysql/mysql.conf.d/mysqld.cnf ... bind-address = 0.0.0.0

MySQL을 재시작합니다.

service mysql restart

다시 네트워크 상태를 확인합니다.

netstat -tnl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

0.0.0.0:3306으로 변경이 완료 되었습니다.

외부 접속 계정 설정

MySQL root 계정으로 접속해서 외부에서 접속할 계정 생성 및 데이터베이스에 권한을 할당합니다. *.* 부분을 데이터베이스·테이블로 입력 시 해당 데이터베이스만 접속할 수 있도록 설정할 수 있습니다.

mysql -u root -p mysql> GRANT ALL privileges on *.* to '계정'@'%' identified by '암호'; mysql> Flush privileges; mysql> SELECT host,user FROM mysql.user; +-----------+------------------+ | host | user | +-----------+------------------+ | % | user | | localhost | debian-sys-maint | | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | +-----------+------------------+ 5 rows in set (0.00 sec)

방화벽 설정

ufw 사용하여 외부에서 접속을 할 수 있도록 설정 합니다.

sudo ufw enable sudo ufw allow 3306/tcp sudo ufw status Status: active To Action From -- ------ ---- 3306/tcp ALLOW Anywhere 3306/tcp (v6) ALLOW Anywhere (v6)

yougetsignal에서 포트가 정상적으로 열렸는지 확인합니다.