本文目錄一覽:
如何遠程訪問MySQL數據庫詳解
默認情況下,mysql只允許本地登錄,如果要開啟遠程連接,則需要修改/etc/mysql/my.conf文件。
一、修改/etc/mysql/my.conf
找到bind-address = 127.0.0.1這一行
改為bind-address = 0.0.0.0即可
二、為需要遠程登錄的用戶賦予權限
1、新建用戶遠程連接mysql數據庫
grant all on *.* to admin@’%’ identified by ‘123456’ with grant option;
flush privileges;
允許任何ip地址(%表示允許任何ip地址)的電腦用admin帳戶和密碼(123456)來訪問這個mysql server。
注意admin賬戶不一定要存在。
2、支持root用戶允許遠程連接mysql數據庫
grant all privileges on *.* to ‘root’@’%’ identified by ‘123456’ with grant option;
flush privileges;
三、查看系統用戶
如何讓mysql數據庫允許被遠程連接訪問?
第一:更改 「mysql」 數據庫里的 「user」 表裡的 「host」 項,從」localhost」改稱’%’。 \x0d\x0a或者新加條記錄,「host」 項為要訪問的ip地址,並授權。重啟mysql服務。 \x0d\x0a第二:在系統防火牆添加例外端口: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” 數據庫里的 “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總結: \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值(以通配符%的內容增加主機/IP地址),當然也可以直接增加IP地址 \x0d\x0a第五句:刷新MySQL的系統權限相關表 \x0d\x0a第六句:再重新查看user表時,有修改。。 \x0d\x0a重起mysql服務即可完成。
mysql怎麼開啟遠程登錄功能
第一中方法:比較詳細
以下的文章主要介紹的是MySQL 數據庫開啟遠程連接的時機操作流程,其實開啟MySQL 數據庫遠程連接的實際操作步驟並不難,知識方法對錯而已,今天我們要向大家描述的是MySQL 數據庫開啟遠程連接的時機操作流程。
1、d:\MySQL\bin\MySQL -h localhost -u root
這樣應該可以進入MySQL服務器
複製代碼 代碼如下:
MySQLupdate user set host = ‘%’ where user = ‘root’;
MySQLselect host, user from user;
2、MySQLGRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION
予任何主機訪問數據的權限
3、MySQLFLUSH PRIVILEGES
修改生效
4、MySQLEXIT
退出MySQL服務器
這樣就可以在其它任何的主機上以root身份登錄啦!
以上的相關內容就是對MySQL 數據庫開啟遠程連接的介紹,望你能有所收穫。
第二種方法:
1、在控制台執行 mysql -u root -p mysql,系統提示輸入數據庫root用戶的密碼,輸入完成後即進入mysql控制台,這個命令的第一個mysql是執行命令,第二個mysql是系統數據名稱,不一樣的。
2、在mysql控制台執行 GRANT ALL PRIVILEGES ON *.* TO 『root’@’%’ IDENTIFIED BY 『MyPassword’ WITH GRANT OPTION;
3、在mysql控制台執行命令中的
『root’@’%’ 可以這樣理解:
root是用戶名,%是主機名或IP地址,這裡的%代表任意主機或IP地址,你也可替換成任意其它用戶名或指定唯一的IP地址;’MyPassword’是給授權用戶指定的登錄數據庫的密碼;另外需要說明一點的是我這裡的都是授權所有權限,可以指定部分權限,GRANT具體操作詳情見:
4、不放心的話可以在mysql控制台執行 select host, user from user; 檢查一下用戶表裡的內容
怎麼用mysql登錄遠程服務器
MySQL允許遠程訪問的設置
1.注釋bind-address = 127.0.0.1。
代碼如下:
cd /etc/mysql
sudo vim my.cnf
將bind-address = 127.0.0.1注釋掉(即在行首加#),如下:
代碼如下:
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1
除了注視掉這句話之外,還可以把後面的IP地址修改成允許連接的IP地址。但是,如果只是開發用的數據庫,為了方便起見,還是推薦直接注釋掉。
從上面的注釋中,可以看出,舊版本的MySQL(從一些資料上顯示是5.0及其以前的版本)上使用的是skip-networking。所以,善意提醒一下,使用舊版本的小夥伴請注意一下。
2.刪除匿名用戶
登錄進數據庫:
代碼如下:
mysql -uroot -p123456
然後,切換到數據庫mysql。SQL如下:
代碼如下:
use mysql;
然後,刪除匿名用戶。SQL如下:
代碼如下:
delete from user where user=”;
3.增加允許遠程訪問的用戶或者允許現有用戶的遠程訪問。
接着上面,刪除匿名用戶後,給root授予在任意主機(%)訪問任意數據庫的所有權限。SQL語句如下:
代碼如下:
mysql grant all privileges on *.* to ‘root’@’%’ identified by ‘123456’ with grant option;
如果需要指定訪問主機,可以把%替換為主機的IP或者主機名。另外,這種方法會在數據庫mysql的表user中,增加一條記錄。如果不想增加記錄,只是想把某個已存在的用戶(例如root)修改成允許遠程主機訪問,則可以使用如下SQL來完成:
代碼如下:
update user set host=’%’ where user=’root’ and host=’localhost’;
4.退出數據庫
代碼如下:
mysql exit
在MySQL Shell執行完SQL後,需要退出到Bash執行系統命令,需要執行exit。因為這個太常用也太簡單。以下內容就提示「退出」,不再重複列出這個命令。
5.重啟數據庫
完成上述所有步驟後,需要重啟一下數據庫,才能讓修改的配置生效。執行如下命令重啟數據庫:
代碼如下:
sudo service mysql restart
到此為止,應該就可以遠程訪問數據庫了。
如何登錄遠程mysql
首先讓我們看一下遠端MYSQL的用戶表
mysql select host,user
– from user;
+—————+——+
| host | user |
+—————+——+
| localhost | root |
+—————+——+
5 rows in set (0.00 sec)
由此我們可以看到root用戶僅允許本地(localhost)登錄,如果要遠程登錄該mysql服務器的話,就需要新建一個普通權限的用戶,新建用戶使用如下命令:
mysql grant select,update,insert,delete on mas.* to duan@localhost identified by “123456”;
這句命令的意思是:新建用戶duan,並且只允許該用戶在本地(localhost)登錄,密碼是123456,並且賦予它對mas庫中所有表select,update,insert的權限。我們在這有一個mas庫,所以用mas.*代表mas庫下的所有表。如果要對所有的表,包括mysql庫的表都有操作權限則可以替換成「*.*」.
現在該duan用戶,已經可以登錄mysql了,但是也還是只能本地登錄。若要duan用戶可以遠程登錄mysql,則還需要如下命令:
mysql update user set host = ‘%’ where user = ‘duan’;
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/204552.html