首先我們在linux系統(tǒng)上安裝mysql,本文默認linux系統(tǒng)可以聯(lián)網(wǎng)或者已經(jīng)掛載光盤iso了,我們使用命令 apt-get install mysql-server 命令進行安裝,安裝完成后,查看mysql是否啟動,執(zhí)行命令 ps -e |grep mysql。
網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了商水免費建站歡迎大家使用!
請點擊輸入圖片描述
驗證初始是否允許遠程連接,由于本次虛擬機IP為192.168.2.120,因此我們執(zhí)行mysql -h 192.168.20.120 -P 3306 -u root -proot(備注:-proot,root指root賬號的密碼),可以得到結(jié)果連接不上。
假如我們不采用遠程連接,可以連接上,命令為:mysql -u root -proot。
請點擊輸入圖片描述
請點擊輸入圖片描述
接下來,我們連接上數(shù)據(jù)庫,執(zhí)行命令use mysql;使用mysql數(shù)據(jù)庫。
并查看用戶表信息,執(zhí)行命令為:select Host,User from user。
執(zhí)行結(jié)果如下圖所示。
請點擊輸入圖片描述
通過上面步驟可以得到數(shù)據(jù)表 user內(nèi)的值,下面我們對表進行更新記錄允許遠程訪問,
執(zhí)行命令為:update user set Host='%' where User ='root' limit 1;
(該條命令意思為更新user表內(nèi)User值為root的第一條記錄的Host值設置為%)更新完成后,執(zhí)行上一步查詢命令進行驗證
請點擊輸入圖片描述
執(zhí)行強制刷新命令flush privileges;
執(zhí)行完畢后,關閉數(shù)據(jù)庫連接。
請點擊輸入圖片描述
更改mysql安裝目錄下的my.cnf文件。
一般默認路徑在/etc/mysql/下,找到bind-address = 127.0.0.1 這一行,可以對其進行刪除,注釋或者將127.0.0.1更改為0.0.0.0,修改完畢后保存。
請點擊輸入圖片描述
重啟mysql,命令為service mysql restart。進行遠程登陸測試,可以看到已經(jīng)允許遠程連接了。
請點擊輸入圖片描述
第一:更改 “mysql” 數(shù)據(jù)庫里的 “user” 表里的 “host” 項,從”localhost”改稱'%'。 \x0d\x0a或者新加條記錄,“host” 項為要訪問的ip地址,并授權。重啟mysql服務。 \x0d\x0a第二:在系統(tǒng)防火墻添加例外端口:3306,并允許例外。 \x0d\x0a\x0d\x0a錯誤提示: \x0d\x0aERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server \x0d\x0a的解決方法: \x0d\x0a1。改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql后,更改 "mysql" 數(shù)據(jù)庫里的 "user" 表里的 "host" 項,從"localhost"改稱"%" \x0d\x0a1.mysql -u root -pvmware\x0d\x0amysqluse mysql;\x0d\x0amysqlupdate user set host = '%' where user = 'root';\x0d\x0amysqlselect host, user from user; \x0d\x0a\x0d\x0a2. 授權法。例如,你想myuser使用mypassword從任何主機連接到mysql服務器的話。 \x0d\x0a\x0d\x0aGRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; \x0d\x0a如果你想允許用戶myuser從ip為192.168.1.3的主機連接到mysql服務器,并使用mypassword作為密碼 \x0d\x0aGRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; \x0d\x0a\x0d\x0a3.在window自帶的防火墻里的例外添加3306端口 \x0d\x0a\x0d\x0a總結(jié): \x0d\x0amysql -u root -p \x0d\x0amysqluse mysql; \x0d\x0amysqlselect 'host' from user where user='root'; \x0d\x0amysqlupdate user set host = '%' where user ='root'; \x0d\x0amysqlflush privileges; \x0d\x0amysqlselect 'host' from user where user='root'; \x0d\x0a第一句是以權限用戶root登錄 \x0d\x0a第二句:選擇mysql庫 \x0d\x0a第三句:查看mysql庫中的user表的host值(即可進行連接訪問的主機/IP名稱) \x0d\x0a第四句:修改host值(以通配符%的內(nèi)容增加主機/IP地址),當然也可以直接增加IP地址 \x0d\x0a第五句:刷新MySQL的系統(tǒng)權限相關表 \x0d\x0a第六句:再重新查看user表時,有修改。。 \x0d\x0a重起mysql服務即可完成。
基于安全考慮root賬戶一般只能本地訪問,但是在開發(fā)過程中可能需要打開root的遠程訪問權限。下面是基本的步驟:\x0d\x0a1、登錄到MySQL中,為root進行遠程訪問的授權,執(zhí)行下面的命令:\x0d\x0a\x0d\x0amysql GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";\x0d\x0amysql flush privileges;\x0d\x0a\x0d\x0a第一句中"%"表示任何主機都可以遠程登錄到該服務器上訪問。如果要限制只有某臺機器可以訪問,將其換成相應的IP即可,如:\x0d\x0aGRANT ALL PRIVILEGES ON *.* TO root@"172.168.193.25" IDENTIFIED BY "root";\x0d\x0a第二句表示從mysql數(shù)據(jù)庫的grant表中重新加載權限數(shù)據(jù)。因為MySQL把權限都放在了cache中,所以在做完更改后需要重新加載。\x0d\x0a\x0d\x0a2、修改/etc/mysql/my.cnf,需要root用戶權限。找到文件中的:\x0d\x0a\x0d\x0a[ruby] view plain copy print?\x0d\x0abind-address = 127.0.0.1 \x0d\x0a\x0d\x0a將其注釋掉,保存。\x0d\x0a\x0d\x0a3、重新啟動MySQL服務器。執(zhí)行下面的幾條命令即可:\x0d\x0a# /usr/bin/mysqladmin -u root -p shutdown\x0d\x0a# /usr/bin/mysqld_safe \x0d\x0a\x0d\x0a如果mysqladmin和mysql_safe不在/usr/bin目錄中,可以通過whereis命令查找,例如:\x0d\x0a# whereis mysqladmin\x0d\x0amysqladmin: /usr/bin/mysqladmin /usr/share/man/man1/mysqladmin.1.gz\x0d\x0a\x0d\x0a執(zhí)行完上面的三步后,就可以通過遠程機器連接了數(shù)據(jù)庫了。
第一:更改 “mysql” 數(shù)據(jù)庫里的 “user” 表里的 “host” 項,從”localhost”改稱'%'。
或者新加條記錄,“host” 項為要訪問的ip地址,并授權。重啟mysql服務。
第二:在系統(tǒng)防火墻添加例外端口:3306,并允許例外。
錯誤提示:
ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server
的解決方法:
1。改表法??赡苁悄愕膸ぬ柌辉试S從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql后,更改 "mysql" 數(shù)據(jù)庫里的 "user" 表里的 "host" 項,從"localhost"改稱"%"
1.mysql -u root -pvmware
mysqluse mysql;
mysqlupdate user set host = '%' where user = 'root';
mysqlselect host, user from user;
2. 授權法。例如,你想myuser使用mypassword從任何主機連接到mysql服務器的話。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.3的主機連接到mysql服務器,并使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
3.在window自帶的防火墻里的例外添加3306端口
總結(jié):
mysql -u root -p
mysqluse mysql;
mysqlselect 'host' from user where user='root';
mysqlupdate user set host = '%' where user ='root';
mysqlflush privileges;
mysqlselect 'host' from user where user='root';
第一句是以權限用戶root登錄
第二句:選擇mysql庫
第三句:查看mysql庫中的user表的host值(即可進行連接訪問的主機/IP名稱)
第四句:修改host值(以通配符%的內(nèi)容增加主機/IP地址),當然也可以直接增加IP地址
第五句:刷新MySQL的系統(tǒng)權限相關表
第六句:再重新查看user表時,有修改。。
重起mysql服務即可完成。