はじめに
スマホをiphoneからandroidに変えたらまずUserLAndを入れてLinuxで遊びたい。
という思いがあったものの、何して遊ぼうか思いつかないので取り敢えずMySQLを入れた。
起動・ログインまでスラスラとはいかなかったので、MySQLにログインするまでの手順を記録しておきます。
UserLAndで使用するLinux
UserLAndで使用できるDistributionはArpine,Arch, Deboan, Kali, Ubuntuとありますが、
今回はUbuntuを選びました。インストールされたバージョンは22.04でした。
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
~~ 以下略 ~~
MySQLインストール
以下のコマンドでMySQLをインストールします。
$ sudo apt update
$ sudo apt install mysql-server -y
MySQL起動
インストールしたばかりで、なんらかのmysqlコマンドを打つとまず以下のエラーが出ます。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
mysqld.sockを通してローカルサーバーに繋げたいけどできないようです。
エラーで表示されているパスにmysqld.sockファイルが無いので作成します。
$ touch /var/run/mysqld/mysqld.sock
MySQLを再起動します。
$ sudo service mysql restart
再起動する時に以下の警告が出るようです。
su: warning: cannot change directory to /nonexistent: No such file or directory
mysqlユーザーのホームディレクトリが存在しないということなので、設定します。
$ sudo usermod -d /var/lib/mysql mysql
この状態で再起動すると警告は出なくなりました。
$ sudo service mysql restart
* Stopping MySQL database server mysqld [ OK ]
* Starting MySQL database server mysqld [ OK ]
rootでログイン
以下のコマンドでパスワードを確認しようとするもパスワードは設定されていないようです。
$ cat /var/log/mysql/error.log | grep password
2023-04-01T05:20:32.183269Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
--initialize-insecure option.
とあるのでmysqldコマンドにつけて実行し、パスワード無しのrootログインを試みますができないようです。
$ mysqld --initialize-insecure --user=mysql
$ sudo service mysql restart
$ mysql -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
sudo mysql
ではログインできます。
$ sudo mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.32-0ubuntu0.22.04.2 (Ubuntu)
Copyright (c) 2000, 2023, 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パスワード設定や各種初期設定などを進めていくことができます。