CentOS7にMySQLをインストールする方法。
操作はrootかsudoでの実行を想定。
準備
まず、CentOS7からはMySQLではなく、互換サーバのMariaDB押しになっているので、その関連ファイルを削除します。
MariaDB関連ライブラリの確認と削除
まあ、存在を確認しなくてもそのまま消せばよいか、念の為。
rpm -qa | grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
yum remove mariadb-libs
rm -rf /var/lib/mysql/
インストール
続けてインストール。
リポジトリのインストール
標準のリポジトリには含まれないのでMySQLのリポジトリを追加する。
なお、リポジトリのURLは更新されるので、ここらで確認する。
ダウンロードページの
No Thanks, ~のリンク先をコピーするとよい。
rpmコマンドを利用してリポジトリをインストールする(なお、yum localinstallコマンドも利用できるはずだが、上手くインストールされなかっった)。
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
yum localinstallを利用するとrpmを直接インストールできる。rpmはCentOSのベースとなるRedHat Linux系で利用され,yumの登場以前によく利用されていたPackageManagerのこと。
リポジトリの確認
インストールされたリポジトリと有効・無効の状態を確認してみます。
リポジトリをインストールすると、8.0含め、複数のバージョンのインストールに対応したリポジトリが設定されます。
yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community 無効
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - So 無効
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community 無効
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - So 無効
mysql-connectors-community/x86_64 MySQL Connectors Community 有効: 95
mysql-connectors-community-source MySQL Connectors Community - Sou 無効
mysql-tools-community/x86_64 MySQL Tools Community 有効: 84
mysql-tools-community-source MySQL Tools Community - Source 無効
mysql-tools-preview/x86_64 MySQL Tools Preview 無効
mysql-tools-preview-source MySQL Tools Preview - Source 無効
mysql55-community/x86_64 MySQL 5.5 Community Server 無効
mysql55-community-source MySQL 5.5 Community Server - Sou 無効
mysql56-community/x86_64 MySQL 5.6 Community Server 無効
mysql56-community-source MySQL 5.6 Community Server - Sou 無効
mysql57-community/x86_64 MySQL 5.7 Community Server 無効
mysql57-community-source MySQL 5.7 Community Server - Sou 無効
mysql80-community/x86_64 MySQL 8.0 Community Server 有効: 82
mysql80-community-source MySQL 8.0 Community Server - Sou 無効
mysql80-community/x86_64 MySQL 8.0 Community Server
とあるので、標準では8.0がインストールされる(なお、設定により5.5,5.6,5.7もインストールできることが見て取れる)。
5.7とかが利用したければ/etc/yum.repo.d内のファイルを編集するなどして対応する。
インストール
ではインストールします。
yum install mysql-community-server
これでインストール自体は終了。
設定
起動
まずは起動してみます。
systemctl start mysqld.service
永続化
続いて永続化。
systemctl enable mysqld.service
パスワードの確認
インストール時にrootのパスワードがlogに吐かれているのでgrepして確認します。
grep password /var/log/mysqld.log
2019-02-17T01:49:46.433912Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: V9djjjWFd_wf
パスワードをメモしておきます。ここでは"V9djjjWFd_wf"の箇所。
mysql_secure_installationの実行
パスワードの更新を兼ねてmysql_secure_installationコマンドを実行しておきます。
いろいろ聞かれますが、ガイダンスを読みながら落ち着いて対応します。
mysql_secure_installation
ログインと状態確認
では、変更したパスワードでログインしてみます。
mysql -u root -p
statusコマンドで状況を確認しておきます。
mysql>status
--------------
mysql Ver 8.0.15 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id: 13
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.0.15 MySQL Community Server - GPL
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 4 min 46 sec
Threads: 2 Questions: 17 Slow queries: 0 Opens: 124 Flush tables: 2 Open tables: 100 Queries per second avg: 0.059
--------------
標準の文字コードが(utf8から)utf8mb4になっています。
その他
認証方式の変更
標準の認証方式がcaching_sha2_passwordというものに変更されており、開発言語側のMySQLドライバからアクセスできない場合があります。その場合は認証方式を従来のmysql_native_passwordに変更します。
既に登録済みのユーザー
root等、既存の登録済みユーザーはalterで行います。
まずは、現状の確認。
mysql>select user, plugin from mysql.user;
変更。
mysql>alter user 'root'@'localhost' identified with mysql_native_password by 'P@ssw0rd!!';
恒久的変更
my.cnfいじります。
[mysqld]
default_authentication_plugin=mysql_native_password
変更反映には再起動が必要です。