Linux 환경에서 MySQL 서버 구축

4209 단어 MySQL

목적



Linux 환경에 MySQL 서버를 구축해, 외부 단말로부터 접속할 수 있도록(듯이) 설정합니다.

구축 환경



OS:Amazon Linux2
MySQL:8.0.26

yum의 리포지토리 목록 업데이트



yum의 리포지토리 목록에 MySQLYum 리포지토리 추가



추가하는 MySQLYum 리포지토리의 버젼이나 대응하는 플랫폼은 여기 의 페이지에서 확인 옵니다.
$ sudo yum -y localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

리포지토리 추가 확인



다음 명령을 사용하여 MySQLYum 리포지토리가 성공적으로 추가되었는지 확인합니다.
$ yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64     MySQL Connectors Community          121+20
mysql-tools-community/x86_64          MySQL Tools Community                   68
mysql80-community/x86_64              MySQL 8.0 Community Server             171

MySQL 설치



MySQL 설치


$ sudo yum -y install mysql-community-server

설치되었는지 확인


$ mysql --version
mysql  Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL)

systemd에서 MySQL을 시작 / 중지



systemd에서 MySQL 시작


$ sudo systemctl start mysqld

MySQL 시작 확인



runnning 상태가 되어 있으면 기동 OK입니다.
$ systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2021-08-08 05:41:48 UTC; 20s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 3416 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 3487 (mysqld)
   Status: "Server is operational"
   CGroup: /system.slice/mysqld.service
           └─3487 /usr/sbin/mysqld


MySQL을 자동으로 시작하도록 설정


$ sudo systemctl enable mysqld

MySQL에 로그인



MySQL 루트 사용자의 비밀번호 확인



MySQL 설치시 루트 사용자의 비밀번호는 mysqld.log에서 확인할 수 있습니다.
$ sudo cat /var/log/mysqld.log | grep root
2021-08-08T05:41:44.729287Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xG/+aKr*S5Wh

루트 사용자로 로그인


$ mysql -u root -p
Enter password: 

루트 암호를 임의로 변경



루트 비밀번호를 임의로 변경
※8문자 이상 또한 영대문자・소문자・숫자・기호를 포함할 필요가 있다
mysql> SET PASSWORD = 'Password@1';
Query OK, 0 rows affected (0.00 sec)

비밀번호 계약을 깨면 오류가 발생합니다.
mysql> SET PASSWORD = '1';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

외부에서 액세스 허용



외부에서 액세스하도록 새 사용자 만들기


mysql> create user 'devuser'@'%' identified by 'Password@1';

grant 문 실행



새 사용자에게 grant 문을 실행하여 작성한 사용자가 어디에서 액세스하는지 명시합니다.
이번에는 IP 주소로 좁히고 싶지 않으므로 "%"를 지정하고 있습니다.
※ 접속원을 좁히는 경우는 「%」가 아니고, 임의의 IP 주소를 사용해 주세요.
mysql> grant all privileges on *.* to 'devuser'@'%';

데이터베이스 만들기(외부 연결 확인용)



데이터베이스 작성


mysql> CREATE DATABASE dbtest;
Query OK, 1 row affected (0.00 sec)

작성한 데이터베이스 확인(목록)


mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| dbtest             |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

사용할 데이터베이스 선택


mysql> use dbtest;
Database changed

외부에서 연결 확인



MySQL의 Workbench에서 확인합니다.
호스트와 유저를 지정해 테스트 접속을 할 수 있으면 성공입니다.



참고문헌

좋은 웹페이지 즐겨찾기