Help us understand the problem. What is going on with this article?

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

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

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

zaburo
こんにちは。自分用のメモをだらだら公開しています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした