LoginSignup
32

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-02-17

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

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

/etc/my.cnf
[mysqld]
default_authentication_plugin=mysql_native_password

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32