ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => หัวข้อเริ่มโดย: marauder ใน 07 กรกฎาคม 2015, 15:21:41

ชื่อเรื่อง: ถามเรื่องการเชื่อมต่อ SQL ด้วย PHP ครับ
โพสต์โดย: marauder ใน 07 กรกฎาคม 2015, 15:21:41
ผมมีฐานข้อมูล 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>';
}
?>
ชื่อเรื่อง: Re: ถามเรื่องการเชื่อมต่อ SQL ด้วย PHP ครับ
โพสต์โดย: @Roverpost ใน 07 กรกฎาคม 2015, 15:35:28
ปกติแล้ว host จะไม่เปิด connect database ผ่าน ip นะครับ
ชื่อเรื่อง: Re: ถามเรื่องการเชื่อมต่อ SQL ด้วย PHP ครับ
โพสต์โดย: oilaoy ใน 07 กรกฎาคม 2015, 16:11:13
น่าจะลองใช้ localhost ดูนะครับ
  :P :P :P
ชื่อเรื่อง: Re: ถามเรื่องการเชื่อมต่อ SQL ด้วย PHP ครับ
โพสต์โดย: Queue ใน 07 กรกฎาคม 2015, 20:31:06
อ้างถึงHost 'Computer_name' is not allowed to connect to this MySQL

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

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

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

สรุป เขาไม่อนุญาต
ชื่อเรื่อง: Re: ถามเรื่องการเชื่อมต่อ SQL ด้วย PHP ครับ
โพสต์โดย: 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 เข้าไปก็ได้ครับ

:-[
ชื่อเรื่อง: Re: ถามเรื่องการเชื่อมต่อ SQL ด้วย PHP ครับ
โพสต์โดย: marauder ใน 09 กรกฎาคม 2015, 13:28:24
ขอบคุณครับ จะลองดูครับ :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 เข้าไปก็ได้ครับ

:-[