ผมมีฐานข้อมูล 2 เครื่องครับ
เครื่องแรกเป็นเครื่องแม่
เครื่องที่2 เป็นเครื่องลูกแต่มี localhost ครับ
ผมทดลองทำ Back up โดยที่ในกรณีที่ไม่สามารถเชื่อมต่อกับเครื่องแม่ได้ใช้ทำการบันทึกลงในฐานข้อมูลของเครื่องลูกก่อนแล้วค่อยย้ายครับ แต่ในเครื่องลูกขึ้น Error ด้านล่างครับ
Warning: mysqli_connect() [function.mysqli-connect]: (00000/1130): Host 'Computer_name' is not allowed to connect to this MySQL server in C:\AppServ\www\pacco\access_db-scan.php on line 21
โค้ดที่ใช้
<?PHP
$db = mysqli_connect("192.168.1.xx", "username", "password", "database");
if(!$db){
echo "<h3>ERROR : cann't connect IP Address database !</h3>";
echo '<h1>Connecting Localhost</h1>';
$host="localhost";
$user = "root";
$pwd = "root";
$dbname = "database";
$c = mysql_connect($host,$user,$pwd);
if(!$c){
exit();
}
}else{
echo '<h1>Connecting IP Address Database</h1>';
}
?>
ปกติแล้ว host จะไม่เปิด connect database ผ่าน ip นะครับ
น่าจะลองใช้ localhost ดูนะครับ
:P :P :P
อ้างถึงHost 'Computer_name' is not allowed to connect to this MySQL
เขาบอกว่า ไม่ได้รับอนุญาตให้ใช้ mysql
mysql ปกติจะไม่เปิดสิทธิ์ ให้ เชื่อมต่อแบบคนละเครื่อง
ดูจาก ip 192.168.1.x โค้ด php กับ mysql น่าจะเป็น คนละเครื่อง
สรุป เขาไม่อนุญาต
สมมติ IP
เครื่องลูก 192.168.1.xxx
เครื่องแม่ (ที่วางไฟล์ .php ไว้) 192.168.1.xxy
แก้ config MySQL เครื่องลูกให้ bind IP จากเดิมเป็น 127.0.0.1 เป็น 192.168.1.xxx
แล้วสร้าง user ที่ได้สิทธิ์ให้เข้าถึงจากเครื่องแม่
CREATE USER 'newuser'@'192.168.1.xxy' IDENTIFIED BY 'newuser_password';
GRANT ALL PRIVILEGES ON `target_database`.* TO 'newuser'@'192.168.1.xxy' WITH GRANT OPTION;
FLUSH PRIVILEGES;
ตอน connect ก็ใช้ user อันนี้หรือถ้ามี user เดิมอยู่แล้วก็ไม่ต้องสร้างใหม่ให้ grant เพิ่ม host เข้าไปก็ได้ครับ
:-[
ขอบคุณครับ จะลองดูครับ :wanwan017: :wanwan017:
อ้างถึงจาก: Nomkhonwaan ใน 08 กรกฎาคม 2015, 13:43:53
สมมติ IP
เครื่องลูก 192.168.1.xxx
เครื่องแม่ (ที่วางไฟล์ .php ไว้) 192.168.1.xxy
แก้ config MySQL เครื่องลูกให้ bind IP จากเดิมเป็น 127.0.0.1 เป็น 192.168.1.xxx
แล้วสร้าง user ที่ได้สิทธิ์ให้เข้าถึงจากเครื่องแม่
CREATE USER 'newuser'@'192.168.1.xxy' IDENTIFIED BY 'newuser_password';
GRANT ALL PRIVILEGES ON `target_database`.* TO 'newuser'@'192.168.1.xxy' WITH GRANT OPTION;
FLUSH PRIVILEGES;
ตอน connect ก็ใช้ user อันนี้หรือถ้ามี user เดิมอยู่แล้วก็ไม่ต้องสร้างใหม่ให้ grant เพิ่ม host เข้าไปก็ได้ครับ
:-[