目次
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にログインできるようになりました!
参考
参考にした記事はこちら
MySQLの公式サイトはこちら
MySQL関連の記事はこちら!
コメント