VAIO Type-Pに自宅でUbuntu17 Server環境を構築する MySQLインストール編

MySQLをインストールする

前回までに、VAIO Type-Pに対して、17、Apache2とPHPをインストールしてきました。今回はmysalをインストールします。

VAIO Type-Pに自宅でUbuntu17 Server環境を構築する インストール編

VAIO Type-Pに自宅でUbuntu17 Server環境を構築する apache2インストール編

MySQLのインストール

$ sudo apt-get install mysql-server

実際の操作サンプル

[ubuntu@ubuntu17-server-100:~$ sudo apt-get install mysql-server
[sudo] ubuntu のパスワード: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  libaio1 libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.0-5 libfcgi-perl
  libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl
  libhttp-message-perl libio-html-perl liblwp-mediatypes-perl libtimedate-perl liburi-perl
  mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server-5.7 mysql-server-core-5.7
提案パッケージ:
  libdata-dump-perl libipc-sharedcache-perl libwww-perl mailx tinyca
以下のパッケージが新たにインストールされます:
  libaio1 libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.0-5 libfcgi-perl
  libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl
  libhttp-message-perl libio-html-perl liblwp-mediatypes-perl libtimedate-perl liburi-perl
  mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server mysql-server-5.7
  mysql-server-core-5.7
アップグレード: 0 個、新規インストール: 21 個、削除: 0 個、保留: 4 個。
21.6 MB のアーカイブを取得する必要があります。
この操作後に追加で 159 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 mysql-common all 5.8+1.0.2ubuntu1 [5,782 B]
取得:2 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 libaio1 i386 0.3.110-3 [6,686 B]
取得:3 http://jp.archive.ubuntu.com/ubuntu zesty-updates/main i386 mysql-client-core-5.7 i386 5.7.20-0ubuntu0.17.04.1 [7,192 kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu zesty-updates/main i386 mysql-client-5.7 i386 5.7.20-0ubuntu0.17.04.1 [2,481 kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu zesty-updates/main i386 mysql-server-core-5.7 i386 5.7.20-0ubuntu0.17.04.1 [7,924 kB]
取得:6 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 libevent-core-2.0-5 i386 2.0.21-stable-3 [76.1 kB]
取得:7 http://jp.archive.ubuntu.com/ubuntu zesty-updates/main i386 mysql-server-5.7 i386 5.7.20-0ubuntu0.17.04.1 [3,261 kB]
取得:8 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 libhtml-tagset-perl all 3.20-3 [12.1 kB]
取得:9 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 liburi-perl all 1.71-1 [76.9 kB]
取得:10 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 libhtml-parser-perl i386 3.72-3 [86.8 kB]
取得:11 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 libcgi-pm-perl all 4.35-1 [185 kB]
取得:12 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 libfcgi-perl i386 0.78-2 [34.4 kB]
取得:13 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 libcgi-fast-perl all 1:2.12-1 [9,754 B]
取得:14 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 libencode-locale-perl all 1.05-1 [12.3 kB]
取得:15 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 libhtml-template-perl all 2.95-2 [60.4 kB]
取得:16 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 libtimedate-perl all 2.3000-2 [37.5 kB]
取得:17 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 libhttp-date-perl all 6.02-1 [10.4 kB]
取得:18 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 libio-html-perl all 1.001-1 [14.9 kB]
取得:19 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 liblwp-mediatypes-perl all 6.02-1 [21.7 kB]
取得:20 http://jp.archive.ubuntu.com/ubuntu zesty/main i386 libhttp-message-perl all 6.11-1 [74.3 kB]
取得:21 http://jp.archive.ubuntu.com/ubuntu zesty-updates/main i386 mysql-server all 5.7.20-0ubuntu0.17.04.1 [10.2 kB]
21.6 MB を 2秒 で取得しました (10.1 MB/s) 
パッケージを事前設定しています ...
以前に未選択のパッケージ mysql-common を選択しています。
(データベースを読み込んでいます ... 現在 97799 個のファイルとディレクトリがインストールされています。)
.../0-mysql-common_5.8+1.0.2ubuntu1_all.deb を展開する準備をしています ...
mysql-common (5.8+1.0.2ubuntu1) を展開しています...
以前に未選択のパッケージ libaio1:i386 を選択しています。
.../1-libaio1_0.3.110-3_i386.deb を展開する準備をしています ...
libaio1:i386 (0.3.110-3) を展開しています...
以前に未選択のパッケージ mysql-client-core-5.7 を選択しています。
.../2-mysql-client-core-5.7_5.7.20-0ubuntu0.17.04.1_i386.deb を展開する準備をしています ...
mysql-client-core-5.7 (5.7.20-0ubuntu0.17.04.1) を展開しています...
以前に未選択のパッケージ mysql-client-5.7 を選択しています。
.../3-mysql-client-5.7_5.7.20-0ubuntu0.17.04.1_i386.deb を展開する準備をしています ...
mysql-client-5.7 (5.7.20-0ubuntu0.17.04.1) を展開しています...
以前に未選択のパッケージ mysql-server-core-5.7 を選択しています。
.../4-mysql-server-core-5.7_5.7.20-0ubuntu0.17.04.1_i386.deb を展開する準備をしています ...
mysql-server-core-5.7 (5.7.20-0ubuntu0.17.04.1) を展開しています...
以前に未選択のパッケージ libevent-core-2.0-5:i386 を選択しています。
.../5-libevent-core-2.0-5_2.0.21-stable-3_i386.deb を展開する準備をしています ...
libevent-core-2.0-5:i386 (2.0.21-stable-3) を展開しています...
mysql-common (5.8+1.0.2ubuntu1) を設定しています ...
update-alternatives: /etc/mysql/my.cnf (my.cnf) を提供するために自動モードで /etc/mysql/my.cnf.fallback を使います
以前に未選択のパッケージ mysql-server-5.7 を選択しています。
(データベースを読み込んでいます ... 現在 97966 個のファイルとディレクトリがインストールされています。)
.../00-mysql-server-5.7_5.7.20-0ubuntu0.17.04.1_i386.deb を展開する準備をしています ...
mysql-server-5.7 (5.7.20-0ubuntu0.17.04.1) を展開しています...
以前に未選択のパッケージ libhtml-tagset-perl を選択しています。
.../01-libhtml-tagset-perl_3.20-3_all.deb を展開する準備をしています ...
libhtml-tagset-perl (3.20-3) を展開しています...
以前に未選択のパッケージ liburi-perl を選択しています。
.../02-liburi-perl_1.71-1_all.deb を展開する準備をしています ...
liburi-perl (1.71-1) を展開しています...
以前に未選択のパッケージ libhtml-parser-perl を選択しています。
.../03-libhtml-parser-perl_3.72-3_i386.deb を展開する準備をしています ...
libhtml-parser-perl (3.72-3) を展開しています...
以前に未選択のパッケージ libcgi-pm-perl を選択しています。
.../04-libcgi-pm-perl_4.35-1_all.deb を展開する準備をしています ...
libcgi-pm-perl (4.35-1) を展開しています...
以前に未選択のパッケージ libfcgi-perl を選択しています。
.../05-libfcgi-perl_0.78-2_i386.deb を展開する準備をしています ...
libfcgi-perl (0.78-2) を展開しています...
以前に未選択のパッケージ libcgi-fast-perl を選択しています。
.../06-libcgi-fast-perl_1%3a2.12-1_all.deb を展開する準備をしています ...
libcgi-fast-perl (1:2.12-1) を展開しています...
以前に未選択のパッケージ libencode-locale-perl を選択しています。
.../07-libencode-locale-perl_1.05-1_all.deb を展開する準備をしています ...
libencode-locale-perl (1.05-1) を展開しています...
以前に未選択のパッケージ libhtml-template-perl を選択しています。
.../08-libhtml-template-perl_2.95-2_all.deb を展開する準備をしています ...
libhtml-template-perl (2.95-2) を展開しています...
以前に未選択のパッケージ libtimedate-perl を選択しています。
.../09-libtimedate-perl_2.3000-2_all.deb を展開する準備をしています ...
libtimedate-perl (2.3000-2) を展開しています...
以前に未選択のパッケージ libhttp-date-perl を選択しています。
.../10-libhttp-date-perl_6.02-1_all.deb を展開する準備をしています ...
libhttp-date-perl (6.02-1) を展開しています...
以前に未選択のパッケージ libio-html-perl を選択しています。
.../11-libio-html-perl_1.001-1_all.deb を展開する準備をしています ...
libio-html-perl (1.001-1) を展開しています...
以前に未選択のパッケージ liblwp-mediatypes-perl を選択しています。
.../12-liblwp-mediatypes-perl_6.02-1_all.deb を展開する準備をしています ...
liblwp-mediatypes-perl (6.02-1) を展開しています...
以前に未選択のパッケージ libhttp-message-perl を選択しています。
.../13-libhttp-message-perl_6.11-1_all.deb を展開する準備をしています ...
libhttp-message-perl (6.11-1) を展開しています...
以前に未選択のパッケージ mysql-server を選択しています。
.../14-mysql-server_5.7.20-0ubuntu0.17.04.1_all.deb を展開する準備をしています ...
mysql-server (5.7.20-0ubuntu0.17.04.1) を展開しています...
libhtml-tagset-perl (3.20-3) を設定しています ...
ureadahead (0.100.0-19) のトリガを処理しています ...
ureadahead will be reprofiled on next reboot
libencode-locale-perl (1.05-1) を設定しています ...
libtimedate-perl (2.3000-2) を設定しています ...
libio-html-perl (1.001-1) を設定しています ...
liblwp-mediatypes-perl (6.02-1) を設定しています ...
libc-bin (2.24-9ubuntu2.2) のトリガを処理しています ...
libaio1:i386 (0.3.110-3) を設定しています ...
liburi-perl (1.71-1) を設定しています ...
libevent-core-2.0-5:i386 (2.0.21-stable-3) を設定しています ...
systemd (232-21ubuntu7.1) のトリガを処理しています ...
libhtml-parser-perl (3.72-3) を設定しています ...
libcgi-pm-perl (4.35-1) を設定しています ...
man-db (2.7.6.1-2) のトリガを処理しています ...
mysql-client-core-5.7 (5.7.20-0ubuntu0.17.04.1) を設定しています ...
libfcgi-perl (0.78-2) を設定しています ...
libhttp-date-perl (6.02-1) を設定しています ...
libhtml-template-perl (2.95-2) を設定しています ...
mysql-server-core-5.7 (5.7.20-0ubuntu0.17.04.1) を設定しています ...
libcgi-fast-perl (1:2.12-1) を設定しています ...
libhttp-message-perl (6.11-1) を設定しています ...
mysql-client-5.7 (5.7.20-0ubuntu0.17.04.1) を設定しています ...
mysql-server-5.7 (5.7.20-0ubuntu0.17.04.1) を設定しています ...
update-alternatives: /etc/mysql/my.cnf (my.cnf) を提供するために自動モードで /etc/mysql/mysql.cnf を使います
Renaming removed key_buffer and myisam-recover options (if present)
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.
mysql-server (5.7.20-0ubuntu0.17.04.1) を設定しています ...
libc-bin (2.24-9ubuntu2.2) のトリガを処理しています ...
systemd (232-21ubuntu7.1) のトリガを処理しています ...
ureadahead (0.100.0-19) のトリガを処理しています ...
ubuntu@ubuntu17-server-100:~$ sudo mysql --version
mysql  Ver 14.14 Distrib 5.7.20, for  (i686) using  EditLine wrapper

途中でMySQLのrootアカウント用パスワード設定が表示されます(以前はなかったと思うので追加されたのでしょうか)
パスワードを入力してインストールを進めました。

MySQLの初期設定

mysql_secure_installationではMySQL5.7以降でVALIDATE PASSWORD pluginという機能が追加されています。このプラグインでは、パスワードの強化をしているもので、設定するパスワードにパスワード文字の制限が掛けられます。

$ sudo mysql_secure_installation

実際の操作サンプル

ubuntu@ubuntu17-server-100:~$ sudo mysql_secure_installation
[sudo] ubuntu のパスワード:

Securing the MySQL server deployment.

Enter password for user root: MySQLのインストール中に設定したrootパスワードを入力

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: y VALIDATE PASSWORD pluginを使用するかの設定

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Using existing password for root.

Estimated strength of the password: 50
Change the password for root ? ((Press y|Y for Yes, any other key for No) :
今回は新たにrootパスワードを設定しないのでSkipしています。
 ... skipping.
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!
ubuntu@ubuntu17-server-100:~$

MySQLにログインできることを確認

$ mysql -u root -p

実際の操作サンプル

ubuntu@ubuntu17-server-100:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.20-0ubuntu0.17.04.1 (Ubuntu)

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>

データベースを作成

この環境には将来的にWordPressをインストールしたいと考えているので、Wordpress用のデータベースを作成しておきます。WordPressをインストールする場合、実際には、この時点で作成する必要はありません。
今回はデータベース作成のサンプルにwordpressというデータベースを作るとお考えください。

データベースを作成する

mysql> CREATE DATABASE wordpress

実際の操作サンプル
ここではwordpressというデータベースをutf8を使用するように作成しています。(のハズ)

mysql> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Query OK, 1 row affected (0.00 sec)

データベースが作成されているかを確認します。

mysql> show databases;

実際の操作サンプル

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wordpress          |
+--------------------+
5 rows in set (0.01 sec)

mysql>

ユーザを作成する

ユーザを作成して、wordpressデータベースに対しての権限を与えます。
USERNAMEとPASSWORDは、自分のサイトに合わせて変更してください。また、PASSWORDは、mysql_secure_installationで設定したパスワードポリシーに合わせる必要があります。

mysql> create user USERNAME identified by 'PASSWORD';
mysql> grant all on wordpress.* to USERNAME;
mysql> create user USERNAME identified by 'PASSWORD';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on wordpress.* to USERNAME;
Query OK, 0 rows affected (0.00 sec)

mysql> select Host, User from mysql.user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| %         | USERNAME         |
| localhost | debian-sys-maint |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
5 rows in set (0.00 sec)

mysql> show grants for USERNAME;
+---------------------------------------------------------+
| Grants for USERNAE@%                                   |
+---------------------------------------------------------+
| GRANT USAGE ON *.* TO 'USERNAME'@'%'                    |
| GRANT ALL PRIVILEGES ON `wordpress`.* TO 'USERNAME'@'%' |
+---------------------------------------------------------+
2 rows in set (0.00 sec)

関連記事

VAIO Type-Pに自宅でUbuntu17 Server環境を構築する インストール編

VAIO Type-Pに自宅でUbuntu17 Server環境を構築する apache2インストール編