MYSQL如何配置遠程連接

這篇文章主要介紹MySQL如何配置遠程連接,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

富民網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,富民網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為富民數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的富民做網(wǎng)站的公司定做!

開啟 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;

-----------------------------------------------------------------------------------------------------------------

解決方法:

1、改表法:

可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql后,更改 “mysql” 數(shù)據(jù)庫里的 “user” 表里的 “host” 項,從“l(fā)ocalhost”改稱“%”

x:\>mysql -u root -pvmware

mysql> use mysql;
mysql> update user set host = ‘%’ where user = ‘root’;
mysql> select host, user from user;

mysql> flush privileges;

注:mysql> flush privileges; 使修改生效。

2、授權(quán)法:

例如,你想myuser使用mypassword從任何主機連接到mysql服務(wù)器的話。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果你想允許用戶myuser從ip為192.168.1.3的主機連接到mysql服務(wù)器,并使用mypassword作為密碼

mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword’ WITH GRANT OPTION;

轉(zhuǎn)自:http://hi.baidu.com/593313600/blog/item/52c13d3d4640d208baa167cf.html/cmtid/df0698f382f04d5d352acce8

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

二、問如何開啟MySQL的遠程連接

   Q:

    最近學(xué)習(xí)PHP,裝了個phpwind論壇和FTP流量插件,需要遠程連接MySQL數(shù)據(jù)庫.不知道如何打開本地服務(wù)器的遠程連接.現(xiàn)在本地服務(wù)器上的論壇和FTP流量插件都運行正常,在另一臺服務(wù)器上安裝插件,連不上數(shù)據(jù)庫.到PW官方求助沒人回貼.因此來這尋求幫助.

    服務(wù)器信息
    PHP程式版本: 4.3.11
    MySQL 版本: 4.1.10-nt
    服務(wù)器端信息: Microsoft-IIS/5.0
    裝有phpMyAdmin

    A1:

    遠程連接到MySQL需要做的

    1. 進入MySQL,創(chuàng)建一個新用戶xuys:
   

    格式: grant 權(quán)限 on 數(shù)據(jù)庫名.表名 用戶@登錄主機 identified by "用戶密碼";
    grant select,update,insert,delete on *.* to xuys@192.168.88.234 identified by "xuys1234";

    查看結(jié)果,執(zhí)行:
    use mysql;
    select host,user,password from user;

    可以看到在user表中已有剛才創(chuàng)建的xuys用戶,host字段表示登錄的主機,其值可以用IP,也可用主機名,將host字段的值改為%就表示在任何客戶端機器上能以xuys用戶登錄到MySQL服務(wù)器,建議在開發(fā)時設(shè)為%.

    update user set host = '%' where user = 'xuys';

    2.

    ./mysqladmin -u root -p pwd reload
    ./mysqladmin -u root -p pwd shutdown

    3.

    ./mysqld_safe --user=root &
   

    記住: 對授權(quán)表的任何修改都需要重新reload,即執(zhí)行第3步.

    如果經(jīng)過以上3個步驟還是無法從客戶端連接,請執(zhí)行以下操作,在MySQL數(shù)據(jù)庫的db表中插入一條記錄:

    use mysql;
    insert into db values('192.168.88.234','%','xuys','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
    update db set host = '%' where user = 'xuys';

    重復(fù)執(zhí)行上面的第2,3步.

    A2:

    Web與MySQL數(shù)據(jù)庫分離開來是一個不錯的選擇,避免因為大量的數(shù)據(jù)庫查詢占用CPU而使Web資源不足,同時可以使Web服務(wù)器的資源盡最大的提供瀏覽服務(wù),而數(shù)據(jù)庫服務(wù)器單獨的只處理數(shù)據(jù)庫事務(wù).

    我對這方面的原理不甚太十分了解,我的做法其實就是下面要說的,很簡單.大家有更好的經(jīng)驗和技巧不妨提出來分享一下.

    適用范圍: 擁有獨立主機權(quán)限
    硬件配置: 兩臺服務(wù)器,至于具體服務(wù)器硬件配置就不在本文范圍內(nèi)了
    其中: A為Web服務(wù)器(假設(shè)IP為: 192.192.192.192),B為MySQL數(shù)據(jù)服務(wù)器(假設(shè)IP為: 168.168.168.168)

    著手動作:

    1. 在Web服務(wù)器A配置好Web服務(wù).關(guān)于這方面文章很多了.假設(shè)Web服務(wù)器的IP為: 192.192.192.192
    2. 在數(shù)據(jù)庫服務(wù)器B安裝好MySQL服務(wù)
    3. 現(xiàn)在新版的MySQL一般默認都不允許遠程連接的,需要建立遠程連接賬號才可以

    以命令行方式使用root賬號進入MySQL
    mysql -u root -p pass

    選擇進入MySQL數(shù)據(jù)庫
    use mysql;

    查看所有存在的賬號和地址
    SELECT `Host`,`User` FROM `user`;

    比如我的就是:

    +------------+-------+
    | Host        | User  |
    +------------+-------+
    | localhost |          |
    | localhost | pma  |
    | localhost | root   |
    +------------+-------+
    3 rows in set (0.00 sec)

    也就是說,存在三個只允許本地連接的(localhost)賬號,分別為root,pma,空用戶.

    現(xiàn)在決定讓root具有上面那個Web服務(wù)器A的遠程鏈接的權(quán)限,那么就這樣:
    UPDATE `user` SET `Host` = '192.192.192.192' WHERE `User` = 'root' LIMIT 1;


    這樣192.192.192.192這臺Web服務(wù)器就可以遠程連接到這個數(shù)據(jù)庫服務(wù)器了,假如你想讓任何遠程機器都可以連接這個數(shù)據(jù)庫,就將192.192.192.192換為%,不過不建議這樣做,原因你知道啦!

    假如你想新建一個用戶new_user具備遠程鏈接的權(quán)限的話,就這樣:
    INSERT INTO `user` ( `Host` , `User` , `Password` , `Select_priv` , `Insert_priv` , `Update_priv` , `Delete_priv` , `Create_priv` , `Drop_priv` , `Reload_priv` , `Shutdown_priv` , `Process_priv` , `File_priv` , `Grant_priv` , `References_priv` , `Index_priv` , `Alter_priv` , `Show_db_priv` , `Super_priv` , `Create_tmp_table_priv` , `Lock_tables_priv` , `Execute_priv` , `Repl_slave_priv` , `Repl_client_priv` , `ssl_type` , `ssl_cipher` , `x509_issuer` , `x509_subject` , `max_questions` , `max_updates` , `max_connections` ) VALUES ('192.192.192.192', 'new_user', PASSWORD( 'new_user_password' ) , 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0');


    將new_user改為你想要的名字就可以了,密碼是: new_user_password,當(dāng)然你可以隨意設(shè)置.

    當(dāng)你的數(shù)據(jù)庫可以遠程連接后,你就可以在你的Web服務(wù)器的論壇config.inc.php中設(shè)置$dbhost變量為你的MySQL數(shù)據(jù)庫服務(wù)器B的IP了:

    $dbhost = '168.168.168.168';

    實際操作中,最好兩臺機器在同一個機房的同一網(wǎng)段/防火墻內(nèi).當(dāng)然如果有可能的話,將數(shù)據(jù)庫服務(wù)器放置于Web服務(wù)器網(wǎng)絡(luò)內(nèi)的局域網(wǎng)中就更好了.

    Q3:

    還是這樣簡潔些:

    grant all on yourdb.* to yourUsername@yourHost identified by "yourPassword";
    flush privileges;     //使權(quán)限立刻生效

以上是“MYSQL如何配置遠程連接”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站名稱:MYSQL如何配置遠程連接
網(wǎng)站URL:http://muchs.cn/article8/phdiip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、域名注冊、搜索引擎優(yōu)化用戶體驗、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)