構成
CentOS |
release 5.6 (Final) |
MySQL |
Ver 14.14 Distrib 5.5.14, for Linux (x86_64) using EditLine wrapper |
Spider for MySQL |
2.26 for 5.5.14 |
依存パッケージのインストール
cmakeとBisonのインストール
# yum install cmake.x86_64 bison.x86_64
...
==================================================================================================
Package Arch Version Repository Size
==================================================================================================
Installing:
bison x86_64 2.3-2.1 base 549 k
cmake x86_64 2.6.4-5.el5.2 epel 7.1 M
Installing for dependencies:
m4 x86_64 1.4.5-3.el5.1 base 171 k
Transaction Summary
==================================================================================================
Install 3 Package(s)
Upgrade 0 Package(s)
ncurses-develのインストール
# yum install ncurses-devel.x86_64
...
==================================================================================================
Package Arch Version Repository Size
==================================================================================================
Installing:
ncurses-devel x86_64 5.5-24.20060715 base 1.7 M
Transaction Summary
==================================================================================================
Install 1 Package(s)
Upgrade 0 Package(s)
MySQL 5.5.14 + spiderストレージエンジン 2.26のソースコードをダウンロードして、インストールします。最新のソースコードはSpider for MySQL in Launchpadからダウンロードできます。
# cd /usr/local/src
# wget http://launchpad.net/spiderformysql/spider-2.x/2.26-for-5.5.14/+download/mysql-5.5.14-spider-2.26-vp-0.15-hs-1.0.tgz
# tar zxvf ./mysql-5.5.14-spider-2.26-vp-0.15-hs-1.0.tgz
# cd ./mysql-5.5.14-spider-2.26-vp-0.15-hs-1.0
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5.14-spider \
-DMYSQL_DATADIR=/var/lib/mysql/data \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DWITH_EXTRA_CHARSETS=complex \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \
-DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PIC=1 .
# make
# make install
cmakeに渡すオプションについては、MySQL :: Building MySQL from Source :: 4 MySQL Source-Configuration Optionsを参照してください。
# useradd -s /sbin/nologin mysql
# chown -R mysql:mysql /usr/local/mysql-5.5.14-spider
# ln -s /usr/local/mysql-5.5.14-spider /usr/local/mysql
my.cnfの作成
FILE: /etc/my.cnf
#------------------------------------------------------------------------------
# mysqld
#
#------------------------------------------------------------------------------
[mysqld]
#
# layout
#
datadir=/var/lib/mysql/data
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#
# plugins
#
# http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html
;performance_schema
#
# Global Buffer Size
#
max_heap_table_size=128MB
tmp_table_size=128MB
query_cache_size=16MB
innodb_buffer_pool_size=512MB
innodb_log_buffer_size=16MB
#
# Thread Buffer Size
#
myisam_sort_buffer_size=1MB
read_buffer_size=1MB
join_buffer_size=256KB
read_rnd_buffer_size=1MB
#
# innnodb
#
innodb_file_per_table
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_log_file_size=128MB
max_connections=20
max_allowed_packet=16MB
thread_concurrency=16
skip-name-resolve
character-set-server=utf8
#
# slow query log
#
#log-output=TABLE,FILE
#slow_query_log
#slow_query_log_file=/var/log/mysql/slow.log
#long_query_time=0.5
#min_examined_row_limit=10000
#log-queries-not-using-indexes
#
# replication
#
server-id=1001
#binlog-format=MIXED
#log-bin=/var/lib/mysql/bin-log/log-bin
#expire_logs_days=7
#
# spider
#
#spider_internal_xa=1
#spider_semi_trx_isolation=2
#spider_support_xa=0
#------------------------------------------------------------------------------
# mysqld_safe
#
#------------------------------------------------------------------------------
[mysqld_safe]
log-error=/var/log/mysql/mysqld.log
#------------------------------------------------------------------------------
# mysql
#
#------------------------------------------------------------------------------
[mysql]
default-character-set=utf8
#------------------------------------------------------------------------------
# client
#
#------------------------------------------------------------------------------
[client]
socket=/var/lib/mysql/mysql.sock
spiderストレージエンジンをインストールするまで、関連する設定項目はコメントアウトしておきます。そうしないと、次のようにmysql_install_dbの実行に失敗するためです。
# ./scripts/mysql_install_db --datadir=/var/lib/mysql/data --user=mysql
Installing MySQL system tables...
110930 16:10:05 [ERROR] ./bin/mysqld: unknown variable 'spider_internal_xa=1'
110930 16:10:05 [ERROR] Aborting
110930 16:10:05 [Note] ./bin/mysqld: Shutdown complete
Installation of system tables failed! Examine the logs in
/var/lib/mysql/data for more information.
my.cnfで指定したディレクトリの作成
# mkdir /var/lib/mysql; chown mysql:mysql /var/lib/mysql
# mkdir /var/lib/mysql/data; chown mysql:mysql /var/lib/mysql/data
# mkdir /var/lib/mysql/bin-log; chown mysql:mysql /var/lib/mysql/bin-log
# mkdir /var/lib/mysql/relay-log; chown mysql:mysql /var/lib/mysql/relay-log
# mkdir /var/log/mysql; chown mysql:mysql /var/log/mysql
# mkdir /var/run/mysqld; chown mysql:mysql /var/run/mysqld
# cd /usr/local/mysql
# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod 755 /etc/rc.d/init.d/mysqld
basedirを/usr/local/mysqlディレクトリにします。
FILE: /etc/rc.d/init.d/mysqld
--- /usr/local/mysql/support-files/mysql.server 2011-09-07 13:23:40.000000000 +0900
+++ /etc/rc.d/init.d/mysqld 2011-09-07 18:45:38.000000000 +0900
@@ -43,7 +43,7 @@
# If you change base dir, you must also change datadir. These may get
# overwritten by settings in the MySQL configuration files.
-basedir=
+basedir=/usr/local/mysql
datadir=
# Default value, in seconds, afterwhich the script should timeout waiting
データベースの初期化
mysql_install_dbはカレントディレクトリをMySQLのインストール先に移動してから実行します。
# ./scripts/mysql_install_db --datadir=/var/lib/mysql/data --user=mysql
# service mysqld start
# ./bin/mysql_secure_installation
spiderストレージエンジンのインストール
# cd /usr/local/src
# wget http://launchpad.net/spiderformysql/spider-2.x/2.26-for-5.5.14/+download/spider-init-2.26-for-5.5.14.tgz
# mkdir spider-init-2.26-for-5.5.14
# tar zxvf ./spider-init-2.26-for-5.5.14.tgz -C./spider-init-2.26-for-5.5.14
# cd /usr/local/mysql
# ./bin/mysql -uroot -p < /usr/local/src/spider-init-2.26-for-5.5.14/install_spider.sql
mysql> show engines;
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| SPIDER | YES | Spider storage engine | YES | YES | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| CSV | YES | CSV storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
7 rows in set (0.00 sec)
spiderストレージエンジンの設定
コメントアウトしていた、spiderストレージエンジンの設定を有効にします。
--- /etc/my.cnf 2011-09-30 16:26:10.000000000 +0900
+++ /etc/my.cnf 2011-09-30 16:26:30.000000000 +0900
@@ -97,9 +97,9 @@ server-id=1001
# spider
#
-#spider_internal_xa=1
-#spider_semi_trx_isolation=2
-#spider_support_xa=0
+spider_internal_xa=1
+spider_semi_trx_isolation=2
+spider_support_xa=0
更新されたmy.cnfを反映するため、mysqldを再起動します。
# service mysqld restart
・MySQLは現在2つ以上のxaトランザクションをサポートするストレージエンジンを利用できません。
SpiderとInnoDBを併用する場合は、コンフィグファイルに「spider_support_xa=0」を記載し、Spiderのxaサポートを無効にしてください。
Spiderのxaサポートが無効になっても、「internal_xa」は利用可能です。
パスの追加
バイナリファイルが置かれているディレクトリへのパスを追加します。
FILE: ~/.bashrc
export PATH=/usr/local/mysql/bin:$PATH
備考
Warning: Bison executable not found in PATH
cmakeしたところ、次のようなエラーメッセージが表示されました。
...
-- Performing Test HAVE_PEERCRED - Success
Warning: Bison executable not found in PATH
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/mysql-5.5.14-spider-2.26-vp-0.15-hs-1.0
Bisonが見つからない
ということなので、Bisonをインストールします。
# yum install cmake.x86_64 bison.x86_64
作業ファイルが残っていると再びcmakeしても同じエラーメッセージが表示されるので、ディレクトリを作り直します。
# cd ..
# rm -rf ./mysql-5.5.14-spider-2.26-vp-0.15-hs-1.0
Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
cmakeしたところ、次のようなエラーメッセージが表示されました。
...
-- MySQL 5.5.14
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:82 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:126 (FIND_CURSES)
cmake/readline.cmake:216 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:257 (MYSQL_CHECK_READLINE)
-- Configuring incomplete, errors occurred!
Redhat系ならncurses-develをインストールするように
ということなので、インストールします。
# yum install ncurses-devel.x86_64
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
mysql_secure_installationを実行したところ、次のようなエラーメッセージが表示されました。
Enter current password for root (enter for none):
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
mysql_secure_installationの中身を調べてみると、--defaults-fileに.my.cnf.$$が指定されています。そのため、/etc/my.cnfが読み込まれず、そこに記述したsocket=/var/lib/mysql/mysql.sockも反映されていないようです。
FILE: /usr/local/mysql/bin/mysql_secure_installation
config=".my.cnf.$$"
...
prepare() {
touch $config $command
chmod 600 $config $command
}
...
do_query() {
echo "$1" >$command
#sed 's,^,> ,' < $command # Debugging
$mysql_client --defaults-file=$config <$command
return $?
}
ソケットファイルを見つけることができるように、cmakeに渡すオプションに以下を追加してビルドをやり直します。
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock