เซิร์ฟเวอร์ MySQL ไม่สามารถเข้าถึงได้จากเครื่องระยะไกล


14

ฉันติดตั้งเซิร์ฟเวอร์ MySQL ในเซิร์ฟเวอร์ Ubuntu ในเครื่อง (11.10) ฉันไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์จากเครื่องระยะไกล

เมื่อฉันพยายาม: - nmap localhost มันแสดงต่อไปนี้

PORT STATE SERVICE
22 / tcp open ssh
80 / tcp เปิด http
139 / tcp เปิด netbios-ssn
445 / tcp open microsoft-ds
631 / tcp open ipp
3306 / tcp เปิด mysql

หมายความว่า3306พอร์ต MySQL เปิดใช่ไหม แต่เมื่อฉันลองnmap 192.168.0.50ซึ่งเป็นเซิร์ฟเวอร์ IP ฉันได้รับต่อไปนี้: -

PORT STATE SERVICE
22 / tcp open ssh
80 / tcp เปิด http
139 / tcp เปิด netbios-ssn
445 / tcp open microsoft-ds

หมายความว่าพอร์ตไม่เปิดเมื่อเข้าถึงโดยใช้ IP หรือไม่ ถ้าเป็นเช่นนั้นฉันจะเปิดพอร์ตได้อย่างไร

ฉันลองใช้รหัสต่อไปนี้ แต่ดูเหมือนว่าจะไม่ทำงาน

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

เกิดอะไรขึ้นที่นี่?

คำตอบ:


22

บริการ MySQL ของคุณถูกผูกไว้เพื่อให้บริการ localhost เท่านั้น (การเชื่อมต่อกับอินเตอร์เฟส) นี่คือค่าเริ่มต้นด้วยเหตุผลด้านความปลอดภัย หากคุณต้องการเข้าถึงโดยตรงจากโฮสต์อื่น ๆ มีวิธีการเปิดใช้งานการเข้าถึงระยะไกลไปยัง MySQL บน Ubuntuซึ่งคุณสามารถทำตามได้:

  1. ในฐานะที่เป็น root ให้เปิดของคุณ/etc/mysql/my.cnfหรือ/etc/mysql/mysql.conf.d/mysqld.cnf ด้วยเครื่องมือแก้ไขที่คุณชื่นชอบเช่นเดียวกับในระบบที่แตกต่างกันระบบจะพบว่าแตกต่างกัน
  2. มองหา[mysqld]ส่วนและในนั้นมีbind-addressคำหลัก สิ่งนี้มักจะถูกกำหนดเป็น127.0.0.1- เปลี่ยนให้ตรงกับที่อยู่ IP "ปกติ" ของคุณ
  3. บันทึกไฟล์และโหลดบริการ (เช่นใช้service mysql restart)

จำไว้ว่าคุณต้องเปิดใช้งานผู้ใช้ระยะไกลของคุณเพื่อเข้าถึงฐานข้อมูลจากระยะไกลโดยการตั้งค่า GRANT ที่เหมาะสม - เช่น

GRANT ALL ON mydb.* TO remoteuser@'%' IDENTIFIED BY 'SomePASSWORD';

หมายเหตุ@'%'ซึ่งหมายถึง "จากโฮสต์ใด ๆ "


ดีใจที่ได้อ่าน - และคุณยินดีต้อนรับ!
Izzy

ลิงก์ใช้งานไม่ได้ :(
dino

2
@dino ไม่อีกต่อไป ฉันแก้ไขมันและรวมข้อความที่ตัดตอนมาด้วยดังนั้นถ้ามันตายอีกครั้งขั้นตอนที่จำเป็นยังคงอยู่ที่นี่ ความเลวของฉันฉันไม่ได้ทำตั้งแต่ต้น - แต่อย่างที่คุณเห็นได้จากการประทับเวลานั่นเป็นหนึ่งในคำตอบแรก ๆ ของฉัน เราทุกคนเรียนรู้ :)
Izzy

2
ฟิลด์ที่อยู่ - ผูกอยู่ภายใต้/etc/mysql/mysql.conf.d/mysqld.cnfระบบของฉัน
Eric G

@EricG ขอบคุณสำหรับตัวชี้ คำตอบของฉันคือ 5 ปีที่ผ่านมาดังนั้นการกำหนดค่ามีการเปลี่ยนแปลงเล็กน้อย (และอาจทำให้เป็นแบบแยกส่วนเพิ่มเติม)
อิซซี่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.