前提
- ローカルの仮想開発環境なので、mysqlのrootパスワードのセキュリティは最低に下げる。
- sudoは使っていません。rootで直接作業しています。
パスワードポリシーを最低にする。急いでいる人用
下記を/etc/my.cnfに追記してmysqlを再起動する。
validate_password.policy=LOW
validate_password.length=4
mysqlにrootでログイン後、下記コマンドでパスワード'1234'に設定可能です。
mysql> alter user 'root'@'localhost' identified by '1234';
Query OK, 0 rows affected (0.01 sec)
mysql> \q
Bye
インストールから順に実行
OSバージョン確認
# cat /etc/redhat-release
AlmaLinux release 9.4 (Seafoam Ocelot)
公式リポジトリを登録
# curl -OL https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm
# rpm -ivh mysql84-community-release-el9-1.noarch.rpm
warning: mysql84-community-release-el9-1.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID a8d3785c: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:mysql84-community-release-el9-1 ################################# [100%]
※ ダウンロードリンクは https://dev.mysql.com/downloads/repo/yum/で確認。
dnfでmysqlをインストール。
# dnf install mysql mysql-community-server
Last metadata expiration check: 0:01:43 ago on Mon Nov 18 15:57:24 2024.
Dependencies resolved.
========================================================================================================================
Package Architecture Version Repository Size
========================================================================================================================
Installing:
mysql-community-server aarch64 8.4.3-1.el9 mysql-8.4-lts-community 49 M
(中略)
mysql-community-server-8.4.3-1.el9.aarch64 net-tools-2.0-0.62.20160912git.el9.aarch64
Complete!
一度mysqlを開始しておく。
# systemctl start mysqld
サーバー起動時にmysqlも自動起動させるなら、enableも設定する。
# systemctl enable mysqld
my.cnf編集前に一度停止する。
# systemctl stop mysqld
my.cnfを編集する。
# vi /etc/my.cnf
下記をmy.cnfに追加して保存する。
validate_password.policy=LOW
validate_password.length=4
mysqlを起動する。
# systemctl start mysqld
初回の起動時に設定されたパスワードを確認する。
# cat /var/log/mysqld.log | grep password
2024-11-18T06:59:18.309994Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 「自動設定されたパスワード」
mysqlにログインする。
# mysql -uroot -p
Enter password: 「自動設定されたパスワード」を入力
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.4.3
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
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>
rootパスワードを'1234'で設定し、エラーが無ければ一度ログアウトする。
mysql> alter user 'root'@'localhost' identified by '1234';
Query OK, 0 rows affected (0.01 sec)
mysql> \q
Bye
rootパスワード'1234'でログインできることを確認する。
# mysql -uroot -p1234
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.4.3 MySQL Community Server - GPL
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
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>
警告に出てる通り、本番環境等で稼働しているサーバーでコマンドにパスワードを記載するのは避けるべきです
設定されているパスワードポリシーの確認は下記のコマンドで可能です。
mysql> show variables like 'validate_password%';
+-------------------------------------------------+-------+
| Variable_name | Value |
+-------------------------------------------------+-------+
| validate_password.changed_characters_percentage | 0 |
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 4 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | LOW |
| validate_password.special_char_count | 1 |
+-------------------------------------------------+-------+
8 rows in set (0.01 sec)
コメント