ฉันใช้คำสั่งต่อไปนี้:
mysql -u root -h 127.0.0.1 -p
และข้อความแสดงข้อผิดพลาดคือ:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
ใครสามารถช่วยแก้ไขได้บ้าง
ฉันใช้คำสั่งต่อไปนี้:
mysql -u root -h 127.0.0.1 -p
และข้อความแสดงข้อผิดพลาดคือ:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
ใครสามารถช่วยแก้ไขได้บ้าง
คำตอบ:
หากคุณกำลังใช้ubuntu
คุณต้องใช้ขั้นตอนต่อไปนี้เพื่อหลีกเลี่ยงข้อผิดพลาดนี้ (หากไม่มีการเปิดใช้งานการจำลองแบบ):
vim /etc/mysql/my.cnf
bind-address = 127.0.0.1
โดยใช้สัญลักษณ์ #อัปเดต
ในขั้นตอนที่ 1 ถ้าคุณไม่สามารถหาbind-address
ในmy.cnf
ไฟล์มองหามันใน/etc/mysql/mysql.conf.d/mysqld.cnf
ไฟล์
อัปเดตในกรณีที่เปิดใช้งานการจำลองแบบ MySQL
ลองเชื่อมต่อเซิร์ฟเวอร์ MySQL ที่เซิร์ฟเวอร์IP
MySQL ผูกใน 'my.cnf instead of
localhost หรือ 127.0.0.1`
service mysql restart
ผมออกความเห็นเส้นที่บันทึกไฟล์ไว้แล้ววิ่ง และตอนนี้มันใช้งานได้แล้ว!
bind-address = 127.0.0.1
ใน/etc/mysql/my.cnf
พยายามlocalhost
แทนที่จะ127.0.0.1
เชื่อมต่อหรือในconnection-config
ไฟล์. ทำงานให้ฉันบนเซิร์ฟเวอร์ Debian Squeeze
สิ่งนี้เกิดขึ้นเมื่อคุณลืมเริ่มต้นฐานข้อมูลก่อนที่จะเชื่อมต่อ:
mysql.server start
แล้ว
mysql -u root -p -h 127.0.0.1
sudo service mysqld start
ในอินสแตนซ์ AWS EC2 ของฉันกับ MySQL Community Server
ในกรณีของฉัน (การเชื่อมต่อระยะไกล) ช่วยปิดไฟร์วอลล์บนเซิร์ฟเวอร์
service iptables stop
service firewalld stop
sudo ufw disable
ปัญหานี้อาจเกิดขึ้นเนื่องจากเซิร์ฟเวอร์ MySQL ของคุณไม่ได้ติดตั้งและทำงานอยู่ ในการทำพร้อมรับคำสั่งเริ่มต้นในฐานะผู้ดูแลระบบและป้อนคำสั่ง:
"C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin\mysqld" --install
หากคุณได้รับข้อความ "ติดตั้งบริการสำเร็จ" คุณจะต้องเริ่มบริการ MySQL โดยไปที่หน้าต่าง Services (Task Manager -> Services -> Open Services) ค้นหา MySQL และเริ่มจากแถบนำทางด้านบน แล้วถ้าลองเปิด mysql.exe ก็จะใช้ได้
cd "C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin"
mysqld --install
นอกจากนี้หมายเลขเซิร์ฟเวอร์ขึ้นอยู่กับการดาวน์โหลด
ดูmy.cnf
ไฟล์หากมี[client]
ส่วนและport
เป็นส่วนอื่นที่ไม่ใช่พอร์ตการฟังจริง (ค่าเริ่มต้น 3306) คุณต้องเชื่อมต่อเซิร์ฟเวอร์ด้วยพารามิเตอร์ที่ชัดเจน-P 3306
เช่น
mysql -u รูท -h 127.0.0.1 -p -P 3306
my.cnf
. ไม่มีในเซิร์ฟเวอร์ wamp ในแล็ปท็อปของฉัน
คุณต้องเปลี่ยนพารามิเตอร์ bind-address เป็น 127.0.0.1 ในไฟล์ config mysql (my.ini หรือ my.cnf) หรือใช้พารามิเตอร์ที่กำหนดไว้ที่นั่น
หากไม่ได้ผลคุณควรตรวจสอบว่าบริการ mysql กำลังทำงานอยู่
bind-address =127.0.0.1
my.cnf ปิดใช้งานการเชื่อมต่อระยะไกลไปยัง DB ดังนั้นแม้ว่ามันจะได้ผล (ซึ่งมันไม่ใช่) นั่นก็ไม่ใช่ทางออกที่ดี
ในกรณีที่คุณกำลังรันบนพอร์ตที่ไม่ใช่ค่าเริ่มต้นคุณอาจลองใช้ที่--port=<port num>
ให้มา--skip-networking
คือnot enabled.
ฉันมีปัญหานี้ .... ทำงานใน Win7 และเซิร์ฟเวอร์ wamp ... หลังจากอ่านสิ่งนี้
พบว่า Antivirus Firewall ทำให้เกิดปัญหา
ฉันก็ประสบปัญหาเดียวกัน สิ่งต่อไปนี้ช่วยฉันแก้ไขปัญหาไปที่แผงควบคุม -> เครื่องมือการดูแลระบบ -> บริการภายในสิ่งนี้คุณจะเห็นบริการ MySQL อย่างแน่นอนที่สุด: คลิกขวาและพูดว่าเริ่ม (บังคับให้เริ่ม)
สำหรับผู้ใช้ Docker - เมื่อพยายามเชื่อมต่อ sql ในเครื่องโดยใช้mysql -u root -h 127.0.0.1 -p
และฐานข้อมูลของคุณกำลังทำงานบน Docker container ตรวจสอบให้แน่ใจว่าบริการ mysql ทำงานอยู่ (ตรวจสอบโดยใช้docker ps
และตรวจสอบว่าคุณอยู่ในพอร์ตที่ถูกต้องเช่นกัน) หากคอนเทนเนอร์นั้น คุณจะได้รับข้อผิดพลาดในการเชื่อมต่อ
แนวทางปฏิบัติที่ดีที่สุดคือการตั้งค่า ip ใน/etc/hosts
เครื่องของคุณ:
127.0.0.1 db.local
และเรียกใช้โดย mysql -u root -h db.local -p
ลองอย่าปิด iptables และเปิดพอร์ต 3306
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
หรือsudo ufw allow 3306
ถ้าคุณใช้ ufw.
ตรวจสอบ: netstat -lnp | grep mysql
คุณควรได้รับ sth เช่นนั้น:
cp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2048/mysqld
tcp6 0 0 :::33060 :::* LISTEN 2048/mysqld
unix 2 [ ACC ] STREAM LISTENING 514961 2048/mysqld /var/run/mysqld/mysqld.sock
unix 2 [ ACC ] STREAM LISTENING 514987 2048/mysqld /var/run/mysqld/mysqlx.sock
หากคุณมีค่าว่างให้ลบ # ก่อนพอร์ต = 3306 ในไฟล์ cnf
หากคุณได้ลองทำตามทั้งหมดข้างต้นแล้ว แต่ยังไม่ได้ผล ตรวจสอบไฟร์วอลล์
ฉันพยายามเชื่อมต่อจากเครื่อง windows ไปยัง MySql Server 5.7.32 ที่ติดตั้งบนเครื่อง VirtualBox ที่มี CentOs7 ฉันลองทุกอย่างแล้ว แต่มันใช้งานไม่ได้แม้ว่าฉันจะ ping เครื่องได้ แต่ฉันไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySql ได้
ใน CentOs7 คำสั่งในการตรวจสอบไฟร์วอลล์คือ:
ขั้นตอนที่ 1: ตรวจสอบสถานะของบริการไฟร์วอลล์ของคุณ:
systemctl status firewallid.service
ขั้นตอนที่ 2: ปิดใช้งานบริการไฟร์วอลล์
systemctl stop firewallid.service
ฉันเปลี่ยนไดเร็กทอรีการติดตั้งเมื่อติดตั้งใหม่และใช้งานได้
โปรดตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ MySql ของคุณทำงานบน localhost
บน Linux
วิธีตรวจสอบว่าเซิร์ฟเวอร์ MySql กำลังทำงานอยู่หรือไม่:
sudo service mysql status
ในการเรียกใช้เซิร์ฟเวอร์ MySql:
sudo service mysql start
บน Windows
วิธีตรวจสอบว่าเซิร์ฟเวอร์ MySql กำลังทำงานอยู่หรือไม่:
C:\Windows\system32>net start
หาก MySql ไม่อยู่ในรายการคุณต้องเริ่ม / เรียกใช้ MySql
ในการเรียกใช้เซิร์ฟเวอร์ MySql:
C:\Windows\system32>net start mysql
หวังว่านี่จะช่วยได้
ฉันเพิ่งรีสตาร์ทเซิร์ฟเวอร์ mysql และปัญหาได้รับการแก้ไขใน windows net stop MySQL จากนั้น net start MySQl ubuntu linux sudo service start mysql