さくらVPSサーバー初期設定 – MySQL Serverのインストール

参考URL

データベース(MySQL)をインストールする

MySQLの公式yumリポジトリを追加する
# yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

MySQLの公式yumリポジトリが記述してある場所の説明画像

MySQL Community Server をインストールする
  • インストール可能なパッケージかどうか情報を確認
# yum info mysql-community-server
(略)
Available Packages
Name        : mysql-community-server
Arch        : x86_64
Version     : 5.7.20
Release     : 1.el7
Size        : 164 M
Repo        : mysql57-community/x86_64
Summary     : A very fast and reliable SQL database server
URL         : http://www.mysql.com/
(略)
  • yum listでもヒットする
# yum list available | grep mysql-community-server
mysql-community-server.x86_64            5.7.20-1.el7                    mysql57-community
  • yum install で mysql-community-server をインストール
# yum -y install mysql-community-server
Options:
  -y, --assumeyes       answer yes for all questions

MySQL Serverのバージョンを確認する

# mysqld --version
mysqld  Ver 5.7.20 for Linux on x86_64 (MySQL Community Server (GPL))

MySQL Serverを起動する

  • Apacheと同じコマンド。
# systemctl start mysqld.service

サーバー起動時にMySQL Serverも起動するようにする

  • Apacheでやったのと同じコマンド。
# systemctl enable mysqld.service
  • リストで確認
    • enabledになっていればOK
# systemctl list-unit-files -t service | grep mysqld.service
mysqld.service                                enabled

MySQLのセキュリティ設定を行う

初回起動時に生成される初期パスワードをログファイルから確認する
# cat /var/log/mysqld.log | grep 'temporary password'
2017-11-04T13:43:42.769281Z 1 [Note] A temporary password is generated for root@localhost: {初期パスワード}
mysql_secure_installationを実行
# 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! 
設定したパスワードでMySQLにrootでログイン
# mysql -u root -p
Enter password: {パスワードを入力}
  • 成功すると下記が表示される
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 8
Server version: 5.7.20 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
  • ためしにコマンド打ってみる
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
  • 出るときはexit
mysql> exit
Bye

補足:default_password_lifetimeについて

  • 参考にしたエントリーには「パスワードの有効期限を0にしておく」=「/etc/my.cnf に default_password_lifetime = 0 を追記する」旨が書かれていたが、バージョン5.7.11からは0がデフォルトになってるらしい。
    • インストールしたバージョンは5.7.20なので、なにもせず。

>https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_default_password_lifetime:title=MySQL :: MySQL 5.7 Reference Manual :: 5.1.5 Server System Variables>

The default default_password_lifetime value is 0, which disables automatic password expiration.

<<

追記:MySQL Serverをアンインストールする

  • mysql関係のパッケージを確認
# yum list installed | grep mysql
  • 表示されたものを削除していく。
    • 依存性のある下記パッケージも削除された。
      • fail2ban
      • fail2ban-sendmail
      • postfix
# yum erase mysql-community-*
<a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a>=
 Package                            Arch          Version                 Repository                 Size
<a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a>=
Removing:
 mysql-community-client             x86_64        5.7.20-1.el7            @mysql57-community        106 M
 mysql-community-common             x86_64        5.7.20-1.el7            @mysql57-community        2.5 M
 mysql-community-libs               x86_64        5.7.20-1.el7            @mysql57-community        9.4 M
 mysql-community-libs-compat        x86_64        5.7.20-1.el7            @mysql57-community        9.2 M
 mysql-community-server             x86_64        5.7.20-1.el7            @mysql57-community        738 M
Removing for dependencies:
 fail2ban                           noarch        0.9.7-1.el7             @epel                     0.0  
 fail2ban-sendmail                  noarch        0.9.7-1.el7             @epel                      11 k
 postfix                            x86_64        2:2.10.1-6.el7          @base                      12 M
# yum erase mysql57-community-release
<a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a>=
 Package                               Arch               Version             Repository             Size
<a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a><a name="=" id="="></a>=
Removing:
 mysql57-community-release             noarch             el7-11              installed              31 k
  • /var/lib にあったmysql関連ディレクトリも削除された。