MySQL8.0が起動済みなのにログインできない時の対処法

MySQL.が起動済みなのにログインできない
目次

MySQL8.0の場合はmy.cnfの中身を確認すること

ウェブ検索して出てきた対処法を一通りしてみても解消できなかったら、my.cnfの中身を確認しましょう。MySQL8.0からsql_modeの変更があるので、ここを見る必要があります。

# mysqlヘルプからmy.cnfをgrep
# mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

# どこにmy.cnfがいるか分かったらvimで開く
# sudo vi /etc/my.cnf

my.cnfの中から「sql_mode」の指定を探します。mysql8.0以降、この中に「NO_AUTO_CREATE_USER」が入ってしまっているとログインできません。

# sql_modeにNO_AUTO_CREATE_USERが入っていることを確認
sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

問題のsql_modeが入っていたら設定を更新しましょう。

# 元の記載はコメントアウト
# sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

# NO_AUTO_CREATE_USERを削除
sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

# 変更したら保存します

sql_modeを修正したら、MySQLを再起動しましょう。

# systemctl restart mysqld.service

これでMySQLにログインできるようになりました!

参考

参考にした記事はこちら

Qiita
MySQL 8.0 を 5.7 感覚で触っていたらハマった my.cnf の設定問題 - Qiita 概要ここではRailsアプリの開発ではありますが、Webアプリを開発しているとこのエラーに引っかかった方はわかると思います。this is incompatible with sql_mode=…

MySQLの公式サイトはこちら

MySQL関連の記事はこちら

Crescit eundo
MySQL.が起動済みなのにログインできない

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

ピープル大学(UoPeople)でコンピューターサイエンスを学んでいます。趣味はプログラミング。

コメント

コメントする

目次