개발자/Server

CentOS 6.5로 서버 구축하기 - 4. MYSQL 설정

SaintPark 2015. 8. 6. 21:12

이번에는 MYSQL을 이용해서 데이터베이스 설정을 해볼 차례다.

물론 굳이 MYSQL을 이용하지 않아도 된다. 오라클도 있고, MS-SQL도 있고... 여기서는 MYSQL로 해본다.


♣ MYSQL 시작

앞서 CentOS를 Web Server로 깔면 MYSQL이 기본적으로 설치된다. 이제 이걸 어떻게 입맛대로 수정하느냐가 문제. 일단 시작해본다.


[root@test run]# /etc/init.d/mysqld start

[root@test run]# mysql

mysql> show databases;


처음만들었으니 root계정은 열려있을 것이다. 비밀번호 설정하는법은 다음과 같다.

[root@test run]# use mysql;

[root@test run]# show tables;

[root@test run]# update user set Password=PASSWORD("바꿀비밀번호") where User='root';

[root@test run]# flush privileges;

[root@test run]# quit


해당 비밀번호로 MYSQL 시작

[root@test run]# mysql -u root -p

Enter password:

mysql>


※SQLYog(외부 데이터베이스 접속모듈)에서 Error No. 1130이 뜨며 접속이 안될때

MYSQL에서 다음과 같이 입력해준다. (권한문제)

grant all privileges on *.* to 계정이름@'%' identified by '비밀번호' with grant option;

flush privileges;


♣MySQL 데이터 저장소 변경

제대로 실행되는 것을 확인했으면 이제는 DB데이터가 있는 위치를 지정해주어야 한다. 

無에서 시작하면 상관없겠지만 서버를 옮기는 상황이라면 해당 DB파일을 새로 옮기는 서버에 넣고 위치를 설정해주는 작업이 필요할것이다.


1. 서비스 중지 

# /etc/init.d/mysqld stop

 

2. 기존 데이터 디렉토리의 내용을 새 디렉토리로 복사

# cp -rp /var/lib/mysql /data/

 

3. 새 디렉토리의 권한을 변경

(권한 변경을 하지 않았을때 재구동이 안되서 로그를 확인하면 다음과 같다.)

# vi /var/log/mysqld.log

----------------------------

''''''''''''''''''

[Warning] Can't create test file /data/mysql/myrepl.lower.lower-test

/usr/libexec/mysqld: File './mysql-bin.index' not found (Errcode: 13)

~~

'''''''''''''''''

----------------------------

# chown -R mysql:mysql /data/mysql

# chmod -R 755 /data/mysql

그래도 같은 오류가 나면, selinux 가 구동되고 있어서이다.

# vi /etc/sysconfig/selinux

-----------------------------------

#SELINUX=enforcing

SELINUX=disable

-----------------------------------

 

4. 설정 변경

# vi /etc/my.cnf

------------------------------------------------

[mysqld]

#datadir=/var/lib/mysql

datadir=/data/mysql

------------------------------------------------

 

5. /etc/init.d/mysqld 스크립트 파일 수정

# /usr/bin/mysqld_safe &

[1] 3892

# 130718 12:37:31 mysqld_safe Logging to '/var/log/mysqld.log' .

130718 12:37:31 mysqld_safe Starting mysqld daemon with databases from /data/mysql

(만일 MYSQL 실행이 안되면 mysqld_safe 명령어를 다시 실행시켜보자) 


# vi /etc/init.d/mysqld

---------------------------------

#get_mysql_option mysqld datadir "/var/lib/mysql"

get_mysql_option mysqld datadir "/data/mysql"

------------------------------------

 

6. 서비스 재가동

# /etc/init.d/mysqld stop

# /etc/init.d/mysqld start