bashtag

宮崎でITベンチャーから非ITベンチャーへ転職したサーバエンジニアのブログ

ソースコンパイルでサーバ構築 CentOS版 Part5

怒涛の五日目突入!

今日はMySQLです。

  • OS:CentOS6.4
  • Web:Nginx + php-fpm + PHP
  • DB:MySQL

MySQLをソースでインストール

# 必要なパッケージをインストール
yum -y install cmake
yum -y install ncurses-devel

# ソース展開用ディレクトリに移動
cd /usr/local/src/
mkdir mysql
cd mysql

# リンク http://dev.mysql.com/downloads/mysql/
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz

# 展開
tar zxvf mysql-5.6.16.tar.gz

# MySQL用のグループとユーザを作成
sudo groupadd mysqlsudo useradd -g mysql -s /usr/sbin/nologin mysql

# 以下の条件でコンパイルします
#-----
# デフォルトのキャラクタセット = utf8
# デフォルトの照合順序 = utf8_general_ci
# ストレージエンジンにInnoDB追加
#-----
/usr/bin/cmake . \
-DCMAKE_INSTALL_PREFIX=/var/lib/mysql \
-DMYSQL_DATADIR=/var/lib/mysql/data \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DDISABLE_SHARED=1 \
-DENABLE_DTRACE=0 \
-DENABLE_GCOV=0 \
-DWITH_DEBUG=0 \
-DENABLE_DEBUG_SYNC=0 \
-DWITH_PIC=1

# makeしてmake install
make && make install

# 起動スクリプトを作成し、実行権限を付与
cp /var/lib/mysql/support_files/mysql.server /etc/init.d/mysql
chown root:root /etc/init.d/mysql
chmod a+x /etc/init.d/mysql

データベース準備

# データ格納ディレクトリの権限をmysqlに
chown -R mysql:mysql /var/lib/mysql

# データベース初期化
/var/lib/mysql/scripts/mysql_install_db --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data --user=mysql


# コマンド郡設置
cd /usr/local/binln -s /var/lib/mysql/bin/mysqladmin mysqladminln -s /var/lib/mysql/bin/mysql mysqlln -s /var/lib/mysql/bin/mysqlcheck mysqlcheckln -s /var/lib/mysql/bin/mysqldump mysqldump

# MySQL用設定をチューニング

vim /etc/my.cnf

#--- 追記内容 START my.cnf
[mysqld]
#skip-grant-tables
port = 3306
datadir=/var/lib/mysql/data
socket=/tmp/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

character-set-server = utf8
skip-character-set-client-handshake

log-error = /var/log/mysql/mysqld-error.log
general_log = 1
general_log_file = /var/log/mysql/mysql.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1

max_connections = 50
key_buffer_size = 16M
max_allowed_packet = 1M
binlog_cache_size = 1M
table_open_cache = 128
sort_buffer_size = 512K
join_buffer_size = 512K
thread_concurrency = 4
query_cache_size = 16M
query_cache_limit = 512K
tmp_table_size = 50M
read_buffer_size = 256K
read_rnd_buffer_size = 512K
net_buffer_length = 8K

#*** MyISAM Specific options
myisam_sort_buffer_size = 1M

# *** INNODB Specific options ***
innodb_buffer_pool_size = 32M
innodb_additional_mem_pool_size = 5M

[mysqld_safe]
log-error = /var/log/mysql/mysqld_safe-error.log
pid-file=/var/run/mysqld.pid

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
default-character-set = utf8

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[client]
socket=/var/lib/mysql/mysql.sock
#----- 追記内容 E N D

# 起動
/etc/init.d/mysql start


# 自動起動追加
chkconfig --add mysql
chkconfig mysql on

phpMyAdminを準備(念のため)

# ソースをwget
cd /var/www/src

wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.1.7/phpMyAdmin-4.1.7-all-languages.tar.gz


# ソース展開
cd /var/www/html
tar zxvf ../src/phpMyAdmin-4.1.7-all-languages.tar.gz

# リネーム
mv phpMyAdmin-4.1.7-all-languages phpMyAdmin

# 設定ファイル作成
cp config.sample.inc.php config.inc.php
vim config.inc.php

ブラウザからアクセスしてみる

  • my.cnfのsocketを調整した場合は変更が必要な可能性あり
# my.cnfで
# socket=/var/lib/mysql/mysql.sock
# としてしまった場合
vim /etc/php.ini
#--- 変更内容 START php.ini
mysql.default_socket = /var/lib/mysql/mysql.sock
pdo_mysql.default_socket= /var/lib/mysql/mysql.sock
mysqli.default_socket = /var/lib/mysql/mysql.sock
#--- 変更内容 E N D