ฉันมีสคริปต์ Python เล็กน้อยเพื่อรวบรวมการบ้านของนักเรียนและคะแนนงานของชั้นเรียนออนไลน์จากตาราง allstudentsAnswers20BE
ใช้งานได้ดีกับหน้าเว็บโฮสติ้งที่ใช้ร่วมกันแบบเก่าของฉัน
บนเซิร์ฟเวอร์คลาวด์ Ubuntu 20.04 ใหม่ ฉันได้รับการปฏิเสธการเชื่อมต่อ
ฉันไม่มีประสบการณ์ในการใช้งานเซิร์ฟเวอร์คลาวด์
ฉันอนุญาตพอร์ต 33060 และ 3306 ใน UFW
ip ของฉันอยู่ที่บ้านไม่ได้รับการแก้ไข
เมื่อฉันเรียกใช้สคริปต์ Python ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามเชื่อมต่อกับเซิร์ฟเวอร์คลาวด์
pymysql.err.OperationalError: (1130, "183.206.16.30' ไม่ได้รับอนุญาต
เชื่อมต่อกับเซิร์ฟเวอร์ MySQL นี้")
netstat แจ้งว่า mysqld กำลังฟัง 33060 และ 3306 ดังนั้นฉันจึงอนุญาตทั้งสองอย่างในไฟร์วอลล์ ufw
การเชื่อมต่อกับเซิร์ฟเวอร์คลาวด์ผ่าน ssh ฉันวิ่ง:
sudo นาโน /etc/mysql/mysql.conf.d/mysqld.cnf
ฉันเปลี่ยนที่อยู่การผูกบรรทัดเป็น 0.0.0.0 (ฉันลองด้วย *)
ฉันรีสตาร์ท mysql: sudo systemctl รีสตาร์ท mysql
ต้องมีอย่างอื่นที่ต้องตั้งค่าฝั่งเซิร์ฟเวอร์
คำแนะนำใด ๆ ที่อาจเป็นไปได้ฉันต้องการสิ่งนี้เพื่อทำงาน
ฉันได้รับข้อมูลนี้ด้วย (สมมติว่า cloud ip ของฉันคือ 123.456.789.123):
pedro@ebs-105422:~$ nc -v -w 2 123.456.789.123 3306
การเชื่อมต่อกับพอร์ต 123.456.789.123 3306 [tcp/mysql] สำเร็จ!
pedro@ebs-105422:~$
นี่หมายความว่า mysqld กำลังฟัง 3530 หรือไม่ หรือว่าเป็น PID ของ mysqld??
pedro@ebs-105422:~$ sudo netstat -tap | grep mysql
tcp 0 0 0.0.0.0:mysql 0.0.0.0:* ฟัง 3530/mysqld
tcp6 0 0 [::]:33060 [::]:* ฟัง 3530/mysqld
pedro@ebs-105422:~$
ด้านล่างมาจาก mysql บนเซิร์ฟเวอร์ ยืนยันพอร์ต 3306
mysql> แสดงตัวแปรโดยที่ตัวแปรชื่อใน ('ชื่อโฮสต์','พอร์ต');
+---------------+------------+
| ชื่อตัวแปร | ค่า |
+---------------+------------+
| ชื่อโฮสต์ | ebs-105422 |
| พอร์ต | 3306 |
+------------+------------+
2 แถวในชุด (0.01 วินาที)
มายเอสคิวแอล>