環境
Ubuntu 22.04.3 LTS \n \l
現象
ubuntuでmysqlにログインできない。
状態は起動中になっている。
$ sudo systemctl status mysql.service
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: activating (start) since ~
:
エラーログを見ると、以下のエラーが存在している。
$ vi /var/log/mysql/error.log
Do you already have another mysqld server running on port: 3306 ? # 抜粋
原因
「マシンのIPアドレス」と「cnfファイルのbind-addressのIPアドレス」が異なっている。
経過
netstat -aon | grep 3306
や
sudo lsof -i :3306
を実行しても、何も表示されない。
ネットの情報を参考に、cnfファイルを確認してみる。
/etc/mysql/mysql.conf.d/mysqld.cnfで設定していたので、
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
<略>
bind-address = xxx.xxx.xx.xx
mysqlx-bind-address = xxx.xxx.xx.xx
# xxx.xxx.xx.xxをマシンのipアドレスに変更する
上書き保存して閉じる。
特に何もしなくとも、mysqlは起動して
$ sudo systemctl status mysql.service
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since ~
/var/log/mysql/error.logもプロセスに表示されなくなった。
感想
エラーログを見てもネットで調べても、3306ポートが既に使われているのが原因としか思えず、
netstatやlsofで引っかからないので、困りました。
cnfファイルの解決法を共有してくださった方が居て感謝です。
私の場合、停電があったのが原因でipアドレスが変更されたようです。
mysqlに関係するであろうcnfファイルはいくつかありますが、どれかを編集しているかと思います。
/etc/my.cnfとか/etc/mysql/my.cnfとか。
参考
https://www.anagix.com/gijutsu-memo/alb/mysqlgaqidongshinaitoraburu
https://nanaco-programming.hatenablog.com/entry/2019/06/11/121751
https://qiita.com/iwantit/items/837ba0ad5307e14b2b00
https://qiita.com/yosyosyoyoyo/items/b40f9fdf1da2b2abfab0