さくらVPSサーバー初期設定 – MySQL Serverのインストール
参考URL
-
CentOS7.1にMySQL 5.7をインストール – Qiita
データベース(MySQL)をインストールする
MySQLの公式yumリポジトリを追加する
# yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
-
上記URLはMySQL :: Download MySQL Yum Repositoryの以下の場所から遷移したページにある
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;
1. --------------------+
| Database |
1. --------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
1. --------------------+
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-*
<!--more-->
Package Arch Version Repository Size
<!--more-->
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
<!--more-->
Package Arch Version Repository Size
<!--more-->
Removing:
mysql57-community-release noarch el7-11 installed 31 k
- /var/lib にあったmysql関連ディレクトリも削除された。