ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingถามเรื่องการเชื่อมต่อ SQL ด้วย PHP ครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ถามเรื่องการเชื่อมต่อ SQL ด้วย PHP ครับ  (อ่าน 977 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
marauder
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 65



ดูรายละเอียด เว็บไซต์
« เมื่อ: 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>';
}
?>
บันทึกการเข้า

เที่ยวภูเก็ต เที่ยวพังงา เที่ยวกระบี่
@Roverpost
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 89
ออฟไลน์ ออฟไลน์

กระทู้: 1,816



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 07 กรกฎาคม 2015, 15:35:28 »

ปกติแล้ว host จะไม่เปิด connect database ผ่าน ip นะครับ
บันทึกการเข้า

Shibot โปรแกรมแชทบอท พร้อมระบบไลฟ์สด ที่สามารถเพิ่มยอดขายได้จริง
oilaoy
Newbie
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 63



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 07 กรกฎาคม 2015, 16:11:13 »

น่าจะลองใช้ localhost ดูนะครับ
  Tongue Tongue Tongue
บันทึกการเข้า
Queue
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 106
ออฟไลน์ ออฟไลน์

กระทู้: 4,296



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 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 น่าจะเป็น คนละเครื่อง

สรุป เขาไม่อนุญาต
บันทึกการเข้า

Nomkhonwaan
คนรักเสียว
*

พลังน้ำใจ: 31
ออฟไลน์ ออฟไลน์

กระทู้: 198



ดูรายละเอียด
« ตอบ #4 เมื่อ: 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 เข้าไปก็ได้ครับ

 Embarrassed
บันทึกการเข้า
marauder
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 65



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 09 กรกฎาคม 2015, 13:28:24 »

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

 Embarrassed
บันทึกการเข้า

เที่ยวภูเก็ต เที่ยวพังงา เที่ยวกระบี่
หน้า: [1]   ขึ้นบน
พิมพ์