MySQL 5.5 설치 및 세팅


직접 테스트한 결과를 토대로 작성한 문서로

my.cnf에 관한 내용은 추후 다룰 예정입니다.

감사합니다.


DB version : MySQL 5.5.45

OS version : Centos 6


1. MySQL 5.5 설치


1.1 MySQL Community Server 다운로드

https://downloads.mysql.com/archives/community/
(MySQL-5.5.45-1.linux2.6.x86_64.rpm-bundle.tar)

1) 해당 링크에 적솝하여 DB version, OS 종류를 지정하여 파일 다운로드

1.2 Install

[root@master setup]# tar -xvf MySQL-5.5.45-1.linux2.6.x86_64.rpm-bundle.tar

MySQL-devel-5.5.45-1.linux2.6.x86_64.rpm

MySQL-client-5.5.45-1.linux2.6.x86_64.rpm

MySQL-server-5.5.45-1.linux2.6.x86_64.rpm

MySQL-shared-5.5.45-1.linux2.6.x86_64.rpm

MySQL-test-5.5.45-1.linux2.6.x86_64.rpm

MySQL-shared-compat-5.5.45-1.linux2.6.x86_64.rpm

MySQL-embedded-5.5.45-1.linux2.6.x86_64.rpm


1) 다운받은 파일을 tar -xvf로 압축 해제


## MySQL-server 설치 ##

[root@master setup]# rpm -ivh MySQL-server-5.5.45-1.linux2.6.x86_64.rpm

warning: MySQL-server-5.5.45-1.linux2.6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                ########################################### [100%]

   1:MySQL-server           ########################################### [100%]


1) rpm -ivh를 이용하여 MySQL-server 설치


## MySQL-client 설치 ##

[root@master setup]# rpm -ivh MySQL-client-5.5.45-1.linux2.6.x86_64.rpm

warning: MySQL-client-5.5.45-1.linux2.6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

Preparing...                ########################################### [100%]


1) rpm -ivh를 이용하여 MySQL-client 설치


## MySQL 서비스 시작 및 프로세스 확인 ##

[root@master my.cnf.d]# service mysql start

Starting MySQL.. SUCCESS!

[root@master my.cnf.d]# ps -ef | grep mysql

root      1931     1  0 13:04 pts/0    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/master.pid

mysql     2024  1931  2 13:04 pts/0    00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/master.err --pid-file=/var/lib/mysql/master.pid

root      2046  1625  0 13:04 pts/0    00:00:00 grep mysql


1) service mysql start로 서비스 동작 확인 및 ps -ef | grep mysql로 프로세스 확인


1.3 MySQL 셋팅

## MySQL data 경로 및 log 경로 변경 ##

[root@master /]# mkdir -p mysql/data

[root@master /]# mkdir -p mysql/log

[root@master /]# chown -R mysql:mysql mysql

[root@master /]# chmod -R 755 mysql


1) 기본 경로의 경우 /var/lib/mysql 안에 존재하지만 이번 테스트에서는 경로를 변경하여 진행

2) DATA 경로 : /mysql/data , LOG 경로 : /mysql/log

3) 미리 DATA,LOG 경로의 디렉토리를 생성 후 권한 부여


[root@master ~]# mysql_install_db --defaults-file=/etc/my.cnf --user=mysql

WARNING: The host 'master' could not be looked up with resolveip.

This probably means that your libc libraries are not 100 % compatible

with this binary MySQL version. The MySQL daemon, mysqld, should work

normally with the exception that host name resolving will not work.

This means that you should use IP addresses instead of hostnames

when specifying MySQL privileges !

Installing MySQL system tables...


1) vi /etc/my.cnf에 datadir, log-bin, log-error 등의 값을 수정해준다 ( my.cnf에 대한 정보는 추후 update 할 예정 )

2) mysql_install_db를 이용하여 /etc/my.cnf에서 변경한 data경로와 log 경로에 디렉토리를 초기화 시키고, 해당 경로에 파일 생성


## MySQL 서비스 시작 및 프로세스 확인 ##

[root@master log]# mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &

[2] 4589

[root@master log]# 200207 14:04:09 mysqld_safe Logging to '/mysql/log/mysqld_safe.err'.

200207 14:04:09 mysqld_safe Starting mysqld daemon with databases from /mysql/data

 

[root@master log]# ps -ef | grep mysql

root      4589  2051  0 14:04 pts/1    00:00:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql

mysql     4929  4589  9 14:04 pts/1    00:00:00 /usr/sbin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/mysql/data --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/mysql/log/mysqld_safe.err --open-files-limit=8192 --pid-file=/mysql/tmp/master.pid --socket=/mysql/tmp/mysql.sock --port=3306

root      4942  2051  0 14:04 pts/1    00:00:00 grep mysql


1) mysqld_safe --defaults로 MySQL 서비스 시작 ( --defaults=/etc/my.cnf를 이용하여 위에서 변경한 my.cnf의 값을 읽어 들여 서비스를 시작)

2) 위에 프로세스를 확인하면 DATA 경로와 LOG 경로가 변경되어 프로세스가 떠 있는 것을 확인 가능


## ROOT 패스워드 변경 및 불필요 계정 삭제 ## 

mysql> select user,host,password from mysql.user; ( 현재 계정 확인 )

+------+-----------+-------------------------------------------+

| user | host      | password                                  |

+------+-----------+-------------------------------------------+

| root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |

| root | master    |                                           |

| root | 127.0.0.1 |                                           |

| root | ::1       |                                           |

|      | localhost |                                           |

|      | master    |                                           |

+------+-----------+-------------------------------------------+

6 rows in set (0.00 sec)


mysql> drop user 'root'@'master';

Query OK, 0 rows affected (0.00 sec)

 

mysql> drop user 'root'@'127.0.0.1';

Query OK, 0 rows affected (0.00 sec)

 

mysql> drop user 'root'

    -> @'::1';

Query OK, 0 rows affected (0.00 sec)

 

mysql> drop user ''@'localhost';

Query OK, 0 rows affected (0.00 sec)

 

mysql> drop user ''@'master';

Query OK, 0 rows affected (0.00 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

mysql> select user,host,password from mysql.user; ( 계정 삭제 후 현재 계정 확인 )

+------+-----------+-------------------------------------------+

| user | host      | password                                  |

+------+-----------+-------------------------------------------+

| root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |

+------+-----------+-------------------------------------------+

1 row in set (0.00 sec)


mysql> set password for 'root'@'localhost' = password('mysql');

Query OK, 0 rows affected (0.00 sec)

 

mysql> grant all on *.* to 'root'@'%' identified by 'mysql' with grant option;

Query OK, 0 rows affected (0.00 sec)

 

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

mysql> select user,host,password from mysql.user;

+------+-----------+-------------------------------------------+

| user | host      | password                                  |

+------+-----------+-------------------------------------------+

| root | localhost | *2447D497B9A6A15F2776055CB2D1E9F86758182F |

| root | %         | *2447D497B9A6A15F2776055CB2D1E9F86758182F |

+------+-----------+-------------------------------------------+

2 rows in set (0.00 sec


1) mysql_secure_install 유틸리티를 이용하여 진행 할 수 있지만 이번 테스트에서는 수동으로 작업

2) 초기 생성 된 불필요 계정 삭제

3) root@localhost의 패스워드 변경 및 어떤 ip로도 접속 가능한 root@% 계정 생성 및 권한 부여

4) 계정 관련 된 부분은 수정 및 생성 후 flush privileges를 입력하여 적용



TAGS.

Comments