Centos7에 Mysql 설정 및 연동
Centos7 Mysql 5.7.20 설치
설치할 버전을 찾기 위해
MySQL홈페이지 - DOWNLOADS - Community - MySQL Yum Repository
아래 A Quick Guide to Using the MySQL Yum Repository 링크를 클릭한다. Click! (go to download page)
Page 중간 부분에 “Within the MySQL Yum repository (https://repo.mysql.com/yum/)” 찾아서 이동. Click! (go to download page) 링크 이동
5.7.20 버전을 받기 위해 “mysql-5.7-community/el/7/x86_64/” 으로 이동 (원하시는 버전 이동하여 설치하시기 바랍니다.)
밑의 4가지 설치 할 예정
mysql-community-common-5.7.20-1.el7.x86_64.rpm
mysql-community-libs-5.7.20-1.el7.x86_64.rpm
mysql-community-client-5.7.20-1.el7.x86_64.rpm
mysql-community-server-5.7.20-1.el7.x86_64.rpm
위의 4가지 wget 을 통해 설치 (순서대로 - Server, client 설치 시 common과 libs가 설치 되어있어야 하기때문에…)
wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-common-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm
wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-libs-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm
wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-client-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm
wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-server-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm
TIP) rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm
설치 시 아래와 같은 error 발생 시 조치방법
error : 오류: Failed dependencies:net-tools is needed by mysql-community-server-5.7.20-1.el7.x86_64
1. yum install http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-community-server-5.7.20-1.el7.x86_64.rpm
2. rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm
TIP) 혹시 설치 관련해서 문제가 발생하여 삭제를 원할 경우..
yum remove mysql mysql-server
rm -f -r /var/lib/mysql
설치가 완료되었다. 실행되는지 확인해 보자
명령어 입력
sudo service mysqld start
정상 start 여부 확인
sudo service mysqld status
[root@sksggg123 /]# sudo service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 화 2018-11-06 09:23:11 KST; 3min 37s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 6900 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 6824 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 6903 (mysqld)
CGroup: /system.slice/mysqld.service
└─6903 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
11월 06 09:23:06 sksggg123 systemd[1]: Starting MySQL Server...
11월 06 09:23:11 sksggg123 systemd[1]: Started MySQL Server.
mysql 기본설정
vi /etc/my.cnf
[client]
default-character-set = utf8
[mysqld]
validate_password_policy=LOW <- password 규칙을 낮추자
character-set-client-handshake=FALSE
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci
default-character-set = utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
재기동
systemctl restart mysqld
mysql 사용자 관리 및 DB 생성
초기 password는 임시 비밀번호다 아래 명령어로 비밀번호 확인하자.
[root@sksggg123 /]# grep 'temporary password' /var/log/mysqld.log
2018-11-06T00:23:07.608378Z 1 [Note] A temporary password is generated for root@localhost: *ah8l#c+ogSf
mysql login
Enter password -위의 임시비밀번호 입력
[root@sksggg123 etc]# mysql -u root -p mysql
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.20
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
root password reset
mysqlALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
mysqlFLUSH PRIVILEGES;
TIP) 6번의 my.cnf 에서 validate_password_policy=LOW 설정값을 넣지 않을 경우 default 규칙은 아래와 같다
기본 8자이상, 숫자, 소문자, 대문자, 특수문자 포함
password reset 후 쿼리 수행되는지 확인해보기
mysqlselect 1;
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.00 sec)
quit로 mysql 빠져 나간 뒤 변경한 password로 로그인이 되는지 확인하면 마무리~
방화벽 port open
sudo firewall-cmd –list-ports 명령어를 통해 현재 방화벽 상태 확인
현재 웹서버를 설치 해둔 상태이기에 80, 443, 8080 port가 열린 상태이다.
[root@sksggg123 etc]# sudo firewall-cmd --list-ports
80/tcp 443/tcp 8080/tcp
sudo firewall-cmd –zone=public –add-port=3306/tcp –permanent 명렁어를 통해 3306 port open
[root@sksggg123 etc]# sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@sksggg123 etc]# sudo firewall-cmd --reload
success
[root@sksggg123 etc]# sudo firewall-cmd --list-ports
80/tcp 443/tcp 8080/tcp 3306/tcp
외부 Tool을 통해 DB에 바로 접속 하기 위해서는 아래 설정이 필요하다
모든 IP 허용
mysqlGRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysqlFLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
특정 대역 허용
mysqlGRANT ALL PRIVILEGES ON *.* TO root@'xxx.xxx.%' IDENTIFIED BY 'password';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysqlFLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
특정 IP 허용
mysqlGRANT ALL PRIVILEGES ON *.* TO root@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'password';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysqlFLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
참고 사이트 : http://myjamong.tistory.com/6?category=833422
Leave a comment