星期日, 8月 23, 2009

mysql如何開放遠端連線

情況:

主機A 有mysql資料庫 ,資料庫名稱為:第一資料庫,主機ip為192.168.1.1
主機B 有php程式,想要連到主機A的mysql server中的第一資料庫抓資料,IP為10.1.1.1

主機A的設定

1.編輯/etc/my.cnf
將skip-networking註解掉
(註:MandrivaLinux2009應該只要修改這一行,不同的發行套件,修改的地方可能不同)

2.進入mysql server
#mysql mysql -u root -p
mysql >GRANT ALL PRIVILEGES ON 第一資料庫.* TO 'john'@'10.1.1.%' IDENTIFIED BY 'john的密碼' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;

註:上面'使用者名稱'@'10.1.1.%' 是指10.1.1.xxx均可以連線至主機A的mysql,若只想要指定某一個IP如10.1.1.2連線的話,就改為GRANT ALL PRIVILEGES ON 第一資料庫.* TO 'john'@'10.1.1.2' IDENTIFIED BY 'john的密碼' WITH GRANT OPTION;
上面的意思就是,准許10.1.1.xxx的資料庫使用者john,可以連線到192.168.1.1的第一資料庫拿資料

主機B:
php的mysql呼叫方式

<?php
$mysql_host="192.168.1.1:3306";
$mysql_user="john";//這個要和主機A的mysql設定一致
$mysql_pass="john的密碼"//這個要和主機A的mysql設定一致
$mysql_DB="第一資料庫";
$link=mysql_connect($mysql_host,$mysql_user,$mysql_pass);

?>

這樣主機B的PHP想要連接主機A的MYSQL第一資料庫,就可以連線了!

沒有留言: