操作系統:Mac OS
以下執行都在terminal進行:
mysql使用密碼登錄:mysql -u root -p
jdbc一直無法連接mysql,試了很多辦法,都是讓配置mysql的配置文件: /etc/my.cnf
大部分的說法是修改bind-address,修改成127.0.01或者0.0.0.0 ,但是我這邊修改了也還是沒用。
最后看到一個說法說先終端確認下接口參數,一確認,果然不是默認接口:
很多人回復這種情況需要把skip-networking comment out,也就是OFF狀態。
我跑去/ect/my.cnf看了。這一項就是comment out狀態的,為什么終端查看參數還是ON呢?百思不得其解,到處在網上查找答案,終於找到了這條回答:
把skip-grant-tables comment out掉真的成功關閉了 skip_networking. 但是我的jdbc還是無法連接mysql,出現了新的error,呵呵。
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'test' at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
原來是我把navicate 的connection名當成了數據庫名。在終端 show databases;才發現根本沒有這個名,最后終於解決。撒花。。。
記一次打完新冠疫苗發着燒改系統bug的經歷。。。足足花了我一晚上加一個上午。。。
最后連接好了往表里添加數據的時候,出現如下異常:
Could not retrieve transation read-only status server ”
嗯,我心靜如水,查了下原因,原來是使用的jar包是5.0版本的,我的mysql是8.0版本的,重新下載了8.0版本的jar包后重新執行就好了。。。