我的 docker container 數據如下 , 有開 3306 port
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
74a7e237c26a mysql "docker-entrypoint.s…" 4 hours ago Up 4 hours 0.0.0.0:3306->3306/tcp, 33060/tcp mysql-test
在WSL2內部測試可以使用 127.0.0.1:3306 連結 MySQL
但在外面用 windows 10 gui 工具測試得到 Connection failed - 102(connection_refused)
嘗試1 :
不要用root。另開一個帳號對應。
mysql有鎖root不能遠程的機制。就算給 root@% 也一樣不能遠程。
開一個新帳號給系統權限再試試
結果 : 一樣錯誤
mysql> CREATE USER 'demo'@'%' IDENTIFIED WITH mysql_native_password BY 'demo!';
GRANT ALL PRIVILEGES ON *.* TO 'demo'@'%';Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'demo'@'%';
Query OK, 0 rows affected (0.01 sec)
在Docker 上執行
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'password';
您好大神,會出現以下錯誤
另外我有使用 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
添加遠程登錄權限
mysql> GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '. TO 'root'@'%' IDENTIFIED BY '123456'' at line 1
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.00 sec)
但添加後 windows 10 還是一樣無法使用GUI連線
我思故我在 ( 親~到我個人頁面追蹤我ლ(╹◡╹ლ) )
我試裝了WSL2跟MYSQL,正常哦,我猜你出了兩個狀況
1、先建立一個帳號,別用root
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
下載正確的MySQL Workbench版本(我猜你下載的Workbench是5.0版的)
https://downloads.mysql.com/archives/workbench/
不要用root。另開一個帳號對應。
mysql有鎖root不能遠程的機制。就算給 root@% 也一樣不能遠程。
開一個新帳號給系統權限再試試