🐙

Ubuntu23.10にMySQLサーバを構築しようとしたらrootパスワードを聞かれずに焦った

2024/08/20に公開

概要

データベースサーバを構築する必要があり、久しぶりにMySQLサーバの構築をしてみました。
インストール中にrootパスワードの設定がなかったので焦りましたが、あとからrootパスワードの設定ができたので、記録に残しておきたいと思います。

環境

  • サーバ
    • 筐体: Raspberry Pi4
    • OS: Ubuntu 23.10
  • 作業
    • Macからssh接続

インストール

公式の手順に従ってインストールします。

https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/

$ sudo apt update
$ sudo apt install mysql-server

インストールの途中でrootパスワードを設定するらしいのですが、何も聞かれずにインストールが完了してしまいました。

rootパスワードの設定

エラーログを見てみると、--initialize-insecureオプションがついていたので空のパスワードを設定してくれたらしいです。

$ sudo less /var/log/mysql/error.log
2024-08-20T01:14:06.566377Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.37-0ubuntu0.23.10.2) initializing of ser
ver in progress as process 2498703
2024-08-20T01:14:06.650588Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-08-20T01:14:13.120195Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-08-20T01:14:23.106006Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider s
witching off the --initialize-insecure option.
...(省略)...

--initialize-insecureオプションについてググってみると、初期化後のrootパスワードの割当てについての手順がありましたので、これに従って設定してみたいと思います。

https://dev.mysql.com/doc/refman/8.0/ja/data-directory-initialization.html#data-directory-initialization-password-assignment

まずは、パスワードなしでログイン

$ sudo mysql -u root --skip-password

できました。

rootパスワードの設定

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
Query OK, 0 rows affected (0.01 sec)

できました。

動作確認

設定したrootパスワードでログインできました。

$ sudo mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.37-0ubuntu0.23.10.2 (Ubuntu)

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>

Discussion