實現客戶端連接Mysql數據庫服務器


以前學習mysql的時候,都是部署在本機,這樣不存在客戶端主機與服務器主機連接的問題,都是直接用localhost登錄就行。

今天因項目需要,我們把mysql部署在服務器上,然后客戶端裝了client,這樣就遇到客戶端連接數據庫服務器的問題。折騰了蠻久,發現即使是默認的root賬戶也沒能連上服務器。把今天的解決過程記錄如下:

1、在服務器上安裝好mysql server 后,在公司內網開通3306端口(mysql的默認端口);同時,服務器也要支持外網的訪問,又增加外網端口的訪問權限。最后,在客戶端主機,通過"telnet"命令,檢查3306端口已經可以通過客戶端主機連接了。

2、客戶端裝好mysql client,發現root用戶無法連接,也就是客戶端無法用workbench實現數據庫、用戶、數據表等的操作。這里有兩個辦法,一個是直接先授權root用戶,可以在任何主機訪問,然后再新建數據庫、添加表等;另一種方法,是通過服務器端mysql指令,添加新數據庫,新的用戶,然后賦予用戶所有主機的連接權限,算是一步到位。

方法一: 將root用戶的權限改成任何主機都能訪問:

在服務器上,運行MySQL 5.7 Command Line Client,然后執行以下命令:

(1)use mysql;              進入mysql數據庫

(2)select host,user,password from user;  查詢數據庫的用戶信息

(3)update user set host='%' where host='localhost';   將上表中root的訪問主機改為所有

(4)flush privileges;       刷新權限

(5)exit;  退出mysql

完成以上步驟,在客戶端主機workbench中,用root/password,即可登陸了。

 

方法二:直接通過mysql命令,創建數據庫,用戶信息,以及客戶端主機訪問權限設置。

在服務器上,運行MySQL 5.7 Command Line Client,然后執行以下命令:

(1)show databases;    查看mysql服務器上已經存在的數據庫。下面新建時,避免建重復的數據庫

(2)create database SZY;    創建數據庫“SZY”

(3)create user szy identified by "szy";   創建szy用戶,設定密碼szy

(4)grant all privileges on SZY.*to'szy'@'%'identified by 'szy' with grant option;   給用戶賦予指定數據庫的所有權限,並允許任何客戶端主機連接

(5)flush privileges;  刷新上面權限設置

(6)exit;  退出mysql

完成以上命令,在客戶端嘗試連接,如下:

 

注意:關於sql命令直接在服務器上的mysql命令管理器質性就行;每個sql命令都必須以“;”結束,否則報錯,或質性不成功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM