前幾天在自己虛擬機上安裝了mysql數據庫,並且建好了數據庫,通過本機上的MyEclipse啓動項目,訪問虛擬機上的數據庫時,出現了“Can't get hostname for your address”此異常,剛開始時以爲需要配置hosts配置文件(C:\Windows\System32\drivers\etc),但是配置了ip和ip對應的名稱後,異常依然存在,在網上找了好多資料,整理後有如下幾種解決方案:
方案一:
在數據庫的安裝路勁找到my.ini配置文件,並在“[mysqld]”行內容下添加一行配置,
[mysqld]
skip-name-resolve
配置完成後保存就可以解決問題了,雖然問題解決了,但是爲什麼要這麼解決,這行配置的具體作用是什麼,在網上沒有找到合理的解釋。(如果有朋友知道,請告之)。
方案二:
如果上述方案還是不行的話,那麼就可能是你的數據的權限沒有分配,執行以下命令
1、d:\mysql\bin\>mysql -h localhost -u root //這樣應該可以進入MySQL服務器
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //賦予任何主機訪問數據的權限
3、mysql>FLUSH PRIVILEGES //修改生效
4、mysql>EXIT //退出MySQL服務器
問題搞定了。說到命令行連接mysql,不得不說的一個問題就是,剛按照的mysql數據庫,是無法通過命令行連接到數據庫的,也就是說在cmd中直接敲入mysql是無效的,這裏我們需要在環境變量中的path中加上mysql安裝路徑下bin文件的路徑,這樣就可以使用了。
方案三:
其實這個還是和方案二解決方案是一樣的,不過修改方式不一樣罷了,我們直接用mysql的連接工具,打開mysql數據庫中的系統庫mysql中的表user,如圖:
所示,表中有兩條數據,第一條數據賦予ip爲localhost的主機root權限。第二條數據爲賦予所有ip地址的主機root權限,也就是允許其他機器訪問數據庫。如果沒有第二條數據,也會出現上述問題。朋友可以手動添加下如圖中的第二條數據。