$ cat "dev63.hatenablog.com/entry/2024/10/19/072429.md"
// ブログエントリー — 2024/10/19

ERROR 1142 (42000): SELECT command denied to user 'username'@'192.168.65.1' for table 'user'

前提

usernameというユーザーの設定を、以下のようにした。

mysql> SELECT user, host FROM mysql.user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| root          | %         |
| username     | 127.0.0.1 |
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+

エラー

mysql -h 127.0.0.1 -P 3316 -u root -p で接続実施したとき、
ERROR 1142 (42000): SELECT command denied to user 'usrename'@'192.168.65.1' for table 'user' となった。

原因

  • docker desktopを起動しているため、コンテナ内のDBへ接続時は、仮想ネットワークに192.168.65.1から繋ぎに行かないといけない
  • macではdocker daemonの起動にdocker desktopが必要

のが原因な様子

解決

localhostから繋ぎたかっただけなので、
設定を以下にして解決(mysql -h 127.0.0.1 -P 3316 -u root -p でloginして、 RENAME USER 'testuser2'@'127.0.0.1' TO 'testuser2'@'192.168.65.1';

mysql> SELECT user, host FROM mysql.user;
+---------------+--------------+
| user          | host         |
+---------------+--------------+
| root          | %            |
| username     | 192.168.65.1 |
| mysql.session | localhost    |
| mysql.sys     | localhost    |
| root          | localhost    |
+---------------+--------------+

DBeverからは 127.0.0.1:3316で繋がる

ENTRY: dev63.hatenablog.com/entry/2024/10/19/072429.md
DATE: 2024/10/19
WORDS: 141