CentOS6の標準リポジトリからインストールできるMySQLのバージョンは、5.1.73と古いものになっています。MySQLのyumリポジトリを利用することで、最新バージョンのMySQLをyumコマンドによりインストールすることができるようになります。
1.MySQLのリポジトリ設定パッケージをダウンロード
※ダウンロード元のURLは、MySQLの公式サイトから遷移できるCentOS6用のyumリポジトリのダウンロードページにリンクがあります。http://dev.mysql.com/downloads/file/?id=450542
※ページ下部の「No thanks, just start my download.」のリンクを利用すれば、Oracleのアカウントでログインを行う必要はありません。
1 |
# yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm |
2.MySQLのインストール
以前にMySQLをインストールして、そのアンインストールを行っている場合、以前に使用していたデータはアンインストールを行っても残っています。以前のデータが不要な場合は、以下のコマンドを実行して削除を行います。
1 |
# rm -rf /var/lib/mysql/ |
以下のコマンドを実行して、MySQL5.6の最新バージョンのインストールを行うことができます。
1 |
# yum -y install mysql-community-server |
尚、MySQLのリポジトリから初めてyumコマンドでパッケージのインストールを行う際には、以下のような警告メッセージが表示されます。
1 2 3 4 5 6 7 |
警告: rpmts_HdrFromFdno: ヘッダ V3 DSA/SHA1 Signature, key ID xxxxxxxx: NOKEY Retrieving key from file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql Importing GPG key 0xXXXXXXXX: Userid : MySQL Release Engineering <mysql-build@oss.oracle.com> Package: mysql-community-release-el6-5.noarch (installed) From : file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql これでいいですか? [y/N] |
これはyumコマンドでパッケージのインストールを行う際には、GPG署名というものを使用して、パッケージの検証を行うようになっているのですが、その際に必要なキーが存在しないため、インポートしてよいか確認するメッセージになります。
キーのインポートを行うので、「y」を入力します。
尚、インポートされているキーは、以下のコマンドで確認できます。
1 2 3 4 5 |
# rpm -qa | grep gpg-pubkey gpg-pubkey-c105b9de-4e0fd3a3 gpg-pubkey-00f97f56-467e318a gpg-pubkey-0608b895-4bd22942 gpg-pubkey-5072e1f5-4e773e2a |
キーは、CentOSのリポジトリの物、MySQLのリポジトリの物等、使用しているリポジトリ別に管理されます。
3.インストール後の設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// MySQLのサービスを起動 # /etc/rc.d/init.d/mysqld start // サービス名は以下のコマンドで確認することができます。 # rpm -ql mysql-community-server | grep init.d /etc/init.d/mysqld // MySQLのサービスを自動で起動させる # chkconfig --list mysqld mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off // 自動起動する設定になっていない場合、以下のコマンドで自動で起動するように設定できます。 # chkconfig mysqld on // 自動で起動するように設定した後の状態は、以下のようになります。 # chkconfig --list mysqld mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off // 自動起動しないようにしたい場合は、以下のコマンドを実行します。 # chkconfig mysqld off |
4.MySQLへの接続し初期設定を行う
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.6.29 MySQL Community Server (GPL) Copyright (c) 2000, 2016, 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> select user,host,password from mysql.user; +------+---------------+----------+ | user | host | password | +------+---------------+----------+ | root | localhost | | | root | sv.ssp-db.net | | | root | 127.0.0.1 | | | root | ::1 | | +------+---------------+----------+ 4 rows in set (2.32 sec) // rootユーザーにパスワードを設定 // デフォルトでは、rootユーザーにパスワードが設定されていません。以下のようなステートメントを実行して、パスワードの設定を行うことができます。 mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('xxxxxxxxxx'); mysql> SET PASSWORD FOR 'root'@'localhost.localdomain' = PASSWORD('xxxxxxxxxx'); mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('xxxxxxxxxx'); mysql> SET PASSWORD FOR 'root'@'::1' = PASSWORD('xxxxxxxxxx'); // ※「xxxxxxxxxx」には、設定したいパスワードを指定します。 // rootユーザーは、hostが「localhost」、「localhost.localdomain」、「127.0.0.1」、「::1」の4種類存在しますので、それぞれにパスワードの設定を行う必要があります。 // パスワードの設定後に、ローカルのMySQLにコマンドラインで接続するには、以下のコマンドを実行します。 # mysql -u root -p Enter password: // 設定したパスワードを入力すると、接続することができます。 // 匿名ユーザーの削除 // ローカルのMySQLにパスワード付きのユーザーで接続を行う際に、以下のようなエラーになってしまう場合、 ERROR 1045 (28000): Access denied for user 'xxxxx'@'localhost' (using password: YES) // ※「xxxxx」はログイン時に指定したユーザー名。 // MySQLにデフォルトでユーザー名、パスワードが空のユーザーが存在することが原因になっています。 // 尚、MySQLにログインを行う際に、以下のようにパスワードの指定を行わないようにするとログインすることができますが、実際には指定したユーザーではなく、匿名ユーザーでのログインになっています。 # mysql -u xxxxx // 現在ログイン中のユーザーは、以下のステートメントで確認することができます。 mysql&gt; SELECT CURRENT_USER(); +----------------+ | CURRENT_USER() | +----------------+ | @localhost | +----------------+ 1 row in set (0.00 sec) // MySQLに存在しているユーザーは、以下のようなステートメントで確認することができます。 mysql> SELECT host,user,password FROM mysql.user; // デフォルトでは、hostが「localhost」、「localhost.localdomain」でuser、passwordが空のユーザーが存在しています。 // ※該当のユーザーのhostがローカルホストになっているため、外部からのアクセス時には影響がありません。 // これらのユーザーが不要な場合は、以下のステートメントで削除を行うことができます。 mysql> DROP USER ''@'localhost'; mysql> DROP USER ''@'localhost.localdomain'; // ※ユーザーの削除をmysql.userテーブルからDELETE文を使用して削除を行い、FLUSH PRIVILEGESを実行する方法もあり、以前のバージョンのMySQLの公式ドキュメントでも紹介されていましたが、現在はMySQLの公式ドキュメントでもDROP USER文を使用するようになっていますので、こちらを使用したほうがよいかと思います。 |