MYSQL配置遠端連線
資料整理與網路
解決MySQL不允許從遠端訪問的方法
開啟 MySQL 的遠端登陸帳號有兩大步:
1、確定伺服器上的防火牆沒有阻止 3306 埠。
MySQL 預設的埠是 3306 ,需要確定防火牆沒有阻止 3306 埠,否則遠端是無法透過 3306 埠連線到 MySQL 的。
如果您在安裝 MySQL 時指定了其他埠,請在防火牆中開啟您指定的 MySQL 使用的埠號。
如果不知道怎樣設定您的伺服器上的防火牆,請向您的伺服器管理員諮詢。
2、增加允許遠端連線 MySQL 使用者並授權。
1)首先以 root 帳戶登陸 MySQL
在 Windows 主機中點選開始選單,執行,輸入“cmd”,進入控制檯,MySQL 的 bin 目錄下,然後輸入下面的命令。
在 Linux 主機中在命令提示行下輸入下面的命令。
- > MySQL -uroot -p123456
123456 為 root 使用者的密碼。
2)建立遠端登陸使用者並授權
- > grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';
上面的語句表示將 discuz 資料庫的所有許可權授權給 ted 這個使用者,允許 ted 使用者在 123.123.123.123 這個 IP 進行遠端登陸,並設定 ted 使用者的密碼為 123456 。
下面逐一分析所有的引數:
all PRIVILEGES 表示賦予所有的許可權給指定使用者,這裡也可以替換為賦予某一具體的許可權,例如:select,insert,update,delete,create,drop 等,具體許可權間用“,”半形逗號分隔。
discuz.* 表示上面的許可權是針對於哪個表的,discuz 指的是資料庫,後面的 * 表示對於所有的表,由此可以推理出:對於全部資料庫的全部表授權為“*.*”,對於某一資料庫的全部表授權為“資料庫名.*”,對於某一資料庫的某一表授 權為“資料庫名.表名”。
ted 表示你要給哪個使用者授權,這個使用者可以是存在的使用者,也可以是不存在的使用者。
123.123.123.123 表示允許遠端連線的 IP 地址,如果想不限制連結的 IP 則設定為“%”即可。
123456 為使用者的密碼。
執行了上面的語句後,再執行下面的語句,方可立即生效。
-----------------------------------------------------------------------------------------------------------------
解決方法:
1、改表法:
可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 “mysql” 資料庫裡的 “user” 表裡的 “host” 項,從“localhost”改稱“%”
x:\>mysql -u root -pvmware
mysql> use mysql; mysql> flush privileges; |
注:mysql> flush privileges; 使修改生效。
2、授權法:
例如,你想myuser使用mypassword從任何主機連線到mysql伺服器的話。
mysql> GRANT ALL PRIVILEGES ON *.* TO IDENTIFIED BY 'mypassword' WITH GRANT OPTION; |
如果你想允許使用者myuser從ip為192.168.1.3的主機連線到mysql伺服器,並使用mypassword作為密碼
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword’ WITH GRANT OPTION; |
伺服器資訊
PHP程式版本: 4.3.11
MySQL 版本: 4.1.10-nt
伺服器端資訊: Microsoft-IIS/5.0
裝有phpMyAdmin
1. 進入MySQL,建立一個新使用者xuys:
grant select,update,insert,delete on *.* to xuys@192.168.88.234 identified by "xuys1234";
use mysql;
select host,user,password from user;
2.
./mysqladmin -u root -p pwd shutdown
3.
如果經過以上3個步驟還是無法從客戶端連線,請執行以下操作,在MySQL資料庫的db表中插入一條記錄:
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';
我對這方面的原理不甚太十分了解,我的做法其實就是下面要說的,很簡單.大家有更好的經驗和技巧不妨提出來分享一下.
適用範圍: 擁有獨立主機許可權
硬體配置: 兩臺伺服器,至於具體伺服器硬體配置就不在本文範圍內了
其中: A為Web伺服器(假設IP為: 192.192.192.192),B為MySQL資料伺服器(假設IP為: 168.168.168.168)
著手動作:
2. 在資料庫伺服器B安裝好MySQL服務
3. 現在新版的MySQL一般預設都不允許遠端連線的,需要建立遠端連線賬號才可以
mysql -u root -p pass
選擇進入MySQL資料庫
use mysql;
檢視所有存在的賬號和地址
SELECT `Host`,`User` FROM `user`;
比如我的就是:
+------------+-------+
| Host | User |
+------------+-------+
| localhost | |
| localhost | pma |
| localhost | root |
+------------+-------+
3 rows in set (0.00 sec)
現在決定讓root具有上面那個Web伺服器A的遠端連結的許可權,那麼就這樣:
UPDATE `user` SET `Host` = '192.192.192.192' WHERE `User` = 'root' LIMIT 1;
這樣192.192.192.192這臺Web伺服器就可以遠端連線到這個資料庫伺服器了,假如你想讓任何遠端機器都可以連線這個資料庫,就將192.192.192.192換為%,不過不建議這樣做,原因你知道啦!
假如你想新建一個使用者new_user具備遠端連結的許可權的話,就這樣:
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,當然你可以隨意設定.
當你的資料庫可以遠端連線後,你就可以在你的Web伺服器的論壇config.inc.php中設定$dbhost變數為你的MySQL資料庫伺服器B的IP了:
實際操作中,最好兩臺機器在同一個機房的同一網段/防火牆內.當然如果有可能的話,將資料庫伺服器放置於Web伺服器網路內的區域網中就更好了.
flush privileges; //使許可權立刻生效
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29065182/viewspace-1180898/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MYSQL遠端連線配置MySql
- 配置 MySQL 遠端連線MySql
- 遠端連線MYSQLMySql
- 配置 MySQL 允許遠端連線的方法MySql
- 配置mysql允許遠端連線的方法MySql
- mysql遠端連線命令MySql
- mysql開啟遠端連線MySql
- 命令列遠端連線mysql命令列MySql
- mysql遠端連線設定MySql
- mysql 遠端無法連線MySql
- OneinStack如何配置MySQL遠端連線並授權MySql
- PHP中PDO、mysql配置遠端連線、ecshop安裝PHPMySql
- CentOS使用配置VNC遠端連線CentOSVNC
- gdb配置預設連線遠端
- linux配置mysql資料庫遠端連線失敗LinuxMySql資料庫
- 遠端連線mysql資料庫MySql資料庫
- 如何遠端連線 遠端桌面軟體連線
- ORACLE 配置連線遠端資料庫Oracle資料庫
- CentOS 7 配置 VNC 遠端桌面連線CentOSVNC
- mysql實現遠端訪問,phpmyadmin實現遠端連線mysqlMySqlPHP
- mysql 遠端連線2003MySql
- 阿里雲之遠端連線mysql阿里MySql
- navacate遠端連線mysql實現MySql
- 遠端連線mysql 授權方法教程MySql
- 遠端主機mysql連線失敗MySql
- MySQL 遠端連線(federated儲存引擎)MySql儲存引擎
- [轉載] MySql實現遠端連線MySql
- mysql遠端連線 Host * is not allowed to connect to this MySQL serverMySqlServer
- 配置SQL server遠端連線(區域網)SQLServer
- 允許mysql遠端使用者連線。MySql
- MYSQL 怎麼都不能遠端連線,。。MySql
- vps如何遠端連線,遠端桌面連線vps
- VNC遠端連線,如何VNC遠端連線伺服器VNC伺服器
- 遠端連線桌面 批次遠端管理
- 遠端桌面連線
- UltraEdit下ftp配置,UE遠端連線linuxFTPLinux
- 配置redis伺服器允許遠端連線Redis伺服器
- Xmanager在RHEL5的遠端連線配置