การเชื่อมต่อ Sequel Pro และ MySQL ล้มเหลว


95

ฉันเพิ่งติดตั้ง mysql บน mac จาก Homebrew

brew install mysql

mysql -V

mysql  Ver 8.0.11 for osx10.13 on x86_64 (Homebrew)

จากเทอร์มินัลมันใช้งานได้และฉันสามารถเข้าสู่ระบบ mysql ได้ แต่จาก Sequel Pro มันบอกว่า

ป้อนคำอธิบายภาพที่นี่

ไม่สามารถเชื่อมต่อกับโฮสต์ 127.0.0.1 หรือคำขอหมดเวลา

ตรวจสอบให้แน่ใจว่าที่อยู่ถูกต้องและคุณมีสิทธิ์ที่จำเป็นหรือลองเพิ่มระยะหมดเวลาการเชื่อมต่อ (ปัจจุบันคือ 10 วินาที)

MySQL กล่าวว่า: ไม่สามารถโหลดปลั๊กอินการตรวจสอบสิทธิ์ 'caching_sha2_password' ได้: dlopen (/usr/local/lib/plugin/caching_sha2_password.so, 2): ไม่พบรูปภาพ

คิดไม่ออกว่าฉันขาดอะไรไป

คำตอบ:


183

เนื่องจาก Sequel Pro ยังไม่พร้อมสำหรับการเข้าสู่ระบบผู้ใช้แบบใหม่เนื่องจากสถานะข้อผิดพลาด: ไม่มีไดรเวอร์ แก้ไขด่วนสำหรับการติดตั้งที่ไม่ใช่ homebrew:

Apple Logo > System Preferences > MySQL > Initialize Databaseจากนั้นพิมพ์รหัสผ่านใหม่ของคุณและเลือก 'ใช้รหัสผ่านเดิม'

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

mysql + homebrew

โดยทั่วไปคุณจะต้องดำเนินการบางอย่างด้วยตนเองอย่างไรก็ตามข้อมูลฐานข้อมูลของคุณจะไม่ถูกลบเหมือนในโซลูชันด้านบน

  • ไปที่ไฟล์ [my.cnf] [1] และในส่วน[mysqld]เพิ่มบรรทัด:

    default-authentication-plugin=mysql_native_password

  • ล็อกอินเข้าสู่เซิร์ฟเวอร์ mysql จาก terminal: run mysql -u root -pจากนั้นภายในเชลล์รันคำสั่งนี้ (แทนที่[รหัสผ่าน]ด้วยรหัสผ่านจริงของคุณ)

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[password]';

  • ออกจากเชลล์ MySQL ด้วยและเรียกใช้exitbrew services restart mysql

ควรทำงาน.


my.cnf

ไฟล์ my.cnf อยู่ใน /etc/my.cnf บน Unix / Linux


14
ฉันไม่พบ MySQL ใน System Preferences
Hattori Hanzō

2
ขอบคุณสำหรับคำอธิบาย แต่ไม่พบmy.cnfไฟล์ในเครื่องของฉัน (macOS High Sierra 10.13.5)
Hattori Hanzō

2
หากไม่มีไฟล์ดังกล่าวคุณจะต้องสร้างขึ้นมา: โปรดดูที่หัวข้อนี้: stackoverflow.com/questions/7973927/…
Maciej Kwas

14
สิ่งนี้ใช้ได้ผลดีกับการbrew install mysqlใช้งานสด/usr/local/etc/my.cnf
mintwhip

5
ฉันไม่ได้ใช้รหัสผ่านดังนั้นฉันจึงใช้ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';- สิ่งนี้ใช้ได้กับฉัน
Vincent Tang

33

TL; DR: Sequel Pro หมดตั้งแต่ปี 2016 อย่าดาวน์เกรด DB ของคุณเพราะเครื่องมือ ไปยังเครื่องมืออื่น

อัปเดต 2020: Sequel Pro ตายอย่างเป็นทางการ แต่ยังมีชีวิตอยู่อย่างไม่เป็นทางการ! คุณสามารถค้นหางานสร้าง " ทุกคืน " ที่ไม่มีปัญหานี้ (เช่นรองรับ Mysql 8 auth) ที่นี่: https://sequelpro.com/test-builds


โซลูชันอื่น ๆ ทั้งหมดที่นี่แนะนำให้เปลี่ยนการตั้งค่า DB ของคุณ (ทำให้ปลอดภัยน้อยลงตามที่ MySQL โฆษณา) สำหรับเครื่องมือที่คุณใช้ นั่นไม่เป็นที่ยอมรับสำหรับฉัน

ฉันเป็นแฟนตัวยงของ Sequel Pro มาโดยตลอดแม้กระทั่งบริจาคให้กับมัน แต่ด้วยทุกคนรักและความรักของฉันฉันขอโทษถ้าเครื่องมือไม่ได้มีการเปิดตัวใด ๆตั้งแต่ปี 2016 YOLO และฉันต้องไปต่อ!

ทางเลือกที่ฉันพบ (จากhttps://stackoverflow.com/a/55235533/2321594ขอบคุณ @arcseldon) คือDBeaverซึ่งรองรับวิธีการพิสูจน์ตัวตนใหม่ของ MySQL 8 (ไม่ใช่แบบเดิม)

ปล. เคล็ดลับเฉพาะในด้านเครื่องมือที่ไม่ได้ด้าน DBคือเมื่อคุณกำลังสร้างการเชื่อมต่อ MySQL 8 คุณอาจจำเป็นต้องไปที่ "คุณสมบัติของไดร์เวอร์" (ต่อมาสามารถพบได้ในการแก้ไขการเชื่อมต่อ) และเปิดค่าของการallowPublicKeyRetrievaltrue

ฉันต้องการสิ่งนี้เพื่อเชื่อมต่อกับคอนเทนเนอร์ MySQL ที่สร้างโดยใช้ Docker หากต้องการให้ IP ของ MySQL ปรากฏแก่ภายนอกสำหรับแอปพลิเคชันอื่น ๆ ในระบบนิเวศของคุณ (ไม่ใช่แค่เครื่องมือนี้) คุณควรสร้างผู้ใช้ใหม่ใน MySQL หรือส่งผ่าน-e MYSQL_ROOT_HOST=%ในเวลาทำงานหรือเป็น ENV


ฉันเชื่อว่า @Aidin คุณให้คะแนนฉันเพียงเพราะคำตอบของฉันไม่สามารถแก้ปัญหา OP ได้ มันเป็นเพียงการพัฒนาในพื้นที่และการตั้งค่าในพื้นที่แล้วประเด็นคืออะไร? ฉันต้องออกจากซอฟต์แวร์ที่ฉันคุ้นเคยจริง ๆ และฉันชอบที่จะทำงานด้วยเพียงเพราะคุณพูดเช่นนั้นหรือไม่?
Maciej Kwas

5
กรุณาอย่าใช้มันเป็นส่วนตัว @MaciejKwas แม้จะให้คำอธิบายเพิ่มเติมที่นี่ซึ่งฉันขอขอบคุณ แต่ฉันก็ยังคงยืนหยัดในการโหวตของฉัน เหตุผลหลักสามประการคือ 1) ไม่แนะนำให้รักษาการตั้งค่าที่แตกต่างกันระหว่าง dev / prod ในการพัฒนาซอฟต์แวร์สมัยใหม่ มันเป็นในความเป็นจริงปัจจัย X ของ12factor.net/dev-prod-parity 2) ผู้คนสามารถใช้เครื่องมือเหล่านี้เพื่อตรวจสอบผลิตภัณฑ์ได้เช่นกัน คุณสามารถสร้าง ssh-tunnel / proxy และไปที่ prod DB ของคุณผ่านเครื่องมือ GUI ในกรณีเช่นนี้การดาวน์เกรด DB auth ไม่ใช่ทางเลือก 3) การไม่ปรับตัวเพื่อเปลี่ยนแปลงและอัปเกรดเป็นสิ่งที่ฉันไม่ให้ความสำคัญโดยส่วนตัว
Aidin

1
ฉันกลับมาที่โปรเจ็กต์ MySQL ฉันไม่ได้วิ่งในพื้นที่มาสองสามปีแล้ว b / c มันเป็นร็อคและฉันเสียใจมากที่พบว่า sequel pro นั้นตายไปแล้ว :(
Catfish

เลือกไดรเวอร์ MySQL +8 ใน DBeaver ด้วยเนื่องจากมีไดรเวอร์หลายตัวให้เลือก ในคุณสมบัติไดรเวอร์ตั้งค่า allowPublicKeyRetrieval เป็น true และบันทึก
Peheje

18
  1. สมมติว่าคุณไม่มีการกำหนดค่าmysqlให้สะท้อนสิ่งต่อไปนี้เพื่อ~/.my.conf
[mysqld]
default-authentication-plugin=mysql_native_password
  1. ลงชื่อเข้าใช้ mysqlด้วยmysql -u root -p
  2. ตั้งรหัสผ่านผู้ใช้รูทโดยALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]';ที่[PASSWORD]รหัสผ่านที่คุณเลือก
  3. รีสตาร์ทmysqlด้วยเช่นbrew services restart mysql

8

Sequel Pro หยุดทำงานอย่างเป็นทางการและไม่รองรับคุณสมบัติ MySql ที่ใหม่กว่าอีกต่อไป แต่ข่าวดีก็คือว่ามันถูกแทนที่ด้วยผลสืบเนื่อง Aceซึ่งมีอยู่ในGitHubและร้าน App app เป็นค่าใช้จ่ายและดูเหมือนทดแทนอย่างเป็นทางการสำหรับผลสืบเนื่อง Pro เป็นโพสต์ที่ถูกสร้างขึ้นโดยหนึ่งในการทำงานร่วมกันของผลสืบเนื่องโปร

Ps. ฉันตัดสินใจโพสต์สิ่งนี้เป็นคำตอบเนื่องจากคนอื่นไม่ได้พูดถึงว่าตอนนี้มีการเปลี่ยน Sequel Pro ที่เป็นปัจจุบันแล้ว


ขอบคุณสำหรับข่าวชื่นชมมาก
Hattori Hanzō

ในที่สุด! รอสักครู่
จอนนี่

6

หากคุณเชื่อมต่อกับ MySQL ผ่าน root@127.0.0.1 ตรวจสอบให้แน่ใจว่าคุณได้รีเซ็ตรหัสผ่านด้วย!

แก้ไขผู้ใช้ 'root'@'127.0.0.1' ระบุด้วย mysql_native_password BY '[รหัสผ่าน]';


ฉันได้รับ:ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 50, found 49. Created with MySQL 80012, now running 80013. Please use mysql_upgrade to fix this error.
Chance Smith

ลองใช้ที่เทอร์มินัล: mysql_upgrade --force -uroot -p
Xeno

mysql_upgrade เลิกใช้งานแล้วและใช้งานไม่ได้ให้ใช้ mysqld --upgrade = FORCE แทน
ilovecookiez11

1

หากใครประสบปัญหานี้และติดตั้งMySQL version >8ผ่านการ.dmgดาวน์โหลดจากลิงค์ทางการ ในกรณีนี้โปรดใช้แนวทางนี้


1
การใช้รหัสผ่านแบบเก่าใช้ได้ผลกับฉัน ขอบคุณ!
Richard Witherspoon

1

มันทำงานให้ฉัน หากคุณได้รับข้อผิดพลาดนี้:

ไม่สามารถเชื่อมต่อกับโฮสต์ 127.0.0.1 หรือคำขอหมดเวลา

ตรวจสอบให้แน่ใจว่าที่อยู่ถูกต้องและคุณมีสิทธิ์ที่จำเป็นหรือลองเพิ่มระยะหมดเวลาการเชื่อมต่อ (ปัจจุบันคือ 10 วินาที)

MySQL กล่าวว่า: ไม่สามารถโหลดปลั๊กอินการตรวจสอบความถูกต้อง 'caching_sha2_password': dlopen (/usr/local/lib/plugin/caching_sha2_password.so, 2):

โปรดลองวิธีนี้

ป้อนคำอธิบายภาพที่นี่


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