諸事情で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-handshakelog-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.loglog-bin = mysql-bin
binlog_format = mixed
expire_logs_days = 1innodb_file_per_table
innodb_buffer_pool_size = 1G
innodb_log_file_size = 128M
innodb_log_buffer_size = 8Msql_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が使えるようになります。簡単になったものです。