ถามเรื่องการเชื่อมต่อ SQL ด้วย PHP ครับ

เริ่มโดย marauder, 07 กรกฎาคม 2015, 15:21:41

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

marauder

ผมมีฐานข้อมูล 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>';
}
?>
เที่ยวภูเก็ต เที่ยวพังงา เที่ยวกระบี่

@Roverpost

ปกติแล้ว host จะไม่เปิด connect database ผ่าน ip นะครับ
[direct=https://www.shibot.ai/sitemap.xml]Shibot[/direct] [direct=https://www.shibot.ai/]โปรแกรมแชทบอท[/direct] พร้อม[direct=https://www.shibot.ai/]ระบบไลฟ์สด[/direct] ที่สามารถเพิ่มยอดขายได้จริง

oilaoy


Queue

อ้างถึงHost 'Computer_name' is not allowed to connect to this MySQL

เขาบอกว่า ไม่ได้รับอนุญาตให้ใช้ mysql

mysql ปกติจะไม่เปิดสิทธิ์ ให้ เชื่อมต่อแบบคนละเครื่อง

ดูจาก ip 192.168.1.x โค้ด php กับ mysql น่าจะเป็น คนละเครื่อง

สรุป เขาไม่อนุญาต

Nomkhonwaan

สมมติ 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 เข้าไปก็ได้ครับ

:-[

marauder

ขอบคุณครับ จะลองดูครับ :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 เข้าไปก็ได้ครับ

:-[
เที่ยวภูเก็ต เที่ยวพังงา เที่ยวกระบี่