본문 바로가기

메모장/리눅스

[Linux/MySql] 설치 및 설정

MySql 설치(yum)

1. mysql repolist 추가

https://dev.mysql.com/downloads/

 

MySQL :: MySQL Community Downloads

The world's most popular open source database Contact MySQL  |  Login  |  Register

dev.mysql.com

위 링크에서 os에 맞춰 선택 후 

다운로드 링크 주소 복사

sudo yum install -y [다운로드 링크]

2. 설치 및 설치 확인

sudo yum install -y mysql-server
sudo mysqld -V

※GPG 키 참조 오류

gpg키 에러 나올 경우 gpg키를 추가 시켜준다.

sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

3. 실행

sudo systemctl enable mysqld && systemctl start mysqld && systemctl status mysqld

4. 최초설치시 임시 비밀번호 확인

sudo grep 'temporary password' /var/log/mysqld.log

5. root 비밀번호 변경

# mysql -u root -p
Enter password: (임시 비밀번호 입력)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '새로운비밀번호';

// 새로운 비밀번호가 정책에 맞지 않을경우 설정 안될 수 있음
// 8자리 이상, 숫자, 특수문자, 대소문자 포함, 유저이름포함X (root키워드 금지)

6. 비밀번호 정책 확인 및 변경

// 정책 확인
mysql > SHOW VARIABLES LIKE 'validate_password%';

// 규칙 변경예시
mysql > SET GLOBAL validate_password.length = 6;
mysql > SET GLOBAL validate_password.mixed_case_count = 0;

7. 유저 추가 및 권한 부여

////유저 추가
mysql > create user 'username'@'localhost' identified by 'passwd'

// 만약 phpMyAdmin등을 이용하기 위해 외부 접속이 필요 할 시 접속할 계정의 localhost 부분을 변경
// 예시
mysql > create user 'root'@'%' identified by 'passwd'
mysql > create user 'centos'@'192.168.0.%' identified by 'passwd'

// 만약 phpMyAdmin을 이용하고 mysql버전이 8.0 이상이면 인증 플러그인을 변경해야한다.
https://www.skynats.com/blog/mysql-error-the-server-requested-authentication-method-unknown-to-the-client/

////권한 부여
mysql > grant all privileges on *.* to 'username'@'localhost';
mysql > grant all privileges on DB이름.권한이름 to 'username'@'localhost';

// 적용
mysql > flush privileges;

// 확인
mysql > use mysql
mysql > select host, user, plugin, authentication_string from user; (접근 권한, 암호화 방식, 암호 확인)

 

MySql 설정파일 위치

# mysql --help
위 명령어 이후 'Default options are read from the following files in the given order:' 아랫줄에 있는 경로를 순서대로 참조함

/etc/my.cnf
/etc/my.cnf.d/

 

MySql 문자셋 변경

위 설정 파일을 텍스트 에디터로 열어서

[client]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection=utf8_unicode_ci'
init-connect='SET NAMES utf8'
character-set-server = utf8
collation-server = utf8_unicode_ci

두 곳을 수정해준 뒤에 $service mysqld restart 를 통해 재부팅 시켜준다.

 

MySql 외부 접속 허용 하기

# mysql -p
> use mysql
> select host, user, plugin, authentication_string from user; (접근 권한, 암호화 방식, 암호 확인)
> grant all privileges on *.* to 'root'@'192.168.1.%'; (계정 없을 시 생성 해야함)
> flush privileges; (설정 적용)

 

php & phpMyAdmin 설치 & 아파치 설치

sudo yum install -y php phpmyadmin httpd

※ php와 phpmyadmin간의 버전차이로 인해 정상작동이 안되는 경우가 있다. 그 경우 wget으로 수동 설치

php 설치 : https://engineeringcode.tistory.com/94

참조 : https://hoyeong-rithm.tistory.com/52

centos 참조 : https://aegypius.tistory.com/entry/CentOS8-phpMyAdmin-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EB%B3%B4%EC%95%88%EC%84%A4%EC%A0%95

공식 다운로드 : https://www.phpmyadmin.net/downloads/

※ 만약 다른 버전 아파치 서버를 원하는 경우 아래 참조

https://library.gabia.com/contents/infrahosting/3513/

 

phpmyadmin 설정파일 위치

/etc/httpd/conf.d/phpMyAdmin.comf

 

phpmyadmin 외부 접속 허용 하기

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       # Require ip 허용할 ip주소
       Require ip 127.0.0.1
       Require ip ::1
       # ip 상관 없이 접근하려면
       # Require all granted
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     # Allow from 허용할 ip주소
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

/etc/httpd/conf.d/phpMyAdmin.comf 의 해당 위치 수정

수정 후 $service httpd restart 로 서비스 재시작.

 

서버 시간 설정

필요 패키지 (rdate)

sudo yum install rdate

시간 확인 : $date

시간 동기화 : $rdate -s [서버 도메인]

시간대 변경 : $timedatectl set-timezone Asia/Seoul