MySQL
centos7

CentOS7にMySQL8.0をインストール

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は更新されるので、ここらで確認する。

ダウンロードページの

スクリーンショット 2019-02-17 10.43.02.png

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"の箇所。


msyql_secure_installationの実行

パスワードの更新を兼ねてmysql_secure_installationコマンドを実行しておきます。

いろいろ聞かれますが、ガイダンスを読みながら落ち着いて対応します。

msyql_secure_installation


ログインと状態確認

では、変更したパスワードでログインしてみます。

msyql -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いじります。


/etc/my.cnf

[mysqld]

default_authentication_plugin=mysql_native_password


変更反映には再起動が必要です。