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

CentOS7.3 に MySQL5.7 をインストールした時のメモ

More than 3 years have passed since last update.

作業環境

  • CentOS7.3
  • いまmariadb5.5が入っている

注意点

  • 初回起動時にrootの初期パスワードが自動設定される(後述)
  • MySQL 5.7 からユーザーのパスワードの有効期限がデフォルトで360日になったので注意(後述)

参考URL

http://blog.ybbo.net/2016/12/18/install_mysql5-7-by-yum-to-centos7/
https://yoku0825.blogspot.jp/2015/03/mysql-576-mysqlinstalldbmysqld.html
http://weblabo.oscasierra.net/mysql-57-init-setup/

以下、手順

1. mariadb が入っていたら消す

# 確認する
rpm -qa | grep maria
mariadb-libs-5.5.50-1.el7_2.x86_64  ← 入ってるとこんなの出る

# 消す
yum remove mariadb-libs ←関連パッケージまとめて消してくれた
rm -rf /var/lib/mysql/

2. MySQL5.7のインストール

# インストール
yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum install mysql mysql-devel mysql-server mysql-utilities

# 確認
rpm -qa | grep mysql
mysqld --version

3. 初期化

mysqld --user=mysql --initialize
  • mysql_install_db ではなくなった
  • my.cnf に書いてあるdatadirにファイル群が作成される( /var/lib/mysql )
  • datadir自体を削除すれば、初期化をやり直せる( rm -rf /var/lib/mysql/ )

4. 自動起動にする

systemctl enable mysqld.service

5. 起動・終了してみる

systemctl start mysqld.service
systemctl stop mysqld.service
systemctl restart mysqld.service

初期rootパスワードについて

概要

初回起動時にrootの初期パスワードが自動設定される。
ログに出力されるので確認する。

grep password /var/log/mysqld.log

のちほど mysql_secure_installation で変更する。

初期パスワードがわからない、初期パスワードで入れない

※初期パスワードがわからない、初期パスワードで入れない場合は、リセットする
参考URL: http://qiita.com/ksugawara61/items/d8d69b7d57a3afcef980

1. my.cnf の [mysqld]ブロックに skip-grant-tables を追記して、mysqldを再起動

2. rootパスワード変更

mysql -u root
use mysql
UPDATE user SET authentication_string=password('なんかパスワード') WHERE user='root';
flush privileges;

3. my.cnf の [mysqld]ブロックの skip-grant-tables を消して、mysqldを再起動

4. んで、とりあえず入れるようになるが、すぐ変更を求められる

mysql> なんかやろうとすると...
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

5. なので、変更する

mysql> SET PASSWORD = PASSWORD('なんかパスワード');

初期設定

mysql_secure_installation コマンドを実行する

  • rootのパスワード変更
  • anonymous ユーザを削除
  • testデータベースを削除
  • VALIDATE PASSWORD PLUGIN のインストールするか(個人の手元の開発環境ならとりあえず不要)

などを行う

my.cnf に追記

[mysqld]ブロックに以下を追記

character-set-server = utf8
default_password_lifetime = 0
prgseek
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
ユーザーは見つかりませんでした