新聞中心
如何連接遠程Mysql數(shù)據(jù)庫
二種方法設(shè)置mysql可以通過遠程主機進行連接。
創(chuàng)新互聯(lián)建站是專業(yè)的海州網(wǎng)站建設(shè)公司,海州接單;提供成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行海州網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
一、改表法
在localhost登入mysql后,更改 "mysql" 數(shù)據(jù)庫里的 "user" 表里的 "host" 項,將"localhost"改稱"%"
例如:
#mysql -u root -p
Enter password:
……
mysql
mysqlupdate user set host = '%' where user = 'root';
mysqlselect host, user from user;
二、授權(quán)法
例如:你想myuser使用mypassword(密碼)從任何主機連接到mysql服務(wù)器的話。
mysqlGRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql服務(wù)器,并使用mypassword作為密碼
mysqlGRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
mysqlFLUSH PRIVILEGES
使修改生效,就可以了
如何登錄遠程mysql
首先讓我們看一下遠端MYSQL的用戶表
mysql select host,user
- from user;
+---------------+------+
| host | user |
+---------------+------+
| localhost | root |
+---------------+------+
5 rows in set (0.00 sec)
由此我們可以看到root用戶僅允許本地(localhost)登錄,如果要遠程登錄該mysql服務(wù)器的話,就需要新建一個普通權(quán)限的用戶,新建用戶使用如下命令:
mysql grant select,update,insert,delete on mas.* to duan@localhost identified by "123456";
這句命令的意思是:新建用戶duan,并且只允許該用戶在本地(localhost)登錄,密碼是123456,并且賦予它對mas庫中所有表select,update,insert的權(quán)限。我們在這有一個mas庫,所以用mas.*代表mas庫下的所有表。如果要對所有的表,包括mysql庫的表都有操作權(quán)限則可以替換成“*.*”.
現(xiàn)在該duan用戶,已經(jīng)可以登錄mysql了,但是也還是只能本地登錄。若要duan用戶可以遠程登錄mysql,則還需要如下命令:
mysql update user set host = '%' where user = 'duan';
如何遠程訪問MySQL數(shù)據(jù)庫詳解
一、連接遠程數(shù)據(jù)庫:
1、顯示密碼
如:MySQL
連接遠程數(shù)據(jù)庫(192.168.5.116),端口“3306”,用戶名為“root”,密碼“123456”
C:/mysql
-h
192.168.5.116
-P
3306
-u
root
-p123456
2、隱藏密碼
如:MySQL
連接本地數(shù)據(jù)庫,用戶名為“root”,
C:/mysql
-h
localhost
-u
root
-p
Enter
password:
二、配置mysql允許遠程鏈接
默認情況下,mysql帳號不允許從遠程登陸,只能在localhost登錄。本文提供了二種方法設(shè)置mysql可以通過遠程主機進行連接。
一、改表法
在localhost登入mysql后,更改
"mysql"
數(shù)據(jù)庫里的
"user"
表里的
"host"
項,將"localhost"改稱"%"
例如:
#mysql
-u
root
-p
Enter
password:
……
mysql
mysqlupdate
user
set
host
=
'%'
where
user
=
'root';
mysqlselect
host,
user
from
user;
二、授權(quán)法
例如:
你想myuser使用mypassword(密碼)從任何主機連接到mysql服務(wù)器的話。
mysqlGRANT
ALL
PRIVILEGES
ON
*.*
TO
'myuser'@'%'IDENTIFIED
BY
'mypassword'
WITH
GRANT
OPTION;
如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql服務(wù)器,并使用mypassword作為密碼
mysqlGRANT
ALL
PRIVILEGES
ON
*.*
TO
'myuser'@'192.168.1.3'IDENTIFIED
BY
'mypassword'
WITH
GRANT
OPTION;
mysqlFLUSH
PRIVILEGES
使修改生效,就可以了
常見問題:
1、在采用法二授權(quán)法之后,無法在本地登錄mysql(如:#mysql
-u
root
-p
-h
192.168.5.116
Enter
password:
ERROR
1045
(28000):
Access
denied
for
user
'root'@'loadb116'
(using
password:
YES)
上例中l(wèi)oadb116是主機名.
解決方法:
1、這時可以使用:mysql
-u
root
-p
登錄,進入到mysql后。
mysql
grant
all
privileges
on
*.*
to
'root'@'loadb116'
identified
by
'123456'
with
grant
option;
Query
OK,
rows
affected
(0.00
sec)
mysql
flush
privileges;
Query
OK,
rows
affected
(0.00
sec)
2、在本地使用ip地址登錄
#
mysql
-u
root
-p
-h
192.168.5.116
Enter
password:
Welcome
to
the
MySQL
monitor.
Commands
end
with
;
or
/g.
Your
MySQL
connection
id
is
60
Server
version:
5.1.45
MySQL
Community
Server
(GPL)
Type
'help;'
or
'/h'
for
help.
Type
'/c'
to
clear
the
buffer.
mysql
mysql 遠程連接方法
mysql開啟遠程連接:
以 root用戶登入mysql
GRANT all privileges ON wang.* TO 'wang'@'%' identified by 'wang';
flush privileges;
請點擊輸入圖片描述
修改配置文件
vi /etc/mysql/my.cnf
把bind-address ? ? ? ? ? = 127.0.0.1 ?這行注掉
重啟數(shù)據(jù)庫
service mysql restart
請點擊輸入圖片描述
本地測試連接3306端口
telnet 192.168.1.77 3306 ? 若已連通
確定已安裝mysql客戶端which mysql
/usr/bin/mysql
然后mysql -uwang -h192.168.1.77 -p ?看能否登錄
請點擊輸入圖片描述
外網(wǎng)如何利用網(wǎng)絡(luò)輔助nat123實現(xiàn)訪問內(nèi)網(wǎng)mysql數(shù)據(jù)庫?
網(wǎng)絡(luò)環(huán)境:動態(tài)公網(wǎng)IP。
明確mysql數(shù)據(jù)庫內(nèi)網(wǎng)訪問地址端口,確保mysql數(shù)據(jù)庫服務(wù)正常,在內(nèi)網(wǎng)可以正常訪問連接。內(nèi)網(wǎng)使用nat123動態(tài)域名解析。內(nèi)網(wǎng)服務(wù)器安裝nat123客戶端,并使用它。登陸。進入主面板/域名解析列表/添加域名。選擇動態(tài)域名解析記錄,使用二級域名,或自己的域名。鼠標(biāo)放在輸入框有向?qū)崾尽?/p>
請點擊輸入圖片描述
路由器端口映射,路由映射mysql數(shù)據(jù)庫訪問端口。
因為公網(wǎng)IP是在路由器上的,外網(wǎng)訪問時,需要經(jīng)過路由,需要在路由器上做端口映射,將內(nèi)網(wǎng)mysql數(shù)據(jù)庫訪問端口打通。路由器端口映射位置:轉(zhuǎn)發(fā)規(guī)則/虛擬服務(wù)器/添加允許外網(wǎng)訪問端口和協(xié)議。我的mysql數(shù)據(jù)庫端口是默認的3306,我內(nèi)網(wǎng)對應(yīng)mysql數(shù)據(jù)庫主機的內(nèi)網(wǎng)IP地址是192.168.1.22。
請點擊輸入圖片描述
外網(wǎng)訪問時,使用動態(tài)解析域名。
在外網(wǎng)訪問mysql數(shù)據(jù)庫時,使用動態(tài)解析域名進行連接訪問。域名是不變的,可以上網(wǎng)即可訪問,再也不擔(dān)心動態(tài)公網(wǎng)IP變化的問題。
請點擊輸入圖片描述
如何開啟遠程登陸mysql
開啟 MySQL 的遠程登陸帳號有兩大步:
1、確定服務(wù)器上的防火墻沒有阻止 3306 端口。
MySQL 默認的端口是 3306 ,需要確定防火墻沒有阻止 3306 端口,否則遠程是無法通過 3306 端口連接到 MySQL 的。
如果您在安裝 MySQL 時指定了其他端口,請在防火墻中開啟您指定的 MySQL 使用的端口號。
如果不知道怎樣設(shè)置您的服務(wù)器上的防火墻,請向您的服務(wù)器管理員咨詢。
2、增加允許遠程連接 MySQL 用戶并授權(quán)。
1)首先以 root 帳戶登陸 MySQL
在 Windows 主機中點擊開始菜單,運行,輸入“cmd”,進入控制臺,MySQL 的 bin 目錄下,然后輸入下面的命令。
在 Linux 主機中在命令提示行下輸入下面的命令。
CODE: [COPY]
MySQL -uroot -p123456
123456 為 root 用戶的密碼。
2)創(chuàng)建遠程登陸用戶并授權(quán)
CODE: [COPY]
grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';
上面的語句表示將 discuz 數(shù)據(jù)庫的所有權(quán)限授權(quán)給 ted 這個用戶,允許 ted 用戶在 123.123.123.123 這個 IP 進行遠程登陸,并設(shè)置 ted 用戶的密碼為 123456 。
下面逐一分析所有的參數(shù):
all PRIVILEGES 表示賦予所有的權(quán)限給指定用戶,這里也可以替換為賦予某一具體的權(quán)限,例如:select,insert,update,delete,create,drop 等,具體權(quán)限間用“,”半角逗號分隔。
discuz.* 表示上面的權(quán)限是針對于哪個表的,discuz 指的是數(shù)據(jù)庫,后面的 * 表示對于所有的表,由此可以推理出:對于全部數(shù)據(jù)庫的全部表授權(quán)為“*.*”,對于某一數(shù)據(jù)庫的全部表授權(quán)為“數(shù)據(jù)庫名.*”,對于某一數(shù)據(jù)庫的某一表授 權(quán)為“數(shù)據(jù)庫名.表名”。
ted 表示你要給哪個用戶授權(quán),這個用戶可以是存在的用戶,也可以是不存在的用戶。
123.123.123.123 表示允許遠程連接的 IP 地址,如果想不限制鏈接的 IP 則設(shè)置為“%”即可。
123456 為用戶的密碼。
執(zhí)行了上面的語句后,再執(zhí)行下面的語句,方可立即生效。
CODE: [COPY]
flush privileges;
網(wǎng)頁名稱:怎么能遠程登陸mysql,遠程登錄怎么操作
轉(zhuǎn)載注明:http://www.dlmjj.cn/article/phehgj.html