Bloody Mary - blog

Bloody Mary 別館

Cloud n – MySQL 5.6

Cloud n にオールインワンサーバを立てる 9

MySQL 5.6 のインストール。

MySQL のインストール

1. MySQL リポジトリの設定

Oracle のページから最新版を DL する。

Cent OS 6.5 用は「Red Hat Enterprise Linux 6 / Oracle Linux 6」と書かれてあるところから。

ちなみに、リンクに「MD5: 1cbcf6b4ae7592b9ac100d9e7cd2ceb4」と書かれてあるので、ダウンロードした後に比較してみると、正しく落とせたかどうか分かる。

# cd /tmp

# wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

# md5sum mysql-community-release-el6-5.noarch.rpm
1cbcf6b4ae7592b9ac100d9e7cd2ceb4  mysql-community-release-el6-5.noarch.rpm

# rpm -ivh mysql-community-release-el6-5.noarch.rpm

# vi /etc/yum.repos.d/mysql-community.repo
----------
[mysql56-community]
enabled=1   ※ 1 になっていれば OK。特に設定は不要だった

2. MySQL 5.6 インストール

# yum list | grep mysql56
mysql-community-bench.x86_64          5.6.22-2.el6  mysql56-community
mysql-community-client.i686           5.6.22-2.el6  mysql56-community
mysql-community-client.x86_64         5.6.22-2.el6  mysql56-community
mysql-community-common.i686           5.6.22-2.el6  mysql56-community
mysql-community-common.x86_64         5.6.22-2.el6  mysql56-community
mysql-community-devel.i686            5.6.22-2.el6  mysql56-community
mysql-community-devel.x86_64          5.6.22-2.el6  mysql56-community
mysql-community-embedded.i686         5.6.22-2.el6  mysql56-community
mysql-community-embedded.x86_64       5.6.22-2.el6  mysql56-community
mysql-community-embedded-devel.i686   5.6.22-2.el6  mysql56-community
mysql-community-embedded-devel.x86_64 5.6.22-2.el6  mysql56-community
mysql-community-libs.i686             5.6.22-2.el6  mysql56-community
mysql-community-libs.x86_64           5.6.22-2.el6  mysql56-community
mysql-community-libs-compat.i686      5.6.22-2.el6  mysql56-community
mysql-community-libs-compat.x86_64    5.6.22-2.el6  mysql56-community
mysql-community-server.x86_64         5.6.22-2.el6  mysql56-community
mysql-community-test.x86_64           5.6.22-2.el6  mysql56-community
※ リポジトリが mysql56-community の中に、目的の MySQL 5.6 がある。

# yum -y install mysql-community-client \
  mysql-community-common \
  mysql-community-devel \
  mysql-community-libs \
  mysql-community-libs-compat \
  mysql-community-server

warning: rpmts_HdrFromFdno: V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Retrieving key from file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Importing GPG key 0x5072E1F5:
 Userid : MySQL Release Engineering 
 Package: mysql-community-release-el6-5.noarch (installed)
 From   : file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Is this ok [y/N]: y        ※ y で GPG キーをインポートしておく


# service mysqld start
(略)
                                                           [  OK  ]
Starting mysqld:                                           [  OK  ]
※ 長い警告が出たが、起動する

# chkconfig mysqld on

PHP 5.6 は /opt/remi/php56 配下にインストール (次の記事) されるが、 MySQL 5.6 は / 配下にインストールされる。

インストール先のファイル・ディレクトリ 簡単な説明
/etc/my.cnf 設定ファイル
/usr/bin/mysql MySQL サーバへの接続コマンド
/usr/bin/mysqladmin MySQL サーバの状態確認、パスワード変更するコマンド
/var/lib/mysql/ データベースファイル置き場
ライブラリ /usr/lib64/mysql/
ヘッダファイル /usr/include/mysql/

3. MySQL ユーザ設定

# mysql -u root
※ 最初だからパスワードなしで入れる
  1. mysql> select user,password,host from mysql.user;
  2. +------+----------+-----------+
  3. | user | password | host      |
  4. +------+----------+-----------+
  5. | root |          | localhost |
  6. | root |          | penguin1  |
  7. | root |          | 127.0.0.1 |
  8. | root |          | ::1       |
  9. |      |          | localhost |
  10. |      |          | penguin1  |
  11. +------+----------+-----------+
  12. 6 rows in set (0.08 sec)
  13.  
  14.  
  15. ※ インターネット側からは penguin1 のホストには接続できない設定にするが、外部に公開するわけではないので、これで OK だと思う。
  16. ※ IPv6 は使わないので root@"::1" は削除してもいいと思うが、一応残した。
  17. mysql> set password for root@localhost=password('パスワード');
  18. mysql> set password for root@penguin1=password('パスワード');
  19. mysql> set password for root@127.0.0.1=password('パスワード');
  20. mysql> set password for root@'::1'=password('パスワード');
  21.  
  22.  
  23. ※ パスワードが空になっているユーザを削除する。
  24. mysql> delete from mysql.user where user='' and password='';
  25.  
  26.  
  27. ※ すべてのユーザにパスワードが設定されていることを確認する。
  28. mysql> select user,password,host from mysql.user;
  29. +------+-------------------------------------------+-----------+
  30. | user | password                                  | host      |
  31. +------+-------------------------------------------+-----------+
  32. | root | *0B025000DCF68B1D374153A7005639E320D41D5B | localhost |
  33. | root | *0B025000DCF68B1D374153A7005639E320D41D5B | penguin1  |
  34. | root | *0B025000DCF68B1D374153A7005639E320D41D5B | 127.0.0.1 |
  35. | root | *0B025000DCF68B1D374153A7005639E320D41D5B | ::1       |
  36. +------+-------------------------------------------+-----------+
  37. 4 rows in set (0.00 sec)

上記の設定を行うと root にパスワードがかかるので、次回から -p オプションをつける。

※ 試しに -p なしだとパスワードが必要と怒られる
# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)


# mysql -u root -p
Enter password: ※ 設定したパスワードを入力
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.6.22 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

4. my.cnf 設定 – UTF-8

MySQL の文字コードを UTF-8 にしておく。

# vi /etc/my.cnf
------------------------------ 項目追加
[mysqld] ※ この項目の下あたりに追加しておく

# UTF-8
character-set-server = utf8
------------------------------
  1. mysql> show variables like "char%";
  2. +--------------------------+----------------------------+
  3. | Variable_name            | Value                      |
  4. +--------------------------+----------------------------+
  5. | character_set_client     | utf8                       |
  6. | character_set_connection | utf8                       |
  7. | character_set_database   | utf8                       |
  8. | character_set_filesystem | binary                     |
  9. | character_set_results    | utf8                       |
  10. | character_set_server     | utf8                       |
  11. | character_set_system     | utf8                       |
  12. | character_sets_dir       | /usr/share/mysql/charsets/ |
  13. +--------------------------+----------------------------+
  14. 8 rows in set (0.01 sec)

※ character_set_database や character_set_server が utf8 になっていれば OK。

5. my.cnf 設定 – explicit_defaults_for_timestamp

MySQL を起動したときの警告の対処をする。

MySQL database: 2014-12-22 11:41:21 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).

mysql を起動するたび、 /var/log/mysqld.log にも警告が書き込まれるため、ログが鬱陶しくなる。

MySQL 5.6 から explicit_defaults_for_timestamp の設定をすることが推奨されるようだ。

# vi /etc/my.cnf
------------------------------ 項目追加
[mysqld]
explicit_defaults_for_timestamp = true
  1. mysql> show global variables like 'explicit_defaults_for_timestamp';
  2. +---------------------------------+-------+
  3. | Variable_name                   | Value |
  4. +---------------------------------+-------+
  5. | explicit_defaults_for_timestamp | ON    |
  6. +---------------------------------+-------+
  7. 1 row in set (0.00 sec)

※ 明示的に ON にして、警告は表示されなくなった。

create table した時の挙動が若干変わるが、今のところ table 追加したりすることはないし、するとしたら新しいツールを入れるときだろうから、不具合が出てから考えよう。

Updated: 2015/1/9 金曜日 — 10:06:53

コメントを残す

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

Bloody Mary - blog © 2008 - 2021