Edited at

yum経由のMySQL8.0の初期インストール@CentOS6.x

More than 1 year has passed since last update.

何番煎じかわかりませんが、CentOS6.x上に先日公開されたMySQL8.0をyum経由でインストールできる手順を確かめてみました。細かくて見落としがちな項目も少しありますので、覚書として確認してみては如何でしょうか?


レポジトリのrpmファイルをMySQL communityからインストール

[root@cent6 ~]# rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm


mysql-community.repoの編集(5.7→8.0への変更)


/etc/yum.repos.d/mysql-community.repo


[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
enabled=0 ← 無効にするために"0"に変更
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/
enabled=1 ← 有効にするために"1"に変更
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql



利用可能なパッケージとしての確認

[root@cent6 ~]# yum info mysql-community-server

読み込んだプラグイン:fastestmirror, security

Determining fastest mirrors
mysql-connectors-community | 2.5 kB 00:00
mysql-connectors-community/primary_db | 11 kB 00:00
mysql-tools-community | 2.5 kB 00:00
mysql-tools-community/primary_db | 32 kB 00:00
mysql80-community | 2.5 kB 00:00
mysql80-community/primary_db | 17 kB 00:00
利用可能なパッケージ
名前 : mysql-community-server
アーキテクチャ : x86_64
バージョン : 8.0.0
リリース : 0.1.dmr.el6
容量 : 196 M
リポジトリー : mysql80-community
要約 : A very fast and reliable SQL database server
URL : http://www.mysql.com/
ライセンス : Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Under GPLv2 license
: as shown in the Description field.
説明 : The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
: and robust SQL (Structured Query Language) database server. MySQL Server
: is intended for mission-critical, heavy-load production systems as well
: as for embedding into mass-deployed software. MySQL is a trademark of
: Oracle and/or its affiliates
:
: The MySQL software has Dual Licensing, which means you can use the MySQL
: software free of charge under the GNU General Public License
: (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
: licenses from Oracle and/or its affiliates if you do not wish to be bound by the terms of
: the GPL. See the chapter "Licensing and Support" in the manual for
: further info.
:
: The MySQL web site (http://www.mysql.com/) provides the latest news and
: information about the MySQL software. Also please see the documentation
: and the manual for more information.
:
: This package includes the MySQL server binary as well as related utilities
: to run and administer a MySQL server.


yum経由でのインストール

[root@cent6 ~]# yum install mysql-community-server

読み込んだプラグイン:fastestmirror, security

インストール処理の設定をしています
Loading mirror speeds from cached hostfile
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package mysql-community-server.x86_64 0:8.0.0-0.1.dmr.el6 will be インストール
--> 依存性の処理をしています: mysql-community-common(x86-64) = 8.0.0-0.1.dmr.el6 のパッケージ: mysql-community-server-8.0.0-0.1.dmr.el6.x86_64
--> 依存性の処理をしています: mysql-community-client(x86-64) >= 8.0.0 のパッケージ: mysql-community-server-8.0.0-0.1.dmr.el6.x86_64
--> トランザクションの確認を実行しています。
---> Package mysql-community-client.x86_64 0:8.0.0-0.1.dmr.el6 will be インストール
--> 依存性の処理をしています: mysql-community-libs(x86-64) >= 8.0.0 のパッケージ: mysql-community-client-8.0.0-0.1.dmr.el6.x86_64
---> Package mysql-community-common.x86_64 0:8.0.0-0.1.dmr.el6 will be インストール
--> トランザクションの確認を実行しています。
---> Package mysql-community-libs.x86_64 0:8.0.0-0.1.dmr.el6 will be obsoleting
---> Package mysql-libs.x86_64 0:5.1.73-7.el6 will be 不要
--> 依存性の処理をしています: libmysqlclient.so.16()(64bit) のパッケージ: 2:postfix-2.6.6-6.el6_7.1.x86_64
--> 依存性の処理をしています: libmysqlclient.so.16(libmysqlclient_16)(64bit) のパッケージ: 2:postfix-2.6.6-6.el6_7.1.x86_64
--> トランザクションの確認を実行しています。
---> Package mysql-community-libs-compat.x86_64 0:8.0.0-0.1.dmr.el6 will be obsoleting
--> 依存性解決を終了しました。

依存性を解決しました

========================================================================================================================
パッケージ アーキテクチャ バージョン リポジトリー 容量
========================================================================================================================
インストールしています:
mysql-community-libs x86_64 8.0.0-0.1.dmr.el6 mysql80-community 2.5 M
置き換えています mysql-libs.x86_64 5.1.73-7.el6
mysql-community-libs-compat x86_64 8.0.0-0.1.dmr.el6 mysql80-community 1.8 M
置き換えています mysql-libs.x86_64 5.1.73-7.el6
mysql-community-server x86_64 8.0.0-0.1.dmr.el6 mysql80-community 196 M
依存性関連でのインストールをします。:
mysql-community-client x86_64 8.0.0-0.1.dmr.el6 mysql80-community 27 M
mysql-community-common x86_64 8.0.0-0.1.dmr.el6 mysql80-community 335 k

トランザクションの要約
========================================================================================================================
インストール 5 パッケージ

総ダウンロード容量: 228 M
これでいいですか? [y/N]y


サービスの起動と自動起動設定の実施

[root@cent6 ~]# /etc/rc.d/init.d/mysqld start

MySQL データベースを初期化中: [ OK ]
Installing validate password plugin: [ OK ]
mysqld を起動中: [ OK ]
[root@cent6 ~]# chkconfig mysqld on


rootの初期パスワードの確認

意外とこの確認が抜けている為にrootでMySQLにログイン出来なかったりします。ご注意ください。

[root@cent6 ~]# cat /var/log/mysqld.log | grep 'temporary password'

2016-??-??T??:??:??.?????7Z ? [Note] A temporary password is generated for root@localhost: 'default-pass'

上記の'default-pass'が初期ログインパスワードです。


mysql_secure_installationの実施

セキュアなDB運用の最初の手順として、「rootユーザのパスワード変更」「"anonymous"ユーザの削除」「localhost外からアクセス可能なrootアカウントの削除」「testデータベースの削除」を行っておきましょう。またrootユーザの初期パスワード変更時、'validate_password'プラグインにて、強度の低いパスワードになっていないか、チェックしてくれる様です。

[root@cent6 ~]# mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:

The existing password for the user account root has expired. Please set a new password.

New password:

Re-enter new password:
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

New password:

Re-enter new password:

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.

- Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!


my.cnfの編集(やや重要)

サービス稼働時のデータベースにログインできなくなる"突然死"を防止の為です。パスワードの有効期限を無効にする為に「default_password_lifetime」の値を0に設定する事で問題回避を行います。

これはMySQL5.7以降で初期パラメータとして注意すべき問題となっている(2016年現時点で)ので、確認しておきましょう。


/etc/my.cnf

[mysqld]

default_password_lifetime = 0

(追記)

この値は2016/1/13の5.7.11から初期値としても0となっている様です。

http://www.slideshare.net/yoku0825/mysql-57449062

詳細は参照の程。

MySQLを再起動して設定の適用を行いましょう



[root@cent6 ~]# /etc/rc.d/init.d/mysqld restart



以上です。

また、my.cnfの設定変更は、初回の「/etc/rc.d/init.d/mysqld start」実行前に「my.cnf」にて適切に設定しましょう。

それでは良いMySQL運用ライフを!