MySQL 5.x 소스 빌드 (2)

MySQL

소스 빌드

mysql 계정 생성

groupadd mysql // 시스템에 mysql 그룹 생성

useradd -g mysql -M -s /bin/false mysql // 시스템 로그인이 불가하며 홈디렉터리를 제외하여 mysql 계정을 생성

mysql 소스 파일 다운로드 및 압축 해제

mysql 설치에 필요한 필수 패키지 사전 설치

1
yum install -y cmake bison gcc gcc-c++ ncurses-devel

mysql 데이터베이스 서버를 구축하기 위하여 mysql 최신 버전의 소스를 다운로드 받아 압축을 해제.

1
2
3
4
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.28.tar.gz
$ tar xzvf mysql-5.6.28.tar.gz
$ cd mysql-5.6.28

mysql db 설치에 필요한 사전 작업이 완료되면 설치를 진행할 수 있다. Mysql 은 5.5 버전 이후의 버전은 configure 명령어가 아닌 아래와 같이 cmake 명령어를 이용하여 configure 를 진행.

  • mysql cmake command 정리
1
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql - DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 - DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 - DDEFAULT_COLLATION=utf8_general_ci -Dwith_ZLIB=system - DENABLE_DTRACE=0

mysql 환경 설정파일 및 mysql 초기화

mysql 설치작업이 끝나면 데몬을 구동하기 위한 초기화 작업이 필요하다. 다음과 같이 작업이 완료되면 최초 설치 작업은 마무리 된다.

  • mysql 환경설정 기본 파일 복사
1
$ cp ./support-files/my-default.cnf /etc/my.cnf

mysql 초기화

1
2
$ cd /usr/local/mysql
$ /usr/local/mysql/scripts/mysql_install_db –user=mysql

mysql 서비스 스크립트 및 서비스 설정

Mysql 설정이 완료되면 부가적으로 서비스의 스크립트와, 부팅 시 자동으로 서비스가 올라오도록 아래와 같은 기본 설정을 추가한다.

  • mysql 서비스 스크립트 및 서비스 runlevel 등재
1
2
$ cd /usr/local/mysql
$ cp -a support-files/mysql.server /etc/init.d/mysqld # ln -s /etc/init.d/mysqld /etc/rc3.d/S90mysqld

Start

mysql-server 를 설치하며 만든 root 사용자 패스워드를 사용해서 데이터베이스에 접속한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

사용자가 사용할 데이터베이스를 만든다.

1
2
mysql>create database mydb;
Query OK, 1 row affected (0.00 sec)

계속해서 새로운 사용자를 만든다.

1
2
3
4
# 현재 머신에서만 접속할 수 있는 사용자 계정
mysql> GRANT ALL privileges ON *.* TO ID@localhost IDENTIFIED BY '*****';
# 외부, 원격에서 접속할 수 있는 사용자 계정
mysql> GRANT ALL privileges ON *.* TO ID@'%' IDENTIFIED BY '*****';

localhost 머신의 MySQL 데이터베이스에 myid라는 이름의 아이디를 만들고, 패스워드는 password로 설정

사용자 데이터베이스 사용

새로 생성한 사용자 ID로 로그인을 해서 데이터베이스를 만든다.

1
2
3
root@a5d2a69fa410:/# mysql -u qkboo -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \\g.

MySQL 설정

MySQL에서 설정파일을 읽는 순서는 다음과 같다.

/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/mysql/etc/my.cnf
~/.my.cnf

/etc/my.cnf

utf-u 문자셋을 기본으로 설정하기 위해서 my.cnf 파일을 다음 같이 사용한다.

MySQL 설정 파일에서 문자셋을 변경할 수 있다. 다믕 같이 자신의 my.cnf 파일을 작성한다. client, mysqld, mysql 에 대해서 utf8 사용을 선언해 준다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[client]
..
default-character-set=utf8

[mysqld]
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

[mysqldump]
default-character-set=utf8

[mysql]
default-character-set=utf8

참조

Author

Gangtai Goh

Posted on

2017-03-11

Updated on

2023-05-12

Licensed under

댓글