MySQL
CentOS
InnoDB

CentOS 6.5, MySQL 5.6でRamディスクにデータを移す

More than 3 years have passed since last update.


環境


やったこと

全部root

# mysqlとめた

service mysqld stop

# ramディスク作った
mkdir -p /mnt/ramdisk
mount -t tmpfs -o size=2G tmpfs /mnt/ramdisk

# mysqlディレクトリをコピーした(パーミッションそのままに)
cp -pr /var/lib/mysql /mnt/ramdisk/


/etc/my.cnf いじった

# datadir=/var/lib/mysql

datadir=/mnt/ramdisk/mysql


起動しない

service mysqld start


/var/log/mysqld.log を見る

2013-12-05 10:58:01 10047 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

他にもパーミッションねぇとかなんとか。あるよ!!


原因はSELinux


  • ググるとubuntuでapparmorがどうのこうのというのを見かける


    • じゃCentOSならSELinuxじゃねぇ?


      • selinuxとかつけてググり直す


        • ビンゴ







# 試しに切ってみる

/usr/sbin/setenforce 0

# 動いた!
service mysqld start


後々

/etc/sysconfig/selinux を弄っておく(permissiveでも問題ないサーバなので)


もともとの目的

jenkinsで異様にテストが重い→ローカルマシンでは早い→原因はI/Oくさい→「Ramディスク使えばいいんじゃね?」(←天からの啓示)

結果、22分かかってたテストが1分で終わるようになった。ひゃっほう。