ขาดการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ที่ 'การอ่านแพ็กเก็ตการสื่อสารเริ่มต้น' ข้อผิดพลาดของระบบ: 0


128

ฉันได้รับข้อผิดพลาด:

"ขาดการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL เมื่อ 'อ่านแพ็กเก็ตการสื่อสารเริ่มต้นข้อผิดพลาดของระบบ: 0"

ในขณะที่ฉันกำลังจะเชื่อมต่อฐานข้อมูลของฉัน

หากฉันใช้ localhost ทุกอย่างทำงานได้ดี แต่เมื่อฉันใช้ที่อยู่ IP จริงดังต่อไปนี้ได้รับข้อผิดพลาด:

mysql_connect("202.131.xxx.106:xxxx", "xxxx", "xxxxx") or die(mysql_error());

คำตอบ:


104

ใครบางคนที่นี่แสดงให้เห็นว่ามันอาจจะเป็นปัญหาไฟร์วอลล์:

ฉันเพิ่งมีปัญหานี้และพบว่าเป็นไฟร์วอลล์ของฉัน ฉันใช้ PCTools Firewall Plus และไม่อนุญาตให้เข้าถึง MySQL แบบเต็ม พอเปลี่ยนแล้วก็ไม่เป็นไร หวังว่าจะช่วยได้

เป็นไปได้ไหม?

นอกจากนี้ใครบางคนที่นี่แนะนำว่าอาจเป็นเพราะเซิร์ฟเวอร์ MySQL ถูกผูกไว้กับ IP แบบวนกลับ (127.0.0.1 / localhost) ซึ่งจะตัดคุณออกจากการเชื่อมต่อจาก "ภายนอก" ได้อย่างมีประสิทธิภาพ

หากเป็นกรณีนี้คุณต้องอัปโหลดสคริปต์ไปยังเว็บเซิร์ฟเวอร์ (ซึ่งอาจใช้เซิร์ฟเวอร์ MySQL ด้วย) และให้โฮสต์เซิร์ฟเวอร์ของคุณเป็น 'localhost'


7
คุณหมายถึงอะไร localhost? ฉันกำลังประสบปัญหาเดียวกันและใช้ localhost เท่านั้น แอปพลิเคชันอยู่ในเครื่องเดียวกับฐานข้อมูล คุณหมายถึงอะไร localhost?
oneofakind

6
@oneofakind เขาหมายถึงการเชื่อมต่อกับ 'localhost "แทน' 127.0.0.1 '
Alex Holsgrove

2
ฉันมีปัญหาเดียวกันกับ OSX กับ mamp pro ฉันแก้ไขโดยปิด / เปิดใช้งานช่องทำเครื่องหมาย "allow network access to mysql" บนแท็บ mamp pro mysql
Ousmane

43

เปิดไฟล์คอนฟิกูเรชัน mysql ชื่อ my.cnf แล้วลองค้นหา "bind-address" ที่นี่แทนที่การตั้งค่า (127.0.0.1 หรือ localhost) ด้วย ip ของเซิร์ฟเวอร์สดของคุณ (ip ที่คุณใช้ในฟังก์ชัน mysql_connect)

วิธีนี้จะแก้ปัญหาได้อย่างแน่นอน

ขอบคุณ


2
ตรวจสอบให้แน่ใจว่าคุณใช้ bind-address = 127.0.0.1 หรือ localhost เมื่อใช้ ssh tunnel มีปัญหากับ bitnami นี้โดยที่ bind-address คือ machine ip
z2z

1
ปัญหาและแนวทางแก้ไขเดียวกันสำหรับเซิร์ฟเวอร์เฉพาะเดเบียน 10 + MySQL แบบสแตนด์อโลน
Vilq

ควรระบุว่าโดยทั่วไปแล้วอาจเป็นที่นิยมในการผูกบริการ mysql กับ127.0.0.1ที่เกี่ยวข้องดังนั้นจึงไม่สามารถเข้าถึงโดยตรงจากโฮสต์อื่นได้ วิธีนี้ป้องกันการโจมตีแบบ brute force จากระยะไกลและไม่ทำให้เกิดปัญหาด้านความปลอดภัยที่อาจเกิดขึ้นกับเครือข่าย หากแอปพลิเคชันของคุณอยู่ในเครื่องเดียวกัน (ซึ่งเป็นการตั้งค่าโฮสติ้งทั่วไป) ให้ใช้127.0.0.1resp localhostเป็นโฮสต์ mysql และจะทำงานในลักษณะเดียวกับการผูกบริการกับอินเทอร์เฟซภายนอกของคุณและใช้เป็นโฮสต์ mysql หากแอปพลิเคชันของคุณอยู่ที่อื่นให้ใช้เครือข่ายภายในถ้าเป็นไปได้
เดวิด

36

1) อนุญาตให้เชื่อมต่อระยะไกลกับ MySQL แก้ไขไฟล์:

>sudo nano /etc/mysql/my.cnf

บรรทัดแสดงความคิดเห็น:

#bind-address       = 127.0.0.1

รีสตาร์ท MySQL:

>sudo service mysql restart

2) สร้างผู้ใช้สำหรับการเชื่อมต่อระยะไกล

>mysql -uroot -p

CREATE USER 'developer'@'localhost' IDENTIFIED BY 'dev_password';
CREATE USER 'developer'@'%' IDENTIFIED BY 'dev_password';

GRANT ALL ON *.* TO 'developer'@'localhost';
GRANT ALL ON *.* TO 'developer'@'%';

3) ในกรณีของฉันฉันต้องเชื่อมต่อจากระยะไกลจาก Windows ไปยังเครื่อง VirtualBox ด้วย Ubuntu ดังนั้นฉันต้องอนุญาตพอร์ต 3306 ใน iptables:

>iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

1
สำหรับฉันฉันลืมยืนยันที่อยู่ผูกบน my.cnf ขอบคุณ
abkrim

1
สิ่งนี้ช่วยได้ทั้งหมด ขอบคุณ!
osehgol

1
ทำงานได้อย่างสมบูรณ์แบบ แต่ฉันใช้ workbench บน windows จึงไม่ได้ทำขั้นตอนที่ 3 แต่ใช้งานได้ ขอบคุณ!
RohitAneja

แม้ว่าคำสั่งสุดท้ายจะไม่ได้ผลสำหรับฉัน แต่การสร้างผู้ใช้ใหม่ด้วยวิธีของคุณช่วยแก้ปัญหาของฉันได้ ฉันสามารถเข้าถึง mysql บน raspberry pi จากแล็ปท็อปของฉัน ขอบคุณ!
EyyüpAlkış

อย่าลืมว่าFLUSH PRIVILEGESหลังจากสร้างผู้ใช้ใหม่แล้ว
Yew Hong Tat

15

มีปัญหานี้เมื่อตั้งค่าเซิร์ฟเวอร์ทาสใหม่ พบว่าที่อยู่ IP ของเซิร์ฟเวอร์ทาสหายไปจากเซิร์ฟเวอร์หลัก/etc/hosts.allowไฟล์เพิ่มที่อยู่ IP และให้ฉันเชื่อมต่อกับเซิร์ฟเวอร์หลัก

โปรดทราบว่าฉันใช้hosts.allowและhosts.denyเพื่อควบคุมการเข้าถึง


ปัญหาของฉันกับตัวเชื่อมต่อ / c ++ ตอนนี้ถ้าฉันพบได้เฉพาะการตั้งค่าที่ต้องอยู่ในallowเมื่อdenyมีALL: ALL...

สิ่งนี้ช่วยชีวิตของฉันได้จริงๆฉันมีปัญหาในการเชื่อมต่อกับ mysql จากโต๊ะทำงานฉันต้องเพิ่ม "ALL: 127.0.0.1" ไปที่ไฟล์ /etc/hosts.allow และมันก็เริ่มทำงาน
TomášTibenský

ในกรณีของฉัน / etc / hosts มีรายการ (เก่า) ที่ไม่ดีสำหรับโฮสต์ IP เมื่อออก IP ใหม่ IP นั้นจะอยู่ภายใต้ IP เก่าและดูเหมือนจะถูกเพิกเฉย การลบ IP เก่าช่วยแก้ข้อผิดพลาด
David Ramirez

7

ฉันมีปัญหานี้และมันก็จบลงด้วยการที่ผู้ดูแลระบบ sys ก่อนหน้าเปลี่ยนพอร์ตที่ MySQL ทำงานอยู่ MySQL Workbench พยายามเชื่อมต่อกับ 3306 เริ่มต้น แต่เซิร์ฟเวอร์กำลังทำงานบน 20300


1
สิ่งที่ดีสำหรับคำตอบนี้ ปรากฎว่าฉันทำสิ่งนี้กับตัวเอง
ข้อควรระวัง

5

ปัญหาในกรณีของฉันคือ MySQL ถูกผูกไว้กับ lo บน linux เท่านั้น เพื่อแก้ปัญหาฉันได้แก้ไข my.cnf (พบที่ /etc/mysql/my.cnf) การลบบรรทัดที่อยู่ผูก = 127.0.0.1

สิ่งนี้ช่วยให้ mysql เชื่อมโยงกับอินเทอร์เฟซเครือข่ายใด ๆ


5

ข้อผิดพลาดนี้เกิดขึ้นกับฉันขณะพยายามเชื่อมต่อกับ Google Cloud SQL โดยใช้ MySQL Workbench 6.3

หลังจากการค้นคว้าเล็กน้อยฉันพบว่าที่อยู่ IP ของฉันถูกเปลี่ยนโดยผู้ให้บริการอินเทอร์เน็ตและเขาไม่ได้รับอนุญาตใน Cloud SQL

ฉันอนุญาตและกลับไปทำงาน


4

ฉันพบข้อผิดพลาดเดียวกันนี้เมื่อเชื่อมต่อจาก MySQL workbench นี่คือวิธีที่ฉันแก้ไข ไฟล์คอนฟิกูเรชัน /etc/my.cnf ของฉันมีค่าที่อยู่ผูกที่ตั้งไว้เป็นที่อยู่ IP ของเซิร์ฟเวอร์ สิ่งนี้ต้องทำเพื่อตั้งค่าการจำลองแบบ อย่างไรก็ตามฉันแก้ไขได้โดยทำสองสิ่ง:

  1. สร้างผู้ใช้ที่สามารถใช้เพื่อเชื่อมต่อจากที่อยู่การผูกในไฟล์ my.cnf

เช่น

CREATE USER 'username'@'bind-address' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON schemaname.* TO 'username'@'bind-address';
FLUSH PRIVILEGES;
  1. เปลี่ยนค่าชื่อโฮสต์ MySQL ในรายละเอียดการเชื่อมต่อใน MySQL workbench เพื่อให้ตรงกับที่อยู่ผูก

ขอบคุณมากเรามีการจำลองแบบ MySQL และที่อยู่ผูกเป็นที่อยู่ในเครื่อง: 10.0.0.x ฉันดิ้นรนมาหลายวันเพื่อหาวิธีแก้ปัญหานี้
iFadi

3

ปัญหาสำหรับฉันคือการสืบค้น DNS ถูกบล็อกโดย FW ภายในซับเน็ต วิธีแก้ปัญหาคือปิดใช้งานการค้นหา DNS ภายใน MySQL


ฉันสงสัยว่า DNS จะถูกตำหนิในกรณีของฉันเช่นกัน
Zenexer

3

ฉันเพิ่งตั้งค่า mysql บนกล่อง windows ฉันได้รับข้อผิดพลาดของ OP เมื่อพยายามเชื่อมต่อกับไคลเอนต์ Navicat MySql ในกล่องเดียวกัน ฉันต้องระบุ 127.0.0.1 เป็นโฮสต์และได้รับมัน

localhost หรือที่อยู่ IP จริงของเซิร์ฟเวอร์ทั้งสองไม่ทำงาน


3

ข้อผิดพลาดหมายความว่าไม่ได้รับการตอบสนองจากพอร์ตที่คาดว่าจะพบเซิร์ฟเวอร์ สาเหตุมีตั้งแต่การติดต่อกับเครื่องที่ไม่ถูกต้อง (ด้วยสาเหตุหลายประการ) ไปจนถึงเซิร์ฟเวอร์ที่ไม่อยู่ในพอร์ตที่คาดไว้

ตรวจสอบว่าเซิร์ฟเวอร์ของคุณเชื่อมโยงกับพอร์ตใดใน /etc/mysql/my.cnf นั่นสอดคล้องกับสิ่งที่อยู่ในคำสั่งการเชื่อมต่อของคุณหรือไม่ หากตรงกันให้ลองเชื่อมต่อกับ mysql จากเซิร์ฟเวอร์และจากบรรทัดคำสั่งของเครื่องที่คุณใช้งานไคลเอนต์ หากใช้งานได้จากที่เดียวคุณอาจมีปัญหาในการกำหนดค่าไฟร์วอลล์ / เราเตอร์


ฉันไม่คิดว่ามันถูกต้องถ้าไม่มีอะไรฟังในพอร์ตนั้นคุณจะได้รับการตอบสนองERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61)ไม่ใช่Lost connection to MySQL serverข้อความ
Ken Williams

2

ในกรณีของฉันฉันมีทั้งหมด: ทั้งหมดในโฮสต์ไม่ดี การเปลี่ยนสิ่งนี้เป็น ALL: PARANOID แก้ไขปัญหาของฉันเมื่อเชื่อมต่อผ่าน ssh


2

ปัญหาค่อนข้างโง่สำหรับฉัน

ฉันเคยได้รับปัญหาเดียวกันในเครื่อง AWS EC2 Ubuntu (ขณะนี้มีการติดตั้ง MariaDB ไว้ในเครื่อง) ดังนั้นฉันจึงพยายามสร้าง SSH tunneling และมีปัญหาเดียวกัน ดังนั้นฉันจึงพยายาม ssh tunnel เหนือเทอร์มินัล:

ssh -L13306:127.0.0.1:3306 root@ip.address -i my/private/key.pem

และมันบอกฉันว่า:

กรุณาเข้าสู่ระบบในฐานะผู้ใช้ "ubuntu" แทนที่จะเป็นผู้ใช้ "root"

ฉันเปลี่ยนผู้ใช้ ssh จาก root เป็น ubuntu เช่นเดียวกับ ssh config ของฉันและมันก็เชื่อมต่อได้ดี

ดังนั้นตรวจสอบผู้ใช้ที่เชื่อมต่อ SSH ของคุณ

ฉันดูแลเรื่องนี้ดังนั้นเวลาครึ่งชั่วโมงของฉันมากเกินไปดังนั้นฉันหวังว่านี่จะเป็นประโยชน์สำหรับคุณ


2

สำหรับฉันพบไฟล์ config "/etc/mysql/mysql.conf.d/mysqld.cnf" การแสดงความคิดเห็นออกจากที่อยู่การผูกเป็นเคล็ดลับ

ดังที่เราเห็นที่นี่: แทนที่จะข้ามเครือข่ายค่าเริ่มต้นคือตอนนี้ฟังเฉพาะบน localhost ซึ่งเข้ากันได้มากกว่าและปลอดภัยไม่น้อย


สำหรับความประหลาดใจที่ยิ่งใหญ่ที่สุดของฉันสิ่งนี้ทำงานภายใต้ Debian 10 ฉันให้โอกาสมันและได้ผล! แก้ไขการตั้งค่า MySQL sudo nano /etc/mysql/mariadb.conf.d/50-server.cnfและแทนที่จะผมใช้bind-address = 111.112.113.114 bind-address = 127.0.0.1การตั้งค่าอุโมงค์ SSH ถูกตั้งค่าตามที่อธิบายไว้ในhostpresto.com/community/tutorials/…ดีมาก! ขอบคุณ!
klor

1

พบปัญหาเดียวกันนี้ผูกที่อยู่ไปมาโดยไม่มีประโยชน์ วิธีการแก้ปัญหาสำหรับผมที่ได้รับการล้างสิทธิพิเศษ

mysql> FLUSH PRIVILEGES;

1

สำหรับฉันการตั้งค่าbind-address = 0.0.0.0ในmysql/my.cnfทำงาน โดยทั่วไปจะรับฟังที่อยู่ทั้งหมด (แต่ยังคงเป็นพอร์ตเดียว) จากนั้น

และอย่าลืมรีสตาร์ทเซิร์ฟเวอร์ของคุณ: systemctl restart mysql


6
ที่อยู่ / อินเทอร์เฟซทั้งหมด แต่มีเพียงพอร์ตเดียว
Zenexer

1

ฉันเพิ่งมีปัญหาเดียวกัน แต่ในกรณีของฉันฉันแก้ไขได้ด้วย

บริการ mysqld เริ่มต้น


1

อีกหนึ่งเหตุผล ...

ฉันพบเซิร์ฟเวอร์ Ubuntu ซึ่งทุกอย่างได้รับการปรับแต่งและไม่สามารถเชื่อมต่อได้เนื่องจากข้อผิดพลาดเดียวกันนั้น

การตั้งค่านี้อยู่ภายใน /etc/ssh/sshd_config

PermitTunnel no

หลังจากเปลี่ยนเป็น

PermitTunnel yes

ฉันสามารถเชื่อมต่อกับ MySQL DB จากระยะไกลได้


1

ฉันพยายามเชื่อมต่อ db docker containerของฉันบน Ubuntu 18.04 ปัญหาเดียวกัน

ขั้นแรกให้ตรวจสอบอุปกรณ์ของคุณโดยเรียกใช้nmcli devเพื่อตรวจสอบว่าอุปกรณ์docker0เชื่อมต่ออยู่หรือไม่

หากไม่ได้เชื่อมต่อให้ลองรีสตาร์ทบริการนักเทียบท่า:

sudo service docker restart


1

ในกรณีของฉันคือ wifi ของมหาวิทยาลัยปิดกั้นพอร์ต 3306 ฉันสามารถเชื่อมต่อโดยใช้ฮอตสปอตมือถือ

เปลี่ยนเป็นฮอตสปอตมือถือหรือเครือข่ายอื่นและหากใช้งานได้แสดงว่าเครือข่ายเดิมปิดกั้นพอร์ต 3306 หากคุณได้รับข้อผิดพลาดเดียวกันในเครือข่ายมากกว่า 1 เครือข่ายแสดงว่าเป็นข้อมูลเฉพาะสำหรับเครื่องของคุณ


1

Firewalldบล็อกที่อยู่ IP เพื่อให้การเข้าถึงใช้คำสั่งเหล่านี้:

firewall-cmd --permanent --zone = trust --add-source = YOUR_IP / 32

firewall-cmd --permanent --zone = trust --add-port = 3306 / tcp

ไฟร์วอลล์ -cmd - โหลดซ้ำ


0

เมื่อเชื่อมต่อกับ Mysql จากระยะไกลฉันได้รับข้อผิดพลาด ฉันมีคำเตือนนี้ใน/var/log/mysqld.log:

[Warning] IP address 'X.X.X.X' could not be resolved: Temporary failure in name resolution

ฉันเพิ่งเพิ่มบรรทัดนี้ใน/etc/hostsไฟล์:

X.X.X.X some_name

แก้ไขปัญหา! การไม่ใช้งานskip-name-resolveทำให้เกิดข้อผิดพลาดบางอย่างในแอปท้องถิ่นของฉันเมื่อเชื่อมต่อกับ MySQL


0

ฉันมีปัญหาเหมือนกัน ในการแก้ไขฉันเพิ่งเปลี่ยนโฮสต์จาก localhost: 3306 เป็น localhost ดังนั้นข้อผิดพลาดอาจเกิดขึ้นเมื่อคุณแยกพอร์ตที่ไม่เหมาะสมสำหรับการเชื่อมต่อ จะดีกว่าที่จะปล่อยให้เป็นค่าเริ่มต้น


1
อาจเป็นเพราะ mysql ไม่ยอมรับพอร์ตเป็นส่วนหนึ่งของชื่อโฮสต์คุณต้องใช้อาร์กิวเมนต์แทน-P 3306
Clay H

0

สิทธิ์ในการอ่าน - เขียนไดเร็กทอรีฐานข้อมูลยังเป็นปัญหาที่ฉันพบ ตรวจสอบให้แน่ใจว่าแอปพลิเคชันของคุณสามารถ rw ไฟล์ในตำแหน่งฐานข้อมูลได้ ลองใช้ chmod 777 เพื่อทดสอบ


0

ฉันประสบปัญหาเดียวกัน ฉันตรวจสอบและพยายามตั้งค่าAllowTcpForwarding ใช่แต่ใน sshd_config ของฉันหายไปดังนั้นจึงไม่มีความช่วยเหลือฉันไม่ได้เปลี่ยน sshd_config หรือ my.cnf ตรวจสอบให้แน่ใจว่าชื่อโฮสต์ ssh ไม่เหมือนกันกับชื่อโฮสต์ mysql (ใช้ localhost)

ในโต๊ะทำงานเลือก + เพื่อเพิ่มการเชื่อมต่อใหม่และตั้งค่าสิ่งต่อไปนี้:

  • วิธีการเชื่อมต่อ: TCP / IP มาตรฐานผ่าน SSH
  • SSH Hostname: 192.168.0.50:22 (แทนที่ IP และพอร์ตเซิร์ฟเวอร์ SSH ระยะไกล (ทางเลือก))
  • ชื่อผู้ใช้ SSH: sshuser
  • คุณสามารถตั้งรหัสผ่านหรือเพิ่มได้ที่พรอมต์
  • MYSQL Hostname: localhost หรือ 127.0.0.1
  • พอร์ตเซิร์ฟเวอร์ MYSQL: 3306
  • คุณสามารถตั้งรหัสผ่านหรือเพิ่มได้ที่พรอมต์

ทดสอบการเชื่อมต่อ มันควรจะสำเร็จแล้วกดตกลงวิโอล่า!


0

หากไม่มีที่อยู่ผูกในไฟล์การกำหนดค่าของคุณและ mysql โฮสต์บนอินสแตนซ์ AWS โปรดตรวจสอบกลุ่มความปลอดภัยของคุณ ในสภาวะที่เหมาะสมกฎขาเข้าควรยอมรับการเชื่อมต่อทั้งหมดจากพอร์ต 3306 และกฎขาออกควรตอบสนองกลับไปยัง IP ที่ถูกต้องทั้งหมด


0

ฉันทำตามขั้นตอนด้านล่าง 3 ขั้นตอนแล้วได้ผลสำหรับฉัน

  1. bind-address = "YOUR MACHINE IP"ในmy.cnfไฟล์ที่/etc/my.cnf

  2. เริ่มบริการใหม่ตามคำสั่ง: service httpd restart

  3. GRANT ALL PRIVILEGES ON yourDB.* TO 'username'@'YOUR_APPLICATION_IP' IDENTIFIED BY 'YPUR_PASSWORD' WITH GRANT OPTION;


0

ฉันมีข้อผิดพลาดที่คล้ายกัน (เชื่อมต่อกับ MYSQL บน AWs ผ่าน MYSql Workbench) ฉันเคยเชื่อมต่อได้ดีมาก่อนและทันใดนั้นมันก็หยุดทำงานและไม่สามารถใช้งานได้อีก) การเชื่อมต่อของฉันผ่าน SSH ที่ป้องกันโดย keyfile

ปรากฎว่าฉันหมดเวลา ดังนั้นฉันจึงเพิ่มระยะหมดเวลาการเชื่อมต่อ SQL เป็น 30 วินาที (จากค่าเริ่มต้น 10) และทำได้ดีอีกครั้ง สิ่งที่ควรลอง (หากคุณอยู่ในการตั้งค่าที่คล้ายกัน)

  1. คุณสามารถ ssh โดยตรงจากเทอร์มินัลไปยังเซิร์ฟเวอร์ (ตรวจพบปัญหาเกี่ยวกับการอนุญาตไฟล์คีย์ ฯลฯ ) ได้หรือไม่?
  2. จากนั้นคุณสามารถเชื่อมต่อเทอร์มินัลกับ MySQL กับผู้ใช้ / pwd เดียวกันโดยใช้สิ่งที่ต้องการ mysql -u [username] -p [database]หรือไม่? สิ่งนี้จะตรวจสอบปัญหาสิทธิ์ของผู้ใช้ ฯลฯ
  3. หากทั้งสองทำงานได้แสดงว่าพารามิเตอร์ของคุณไม่ใช่ปัญหาและอาจมีปัญหาการหมดเวลาเหมือนกันเช่นฉัน (ยกเว้นว่าไม่เคยระบุข้อผิดพลาดการหมดเวลา แต่ขอให้ตรวจสอบสิทธิ์เป็นต้น)

0

พื้นที่ดิสก์ที่ จำกัด อาจทำให้เกิดข้อผิดพลาดนี้

ตรวจสอบพื้นที่ดิสก์ของคุณ

$ df -h

พยายามเพิ่มพื้นที่หากมีดิสก์ที่ใช้ 100%

ในกรณีของฉัน: ฉันมีกล่อง Vagrant (8.0.1) (Ubuntu 16.04) ความจุดิสก์ mysql ของฉันคือ 10GB ฉันเพิ่มเป็น 20GB

$ sudo lvextend -L20G -r /dev/mapper/homestead--vg-mysql--master

จากนั้นรีสตาร์ท mysql

$ sudo service mysql restart

0

หากคุณประสบปัญหานี้เชื่อมต่อจากระยะไกลให้ไปที่ตัวเลือก mysql ระยะไกลใน cpanel จากนั้นเพิ่ม% ในโฮสต์ (อนุญาตให้ใช้% wildcard)

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