mysql授权远程访问 网段_MySQL授权和开启远程访问
解決MySQL不允許從遠(yuǎn)程訪問的方法
解決方法:
1。改表法??赡苁悄愕膸ぬ?hào)不允許從遠(yuǎn)程登陸,只能在localhost。這個(gè)時(shí)候只要在localhost的那臺(tái)電腦,登入mysql后,更改 “mysql”?數(shù)據(jù)庫里的 “user” 表里的 “host” 項(xiàng),從“l(fā)ocalhost”改稱“%”
mysql -u root -pvmwaremysql>use mysql;
mysql>update user set host = ‘%’ where user = ‘root’;
mysql>select host, user from user;
2. 授權(quán)法。例如,你想myuser使用mypassword從任何主機(jī)連接到mysql服務(wù)器的話。
GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@'%’ IDENTIFIED BY ‘mypassword’ WI
TH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.6的主機(jī)連接到mysql服務(wù)器,并使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@'192.168.1.3′ IDENTIFIED BY
‘mypassword’ WITH GRANT OPTION;
我用的第一個(gè)方法,剛開始發(fā)現(xiàn)不行,在網(wǎng)上查了一下,少執(zhí)行一個(gè)語句 mysql>FLUSH?? PRIVILEGES
使修改生效.就可以了
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; 使修改生效。
遠(yuǎn)程連接到MySQL需要做的
1. 進(jìn)入MySQL,創(chuàng)建一個(gè)新用戶xuys:
格式: grant 權(quán)限 on 數(shù)據(jù)庫名.表名 用戶@登錄主機(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字段表示登錄的主機(jī),其值可以用IP,也可用主機(jī)名,將host字段的值改為%就表示在任何客戶端機(jī)器上能以xuys用戶登錄到MySQL服務(wù)器,建議在開發(fā)時(shí)設(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 &
記住: 對(duì)授權(quán)表的任何修改都需要重新reload,即執(zhí)行第3步.
如果經(jīng)過以上3個(gè)步驟還是無法從客戶端連接,請(qǐng)執(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ù)庫分離開來是一個(gè)不錯(cuò)的選擇,避免因?yàn)榇罅康臄?shù)據(jù)庫查詢占用CPU而使Web資源不足,同時(shí)可以使Web服務(wù)器的資源盡最大的提供瀏覽服務(wù),而數(shù)據(jù)庫服務(wù)器單獨(dú)的只處理數(shù)據(jù)庫事務(wù).
我對(duì)這方面的原理不甚太十分了解,我的做法其實(shí)就是下面要說的,很簡(jiǎn)單.大家有更好的經(jīng)驗(yàn)和技巧不妨提出來分享一下.
適用范圍: 擁有獨(dú)立主機(jī)權(quán)限
硬件配置: 兩臺(tái)服務(wù)器,至于具體服務(wù)器硬件配置就不在本文范圍內(nèi)了
其中: A為Web服務(wù)器(假設(shè)IP為: 192.192.192.192),B為MySQL數(shù)據(jù)服務(wù)器(假設(shè)IP為: 168.168.168.168)
著手動(dòng)作:
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一般默認(rèn)都不允許遠(yuǎn)程連接的,需要建立遠(yuǎn)程連接賬號(hào)才可以
以命令行方式使用root賬號(hào)進(jìn)入MySQL
mysql -u root -p pass
選擇進(jìn)入MySQL數(shù)據(jù)庫
use mysql;
查看所有存在的賬號(hào)和地址
SELECT `Host`,`User` FROM `user`;
比如我的就是:
+------------+-------+
| Host??????? | User? |
+------------+-------+
| localhost |????????? |
| localhost | pma? |
| localhost | root?? |
+------------+-------+
3 rows in set (0.00 sec)
也就是說,存在三個(gè)只允許本地連接的(localhost)賬號(hào),分別為root,pma,空用戶.
現(xiàn)在決定讓root具有上面那個(gè)Web服務(wù)器A的遠(yuǎn)程鏈接的權(quán)限,那么就這樣:
UPDATE `user` SET `Host` = '192.192.192.192' WHERE `User` = 'root' LIMIT 1;
這樣192.192.192.192這臺(tái)Web服務(wù)器就可以遠(yuǎn)程連接到這個(gè)數(shù)據(jù)庫服務(wù)器了,假如你想讓任何遠(yuǎn)程機(jī)器都可以連接這個(gè)數(shù)據(jù)庫,就將192.192.192.192換為%,不過不建議這樣做,原因你知道啦!
假如你想新建一個(gè)用戶new_user具備遠(yuǎn)程鏈接的權(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ù)庫可以遠(yuǎn)程連接后,你就可以在你的Web服務(wù)器的論壇config.inc.php中設(shè)置$dbhost變量為你的MySQL數(shù)據(jù)庫服務(wù)器B的IP了:
$dbhost = '168.168.168.168';
實(shí)際操作中,最好兩臺(tái)機(jī)器在同一個(gè)機(jī)房的同一網(wǎng)段/防火墻內(nèi).當(dāng)然如果有可能的話,將數(shù)據(jù)庫服務(wù)器放置于Web服務(wù)器網(wǎng)絡(luò)內(nèi)的局域網(wǎng)中就更好了.
總結(jié)
以上是生活随笔為你收集整理的mysql授权远程访问 网段_MySQL授权和开启远程访问的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理解快速生成树协议(RSTP)(二)
- 下一篇: 网络工程师之广域网必胜篇一