CentOS7.1 64bitのyumリポジトリにMySQLを追加し、最新バージョンをインストール

CentOS7.1 64bitのyumリポジトリにMySQLを追加し、最新バージョンをインストール

CentOS7.1の64bit版のyumリポジトリにMySQLを追加し、最新バージョンをインストールする方法を以下に示します。

※CentOS6 64bitをご使用の場合は、当サイトのCentOS6 64bitのyumリポジトリにMySQLを追加し、最新バージョンをインストールのページをご覧ください。

CentOS7になり、標準リポジトリからMySQLはインストールできなくなっています。MySQLのyumリポジトリを利用することで、最新バージョンのMySQLをyumコマンドによりインストールすることができるようになります。

※MySQLをRPMからインストールすることも可能です。詳細は当サイトのCentOS7 64bitにMySQLをRPMからインストールのページをご覧ください。

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

MySQLのリポジトリ設定パッケージをダウンロード

以下のコマンドを実行して、MySQLのリポジトリ設定パッケージのダウンロードを行います。

※ダウンロード元のURLは、MySQLの公式サイトから遷移できるCentOS7用のyumリポジトリのダウンロードページにリンクがあります。

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

$ wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

MySQLのリポジトリのインストール

以下のコマンドを実行して、MySQLのリポジトリ設定パッケージのインストールを行います。

# rpm -Uvh mysql-community-release-el7-5.noarch.rpm

デフォルトの設定では、yumコマンドの実行時にMySQLのいくつかのリポジトリは、自動的に使用されるようになっています。明示的に使用されるようにしたい場合は、インストールされたMySQLのリポジトリの設定ファイル「/etc/yum.repos.d/mysql-community.repo」を以下のように編集します。

[mysql-connectors-community] :(略) enabled=1 ↓変更 enabled=0
[mysql-tools-community] :(略) enabled=1 ↓変更 enabled=0
[mysql56-community] :(略) enabled=1 ↓変更 enabled=0

yumコマンドの実行時にMySQL5.6のリポジトリを使用するには、以下のようにオプション「–enablerepo=mysql56-community」を付けて実行します。

# yum --enablerepo=mysql56-community install mysql-community-server

MySQLのインストール

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

# rm -rf /var/lib/mysql/

以下のコマンドを実行して、MySQL5.6の最新バージョンのインストールを行うことができます。

# yum --enablerepo=mysql56-community install mysql-community-server

尚、MySQLのリポジトリから初めてyumコマンドでパッケージのインストールを行う際には、以下のような警告メッセージが表示されます。

警告: /var/cache/yum/x86_64/7/mysql56-community/packages/mysql-community-common-5.6.26-2.el7.x86_64.rpm: ヘッダー V3 DSA/SHA1 Signature、鍵 ID xxxxxxxx: NOKEY mysql-community-common-5.6.26-2.el7.x86_64.rpm の公開鍵がインストールされていません (1/12): mysql-community-common-5.6.26-2.el7.x86_64.rpm | 256 kB 00:00:00 (2/12): mysql-community-libs-5.6.26-2.el7.x86_64.rpm | 2.0 MB 00:00:00 (3/12): perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm | 32 kB 00:00:00 (4/12): perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm | 57 kB 00:00:00 (5/12): net-tools-2.0-0.17.20131004git.el7.x86_64.rpm | 304 kB 00:00:00 (6/12): perl-Data-Dumper-2.145-3.el7.x86_64.rpm | 47 kB 00:00:00 (7/12): perl-IO-Compress-2.061-2.el7.noarch.rpm | 260 kB 00:00:00 (8/12): perl-Net-Daemon-0.48-5.el7.noarch.rpm | 51 kB 00:00:00 (9/12): perl-DBI-1.627-4.el7.x86_64.rpm | 802 kB 00:00:00 (10/12): perl-PlRPC-0.2020-14.el7.noarch.rpm | 36 kB 00:00:00 (11/12): mysql-community-client-5.6.26-2.el7.x86_64.rpm | 19 MB 00:00:13 (12/12): mysql-community-server-5.6.26-2.el7.x86_64.rpm | 58 MB 00:00:19 ----------------------------------------------------------------------------------------------------------------------------- 合計 3.9 MB/s | 81 MB 00:00:20 file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql から鍵を取得中です。 Importing GPG key 0xXXXXXXXX: Userid : 'MySQL Release Engineering <,mysql-build@oss.oracle.com>,' Fingerprint: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx Package : mysql-community-release-el7-5.noarch (installed) From : file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 上記の処理を行います。よろしいでしょうか? [y/N]

これはyumコマンドでパッケージのインストールを行う際には、GPG署名というものを使用して、パッケージの検証を行うようになっているのですが、その際に必要なキーが存在しないため、インポートしてよいか確認するメッセージになります。

キーのインポートを行うので、「y」を入力します。

尚、インポートされているキーは、以下のコマンドで確認できます。

# rpm -qa gpg-pubkey* gpg-pubkey-xxxxxxxx-xxxxxxxx gpg-pubkey-xxxxxxxx-xxxxxxxx

キーは、CentOSのリポジトリのもの、MySQLのリポジトリのもの等、使用しているリポジトリ別に管理されます。

インストール後の設定

MySQLのサービスを起動

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

# systemctl start mysqld.service

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

# rpm -ql mysql-community-server | grep /usr/lib/systemd/system/ /usr/lib/systemd/system/mysqld.service

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

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

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

# systemctl is-enabled mysqld.service enabled

※自動起動する設定になっている場合は「enabled」、なっていない場合は「disabled」と表示されます。

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

# systemctl enable mysqld.service

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

# systemctl disable mysqld.service

MySQLへの接続

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

# mysql -u root

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>, 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文を使用するようになっていますので、こちらを使用したほうがよいかと思います。

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

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

また、MySQLへの外部からのアクセスは、iptablesによってデフォルトでは拒否されています。CentOS7になってiptablesの設定には、firewalldを使用するようになっています。

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

データベースの作成

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

テーブルの作成

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

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

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

SQLモードについて

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

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

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

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

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

yumリポジトリにMySQLを追加し、最新バージョンをインストールについては、以上です。