kakiro-webカキローウェブ

システム開発情報とコンピューター書籍の紹介サイト

CentOS6.7 64bitにMySQL5.6.26をRPMからインストール

CentOS6.7の64bit版にMySQL5.6.26をRPMからインストールする方法を以下に示します。

※CentOS7 64bitをご使用の場合は、当サイトのCentOS7 64bitにMySQLをRPMからインストールのページをご覧ください。

CentOS6.7の標準リポジトリからインストールできるMySQLのバージョンは、5.1.73と古いものになっています。MySQLの公式サイトからRPMをダウンロードすることで、新しいバージョンのインストールを行うことができます。

※MySQLのyumリポジトリを使用して、最新バージョンをインストールすることも可能です。詳細は当サイトのCentOS6 64bitのyumリポジトリにMySQLを追加し、最新バージョンをインストールのページをご覧ください。

依存関係にあるパッケージで、CentOS6.7の標準リポジトリからインストールできるものについては、特別なものでない限り省略しています。

以下の各コマンドで、プロンプトが「#」で開始しているものはrootユーザーでの実行、「$」で開始しているものは一般ユーザーでの実行となります。

CentOS6.7の標準リポジトリからインストールされているMySQL関連のパッケージのアンインストール

MySQL-serverのインストール時に、以下のようなエラーになってしまう場合、

ファイル /usr/share/mysql/czech/errmsg.sys (パッケージ MySQL-server-5.6.26-1.el6.x86_64 から) は、パッケージ mysql-libs-5.1.73-5.el6_6.x86_64 からのファイルと競合しています。
:(略)

CentOS6.7の標準リポジトリからMySQL関連のパッケージがインストールされていると、MySQLの公式サイトからダウンロードしたMySQLのRPMと競合してしまうのが原因です。

以下のようなコマンドを実行して、CentOS6.7の標準リポジトリからインストールされているMySQL関連のパッケージのアンインストールを行います。

# yum remove mysql-libs

MySQL-server5.6.26のインストール

MySQLの公式サイトからMySQL5.6.26のRPMを一式ダウンロードし、インストールを行います。

MySQL5.6.26のRPMを一式ダウンロード

以下のコマンドを実行して、MySQL5.6.26のRPMが一式揃ったtarファイルのダウンロードを行います。

※ダウンロード元のURLは、MySQLの公式サイトから遷移できるRed Hat Enterprise Linux 6 64bit用のRPM Bundleのダウンロードページにリンクがあります。

※ページ下部の「No thanks, just start my download.」のリンクを利用すれば、Oracleのアカウントでログインを行う必要はありません。

(新しいバージョンがリリースされてリンク切れになっている場合は、アーカイブページにダウンロードのリンクがあると思いますので、こちらを参照してみてください。)

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.26-1.el6.x86_64.rpm-bundle.tar

以下のコマンドを実行して、ダウンロードしたtarファイルを展開します。

$ tar -xvf MySQL-5.6.26-1.el6.x86_64.rpm-bundle.tar

MySQL-server5.6.26のインストール

以前にMySQLをインストールして、そのアンインストールを行っている場合、以前に使用していたデータはアンインストールを行っても残っています。以前のデータが不要な場合は、以下のコマンドを実行して削除を行います。

# rm -rf /var/lib/mysql/

以下のコマンドを実行して、MySQL-server5.6.26のインストールを行います。

# rpm -Uvh MySQL-server-5.6.26-1.el6.x86_64.rpm

インストール中に以下のようなメッセージが表示されます。

これはMySQLを起動して最初にrootユーザーで接続するときのパスワードが、ファイル「/root/.mysql_secret」に記載されていて、接続後に「SET PASSWORD」でパスワードの変更を行うまでは、他のステートメントは実行できないことを示しています。

A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'.

You must change that password on your first connect,
no other statement but 'SET PASSWORD' will be accepted.
See the manual for the semantics of the 'password expired' flag.

MySQL-client5.6.26のインストール

サーバー上でMySQLに接続するときに使用するmysqlコマンドが含まれている、MySQL-client5.6.26のインストールを行います。

MySQL-client5.6.26のrpmは、上記でダウンロードしたRPM Bundleに含まれています。

MySQL-client5.6.26のインストール

以下のコマンドを実行して、MySQL-client5.6.26のインストールを行います。

# rpm -Uvh MySQL-client-5.6.26-1.el6.x86_64.rpm

MySQL-shared5.6.26、またはMySQL-shared-compat5.6.26のインストール

他のパッケージをインストールする際に依存関係としてmysql-libsが必要な場合、MySQL-shared、またはMySQL-shared-compatのインストールを行うことで依存関係を解決できます。

MySQL-shared-compatは、古いバージョンのMySQLに対応したものになっています。

MySQL-shared5.6.26、MySQL-shared-compat5.6.26のrpmは、上記でダウンロードしたRPM Bundleに含まれています。

MySQL-shared5.6.26のインストール

以下のコマンドを実行して、MySQL-shared5.6.26のインストールを行います。

# rpm -Uvh MySQL-shared-5.6.26-1.el6.x86_64.rpm

MySQL-shared-compat5.6.26のインストール

以下のコマンドを実行して、MySQL-shared-compat5.6.26のインストールを行います。

# rpm -Uvh MySQL-shared-compat-5.6.26-1.el6.x86_64.rpm

インストール後の設定

MySQLのサービスを起動

以下のコマンドを実行して、MySQLのサービスを起動することができます。

# service mysql start

尚、サービス名は以下のコマンドで確認することができます。

# rpm -ql MySQL-server | grep init.d
/etc/init.d/mysql

MySQLのサービスを自動で起動させる

MySQLのサービスは、インストール時点で自動で起動するようになっています。

自動起動設定の状態は、以下のコマンドで確認できます。

# chkconfig --list mysql
mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off

自動起動する設定になっていない場合、以下のコマンドで自動で起動するように設定できます。

# chkconfig mysql on

自動起動しないようにしたい場合は、以下のコマンドを実行します。

# chkconfig mysql off

自動で起動しないように設定した後の状態は、以下のようになります。

# chkconfig --list mysqld
mysql           0:off   1:off   2:off   3:off   4:off   5:off   6:off

MySQLへの接続

最初にローカルのMySQLにコマンドラインで接続するには、以下のコマンドを実行します。

# mysql -u root -p
Enter password:

最初の接続時は、ファイル「/root/.mysql_secret」に記載されているパスワードを入力すると接続できます。

rootユーザーにパスワードを設定

MySQL-serverのインストール時のメッセージにあったように、最初の接続後にパスワードの変更を行うまでは、他のステートメントを実行しても以下のようにエラーになってしまいます。

mysql> SHOW DATABASES;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

以下のステートメントを実行して、ログイン中のrootユーザーのパスワードの変更を行います。

mysql> SET PASSWORD = PASSWORD('xxxxxxxxxx');

※「xxxxxxxxxx」には、設定したいパスワードを指定します。

これで通常通りステートメントが実行できるようになります。

rootユーザーはhostが「localhost」、「localhost.localdomain」、「127.0.0.1」、「::1」の4種類存在し、上記のステートメントでのパスワード変更はログイン中のrootユーザーである「localhost」のみに行われますので、他のhostのrootユーザーにもパスワードの変更を行う必要があります。

以下のステートメントを実行して、他のhostのrootユーザーのパスワードの変更を行います。

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」には、設定したいパスワードを指定します。

尚、MySQLに存在しているユーザーは、以下のようなステートメントで確認することができます。

mysql> SELECT host,user,password FROM mysql.user;

現在ログイン中のユーザーは、以下のステートメントで確認することができます。

mysql> SELECT CURRENT_USER();
+----------------+
| CURRENT_USER() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

MySQLへの外部からのアクセスを許可

外部からアクセス可能なデータベース接続ユーザーの作成については、当サイトのMySQL データベース接続ユーザーの作成のページをご覧ください。

また、MySQLへの外部からのアクセスは、iptablesによってデフォルトでは拒否されています。

iptablesによるMySQLへの外部アクセス許可の設定については、当サイトのCentOS6 64bit iptablesによるアクセス制御のページをご覧ください。

データベースの作成

データベースの作成については、当サイトのMySQL データベースの作成のページをご覧ください。

テーブルの作成

テーブルの作成については、当サイトのMySQL テーブルの作成のページをご覧ください。

データベース接続ユーザーの作成

データベース接続ユーザーの作成については、当サイトのMySQL データベース接続ユーザーの作成のページをご覧ください。

SQLモードについて

MySQLでSQLの動作を指定するものとして、SQLモードというものがあります。SQLモードについては、当サイトのMySQL SQLモードの設定、確認についてのページMySQL SQLモードの内容についてのページをご覧ください。

実行されたSQLをログに出力

実行されたSQLのログ出力については、当サイトのMySQL 実行されたSQLをログに出力のページをご覧ください。

データベースのバックアップとリカバリー

データベースのバックアップとリカバリーについては、当サイトの以下のページをご覧ください。

MySQL5.6.26のインストールについては、以上です。

SQLのテクニックに関するおすすめの書籍

当サイトの書籍紹介ページで、SQLのテクニックに関するおすすめの書籍の紹介も行っておりますので、ご覧ください。

SQLのパフォーマンスに関するおすすめの書籍

当サイトの書籍紹介ページで、SQLのパフォーマンスに関するおすすめの書籍の紹介も行っておりますので、ご覧ください。

DB設計、SQLに関するおすすめの書籍

当サイトの書籍紹介ページで、DB設計、SQLに関するおすすめの書籍の紹介も行っておりますので、ご覧ください。