| Category:雑記 | Comment

CentOS6.5にMySQL5.6をインストール

諸事情でRPMから入れなければならず
せっかくだから新しいバージョンを入れました。
現時点で、MySQL 5.6.19 で、環境はCentOS6.5 64bitです。

まずはRPMを集めます。以下の5種類を収集。

MySQL-client-5.6.11-1.el6.x86_64.rpm
MySQL-shared-compat-5.6.11-1.el6.x86_64.rpm
MySQL-server-5.6.11-1.el6.x86_64.rpm
MySQL-devel-5.6.11-1.el6.x86_64.rpm
MySQL-shared-5.6.11-1.el6.x86_64.rpm

ここで、インストールしようとすると、mysql-lib 5.1系 と競合して
エラーが出る場合があるので、その時は MySQL-shared-compat をインストール。

rpm -ivh MySQL-shared-compat-5.6.11-1.el6.x86_64.rpm

shared-compat は依存性を壊すこと無くライブラリを置き換えてくれるはずです。
そして mysql-lib をアンインストール。

rpm -e mysql-lib-5.1.~

これで他のパッケージもインストール出来るようになります。
念のため、mysql-lib を削除するときは、他に影響がないか確認しましょう。

続けてパッケージをインストールして行きます。

rpm -ivh MySQL-client-5.6.11-1.el6.x86_64.rpm
rpm -ivh MySQL-server-5.6.11-1.el6.x86_64.rpm
rpm -ivh MySQL-devel-5.6.11-1.el6.x86_64.rpm
rpm -ivh MySQL-shared-5.6.11-1.el6.x86_64.rpm

特にエラーが出なければ、以上でインストールは完了です。

ここからはMySQLの初期設定です。
5.6からは手順が少々変わったそうで、ちょっと戸惑いました。

まずサービスを起動しrootでmysqlに接続します。

service mysql start
mysql -uroot -p

この時、パスワードを聞かれるのですが、初期値が
/root/.mysql_secret に書かれています。
それでログインし、rootのパスワードを変更します。

SET PASSWORD FOR root@localhost=PASSWORD(‘パスワード’);

つぎに、mysql_secure_installation を実行し初期設定を行います。

Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

だいたいこんな感じで設定しています。

最後に、my.cnfを設定します。
ちなみに、my.cnf は etc に用意していないと、usr 直下に作られます。
今回は /usr/my.cnf を編集します。概ねこんな感じにしています。

[mysqld]
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock
character-set-server = utf8
skip-character-set-client-handshake

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

log-bin = mysql-bin
binlog_format = mixed
expire_logs_days = 1

innodb_file_per_table
innodb_buffer_pool_size = 1G
innodb_log_file_size = 128M
innodb_log_buffer_size = 8M

sql_mode=NO_ENGINE_SUBSTITUTION

[mysqld_safe]
log-error = /var/lib/mysql/mysqld_safe-error.log
character-set-server = utf8

今回、sql-modeというのが追加されています。初期値では、次のようになっています。

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

これが曲者で、STRICT_TRANS_TABLES があると今までのスクリプトが
動かない場合があります。詳細はこちらでご確認ください。
今回は下位互換のため、STRICT_TRANS_TABLES を消しました。

あとはサービスを再起動して、ユーザーの追加などなど行えば
MySQLが使えるようになります。簡単になったものです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータがどう処理されているか知りたい方はこちらをお読みください