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を追加し、最新バージョンをインストールについては、以上です。