はじめに
こちらではMySQLの構築について紹介させていただきます。
まぁどこにでもある普通の内容でQiita使ってる皆様には食傷気味かもしれませんが。なるべくわかりやすくを心掛けて書いていきたいと思います。
環境
手順
不要なものを削除(入っていれば)
まず最初にCentOS7にはMariaDBがデフォルトで入っているらしいのでそれを確認(残っていると競合してしまいインストールできないらしい)
$ yum list installed | grep maria
ある場合は削除します。
$ sudo yum remove -y mariadb-libs.x86_64
データディレクトリも削除(ある場合)
$ rm -rf /var/lib/mysql/
MySQL導入
まずMySQLがあるかどうか調べます。
$ yum list | grep mysql
akonadi-mysql.x86_64 1.9.2-4.el7 base
apr-util-mysql.x86_64 1.5.2-6.el7 base
dovecot-mysql.x86_64 1:2.2.36-3.el7_7.1 updates
freeradius-mysql.x86_64 3.0.13-10.el7_6 base
libdbi-dbd-mysql.x86_64 0.8.3-16.el7 base
mysql-connector-java.noarch 1:5.1.25-3.el7 base
mysql-connector-odbc.x86_64 5.2.5-8.el7 base
pcp-pmda-mysql.x86_64 4.3.2-5.el7_7 updates
php-mysql.x86_64 5.4.16-46.1.el7_7 updates
php-mysqlnd.x86_64 5.4.16-46.1.el7_7 updates
qt-mysql.i686 1:4.8.7-3.el7_6 base
qt-mysql.x86_64 1:4.8.7-3.el7_6 base
qt5-qtbase-mysql.i686 5.9.7-2.el7 base
qt5-qtbase-mysql.x86_64 5.9.7-2.el7 base
redland-mysql.x86_64 1.0.16-6.el7 base
rsyslog-mysql.x86_64 8.24.0-41.el7_7.4 updates
MySQLサーバをインストールしたいですがないようです。
CentOS7には公式のyumリポジトリにはないようなので公式からrpmファイルをインストールすることになります。
SQL公式からインストールのやり方を書いてくださっているのでそちらを参考に構築していきます。
$ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
正常にインストールできているか確認
$ yum repolist enabled | grep "mysql.*-community.*"
インストール
$ sudo yum install mysql-community-server
バージョンの確認
$ mysql --version
mysql Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)
起動
$ sudo service mysqld start
起動確認
$ sudo service mysqld status
active (running)
と表示されていたら起動されています。
設定
この状態だとOS起動する度にSQLを起動しなおさないといけないので
自動起動するように設定します。
$ systemctl start mysqld
再起動して確認してみましょう。
起動していたら成功です。
続いてパスワードの設定
初期パスワードはmysqld.logのなかに書かれています。
確認
$ sudo cat /var/log/mysqld.log | grep root
2020-04-09T01:15:32.727302Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: [初期パスワード]
起動してログイン
$ mysql -u root -p
Enter password:[初期パスワードを入力]
パスワードの変更
方法はいくつかありますが公式のセキュリティ改善で紹介されているのでこちらで紹介いたします
$ sudo mysql_secure_installation
最初にパスワードを聞かれるので初期パスワードを入力して新しいパスワードを入力してください
$ mysql -u root -p
Enter password:[新しく設定したパスワードを入力]
ログインできたら成功です。
パスワードポリシー
新しいパスワードを設定する際にパスワードポリシーを知る必要があります。
こちらではMySQLに保存されているパスワードポリシーを確認してみましょう。
公式にやり方が載っているので参考に
mysql> SHOW VARIABLES LIKE 'validate_password.%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
参考程度に一例
mysql> set global validate_password.length=9;
確認
mysql> SHOW VARIABLES LIKE 'validate_password.%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 9 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
変わったのがわかると思います。
試しに新しく作ってみましょう
mysql> create user 'user@localhost' identified by '<?lz*V6?';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
8文字でエラーが出ているのがわかると思います。
まとめ
いかがだったでしょうか今回はCentOSでMySQLのインストールとパスワードの初期設定について紹介いたしました。
参考になれば幸いです。