เซิร์ฟเวอร์ MySql ทำงานกับ localhost เท่านั้น


3

ฉันติดตั้งเซิร์ฟเวอร์ mysql บนเครื่องของฉันและฉันสามารถเชื่อมต่อโดยใช้ MySqlWorkbench เป็น localhost (พอร์ต: 3306) แต่เมื่อฉันเปลี่ยน localhost เป็นชื่อเครื่องของฉันมันไม่ทำงาน ฉันต้องการเข้าถึงฐานข้อมูลจากเครื่องอื่นที่มีเว็บเซิร์ฟเวอร์ของฉันอยู่ดังนั้นการเข้าใช้งานเพราะ localhost จะไม่ช่วย มีอะไรผิดปกติ?

PS ฉันสามารถเข้าถึง Apache ท้องถิ่นเป็น localhost: 8080 เช่นเดียวกับชื่อเครื่อง: 8080 ฉันคาดว่าจะมีพฤติกรรมคล้ายกันกับ MySql


1) ตรวจสอบไฟร์วอลล์ของคุณและตรวจสอบให้แน่ใจว่าอนุญาตการรับส่งข้อมูลขาเข้าบน 3306 2) เรียกใช้ (เป็น root) netstat -ntlup | grep 3306และจดบันทึก 'ที่อยู่ในพื้นที่' มันคือ 0.0.0.0:3306 หรือ 127.0.xy: 3306 (x และ y สามารถเป็นตัวเลขใดก็ได้ <255) ถ้า 127.0.xy ของมันทำตามคำแนะนำเหล่านี้เพื่อให้ฟังการเชื่อมต่อภายนอก (0.0.0.0:3306) howtogeek.com/howto/mysql/switch-mysql-to-listen-on-tcp
Frank Thomas

คำตอบ:


2

คอมพิวเตอร์ที่ได้รับอนุญาตให้เชื่อมต่อกับเซิร์ฟเวอร์ mysql ถูกกำหนดไว้ใน /etc/my.cnf

คุณจะต้องแก้ไขไฟล์เพื่ออนุญาตการเชื่อมต่อจากคอมพิวเตอร์ทุกเครื่อง

[mysqld]
bind-address = localhost #Change from localhost to '0.0.0.0' (all zeros) 
skip-networking   #Comment out this line if it exits
enable-named-pipe #Comment out this line if it exists

ระวังเมื่อคุณเปลี่ยน bind-address จาก localhost เป็น 0.0.0.0 แล้ว mysql จะอนุญาตการเชื่อมต่อจากที่ใดก็ได้ คุณควรล็อคไฟร์วอลล์ของคุณเพื่ออนุญาตเฉพาะเครื่องใน

คุณอาจต้องแก้ไขฐานข้อมูลเพื่ออนุญาตการเชื่อมต่อระยะไกล หาก ip ของเครื่องรีโมตของคุณคือ 192.168.1.100

 GRANT ALL PRIVILEGES ON *.* TO db_user @'192.168.1.100' IDENTIFIED BY 'db_passwd';
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.