ไม่สามารถโหลดปลั๊กอินการตรวจสอบความถูกต้อง 'caching_sha2_password'


435

ฉันกำลังเชื่อมต่อ MySQL - 8.0 กับ MySQL Workbench และได้รับข้อผิดพลาดด้านล่าง:

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

ฉันได้ลองใช้เครื่องมือไคลเอนต์อื่นเช่นกัน

ทางออกสำหรับเรื่องนี้?


2
คุณอาจสามารถแก้ไขปัญหานี้ได้หากคุณกำหนดค่า MySQL 8.0 ให้ทำงานในโหมด mysql_native_password
Raymond Nijland

6
ถูกต้อง MySQL Workbench ต้องการการอัพเดตตัวเชื่อมต่อเพื่อให้สามารถทำงานกับรหัสผ่านแคช sha2 (เร็ว ๆ นี้)
Mike Lischke

7
ฉันตั้งค่าเริ่มต้นการเข้าสู่ระบบเป็นเนทิฟและรีสตาร์ทปัญหายังคงอยู่และฉันไม่สามารถเข้าสู่ระบบเพื่อสร้างผู้ใช้ใหม่ น่าแปลกใจที่ในปี 2018 Mysql ที่ติดตั้งและโต๊ะทำงานไม่ได้หมด การควบคุมคุณภาพต่ำ
ChrisR

1
ฉันไม่รู้ว่าคุณได้รับความประทับใจตรงไหนจากจะไม่มี libql client 32 บิตอีกต่อไป แต่นั่นไม่เป็นความจริง สิ่งที่เป็นจริงคือ MySQL Workbench ไม่ได้มาพร้อมกับรุ่น 32 บิตอีกต่อไป
Mike Lischke

2
คำตอบเหล่านั้นแนะนำให้ใช้การเข้ารหัสที่อ่อนแอกว่าไม่ใช่วิธีที่ถูกต้อง ใช้ลูกค้าอื่น ๆ เช่นtableplus
ohkts11

คำตอบ:


279

หมายเหตุ: สำหรับ MAC OS

  1. เปิด MySQL จากการตั้งค่าระบบ> เริ่มต้นฐานข้อมูล>
  2. พิมพ์รหัสผ่านใหม่ของคุณ
  3. เลือก 'ใช้รหัสผ่านดั้งเดิม'
  4. เริ่มต้นเซิร์ฟเวอร์อีกครั้ง
  5. ตอนนี้เชื่อมต่อ MySQL Workbench

คำอธิบายรูปภาพ


สิ่งนี้ช่วยใน OSX
Salam

2
งานนี้ขอบคุณ ฉันคิดว่ามันใช้งานได้เพราะ MySQL workbench ใช้การเข้ารหัสรหัสผ่านดั้งเดิมเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ DB สามารถทำได้ในขณะที่ติดตั้ง MySQL และเลือกการเข้ารหัสแบบดั้งเดิมแทนการเข้ารหัสรหัสผ่านที่แนะนำ
monkSinha

1
mysql ของบางเวอร์ชั่นมี pannel ที่แตกต่างกันและมันใช้ไม่ได้
Michael Yang

8
การโฆษณาเพื่อกลับไปใช้การรับรองความถูกต้องที่เก่ากว่าและปลอดภัยน้อยไม่ใช่ทางออกที่ดีเลย
Mike Lischke

63
ฉันไม่มี MySQL ในการตั้งค่าระบบ
JavaRunner

247

คุณสามารถเปลี่ยนการเข้ารหัสของรหัสผ่านเช่นนี้

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';

33
เกิดอะไรขึ้นถ้า OP ต้องการใช้วิธีการตรวจสอบความถูกต้องใหม่ล่าสุด
LibertyPaul

@twocold เป็นสคริปต์ค้นหาที่ดี + 1
Md Haidar Ali Khan

โปรดทราบว่าชื่อผู้ใช้และรหัสผ่านของคุณควรอยู่ในเครื่องหมายคำพูดเดียวตามที่แสดงในรหัสโดย @twocold
เมทริกซ์

@twocold คุณจะ "เลิกทำ" ALTER USER ด้านบนกลับไปยังมาตรฐาน MySQL 8.0 (ระดับการเข้ารหัสใหม่) ได้อย่างไรเมื่อคุณทำเช่นนั้นแล้วมันไม่ทำงาน?
Will Belden

1
@BrianFitzGerald มัน "caching_sha2_password" เชื่อมโยงที่นี่หรือที่นี่
Yan Karin

114

สำหรับ Windows 10:

เปิดพรอมต์คำสั่ง:

cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"

C:\Program Files\MySQL\MySQL Server 8.0\bin> mysql -u root -p
Enter password: *********

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newrootpassword';
Query OK, 0 rows affected (0.10 sec)

mysql> exit

หรือคุณสามารถเปลี่ยนการกำหนดค่าmy.ini ได้ดังต่อไปนี้:

[mysqld]

default_authentication_plugin=mysql_native_password

รีสตาร์ทเซิร์ฟเวอร์ MySQL และเปิด Workbench อีกครั้ง


1
การเปลี่ยน my.ini จะไม่ทำงานสำหรับฉัน - แต่การเปลี่ยนพรอมต์คำสั่งทำได้
amelvin

การเปลี่ยน my.ini สามารถแก้ไขปัญหาของฉันได้ ขอบคุณ
berkant

my.iniตำแหน่งไฟล์: stackoverflow.com/a/20311286/923560
Abdull

ฉันแค่ต้องการที่จะทราบว่าการกำหนดค่าจะต้องทำในเซิร์ฟเวอร์ที่คุณต้องการเชื่อมต่อและ ALTER USER ทำงานให้ฉันเชื่อมต่อจาก Windows ไปยังเซิร์ฟเวอร์ mysql ระยะไกล
Alcides

ไม่ จำกัด เฉพาะ Windows 10
Geza Turi

76

คุณสามารถเปลี่ยนการเข้ารหัสของรหัสผ่านของผู้ใช้โดยการเปลี่ยนผู้ใช้ด้วยคำสั่ง Alter ด้านล่าง:

เปลี่ยนแปลง 'ชื่อผู้ใช้' @ 'ip_address' ระบุด้วย mysql_native_password BY 'รหัสผ่าน';

หรือ

เราสามารถหลีกเลี่ยงข้อผิดพลาดนี้ได้โดยทำให้มันทำงานกับปลั๊กอินรหัสผ่านเก่า:

ขั้นแรกเปลี่ยนปลั๊กอินการรับรองความถูกต้องในไฟล์ my.cnf สำหรับไฟล์ Linux / my.ini ใน Windows :

[mysqld]

default_authentication_plugin = mysql_native_password

รีสตาร์ทเซิร์ฟเวอร์ mysql เพื่อทำการเปลี่ยนแปลงและลองเชื่อมต่อผ่าน MySQL กับไคลเอนต์ mysql ใด ๆ

หากยังไม่สามารถเชื่อมต่อและรับข้อผิดพลาดด้านล่าง:

Unable to load plugin 'caching_sha2_password'

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

ขอบคุณ


5
แน่นอนมันไม่ใช่ทางออกของปัญหาที่เกิดขึ้นกับปลั๊กที่ขาดหายไป
LibertyPaul

1
มันคือ. ปัญหาคือซอฟต์แวร์การจัดการ DB ยังไม่รองรับ ดังนั้นหากคุณไม่ได้เป็นนักพัฒนาปรับแต่ง mysql นี่เป็นวิธีแก้ปัญหาของคุณในตอนนี้
Kevin Gagnon

ทำงานให้ฉัน ขอบคุณ
Lucas Araújo

ส่วนเกี่ยวกับการสร้างผู้ใช้ใหม่หลังจากเพิ่มการตั้งค่าสถานะเป็นสิ่งสำคัญ
ญี่ปุ่น

70

ปัจจุบัน (บน 2018/04/23) คุณต้องดาวน์โหลดรุ่นที่กำลังพัฒนา GAคนจะไม่ได้ทำงาน

ฉันไม่สามารถเชื่อมต่อกับ GA เวอร์ชันล่าสุด (6.3.10) ได้

มันทำงานร่วมกับmysql-workbench-community-8.0.11-rc-winx64.msi(จากhttps://dev.mysql.com/downloads/workbench/ , แท็บการพัฒนารุ่น )


4
นี่คือคำตอบที่ถูกต้องจริง ๆ แล้ว: MySQL 8.0 ต้องการ MySQL Workbench 8.0 ซึ่งน่าเสียดายที่ยังคงอยู่ในโหมดเบต้า แต่เมื่อติดตั้งแล้วคุณสามารถใช้การเข้ารหัสรหัสผ่าน SHA ใหม่ได้โดยไม่จำเป็นต้องเปลี่ยนอะไรเลย
Cristi S.

ไม่ใช่รุ่นเบต้า แต่เป็นตัวรับการปลดปล่อย (RC) รุ่น GA (พร้อมใช้งานทั่วไป) กำลังจะเปิดตัวเร็ว ๆ นี้
Mike Lischke

ความคิดที่ดีที่สุดสำหรับฉัน
วอย Forchal

2
ยังคงเป็นกรณีนี้ การติดตั้งเวอร์ชัน GA ยังคงทำให้ไม่สามารถเข้าสู่ระบบได้โดยใช้การเข้ารหัสรหัสผ่านที่แนะนำ ไม่มีคำเตือนว่ารุ่น GA ทำงานได้กับการตรวจสอบสิทธิ์แบบเดิมเท่านั้น
Donald Rich

2
อย่างน้อยใน MacOS เวอร์ชัน GA ปัจจุบันคือ 8.0.12 (2018/08/13) และแก้ปัญหาได้! ขอบคุณ!
Bruno Silvano

63

ฉันมีปัญหาเดียวกัน แต่คำตอบของ Aman Aggarwal ไม่ได้ผลสำหรับฉันกับ Docker container ที่ใช้ mysql 8.X ฉันเข้าสู่ระบบในภาชนะ

docker exec -it CONTAINER_ID bash

จากนั้นเข้าสู่ mysql เป็น root

mysql --user=root --password

ป้อนรหัสผ่านสำหรับรูท (ค่าเริ่มต้นคือ 'รูท') ในที่สุดเรียกใช้:

ALTER USER 'username' IDENTIFIED WITH mysql_native_password BY 'password';

คุณทุกชุด.


ดูเหมือนว่าอาจเป็นคำตอบที่ดีสำหรับสิ่งที่ฉันกำลังมองหา แต่ฉันไม่รู้ว่า "นี่" คืออะไร คุณหมายถึงคำตอบที่ยอมรับหรือไม่ หรืออันอื่น ...
Zach Smith

1
ใช่ @ZachSmith "นี่" หมายถึงผู้ตอบที่ได้รับการยอมรับ
axelferreira

วิธีการเกี่ยวกับdocker exec -it CONTAINER_ID mysql --user=root --passwordแทนของทั้งสองคำสั่งที่ต้องพึ่งพาการปรากฏตัวของbashเปลือก (ซึ่งก็ไม่แน่ใจในอนาคต)?
Eric

สิ่งนี้ใช้ไม่ได้กับ sequelpro 1.1.2 โดยใช้ docker desktop 2.0.3.0 (mac) คำสั่งทั้งหมดใช้งานได้ แต่สืบเนื่องมาจากข้อผิดพลาดในการเข้าสู่ระบบโดยใช้ mysql: ล่าสุด (v8.0.15)
arcseldon

ดังที่คนอื่น ๆ รายงานโดยใช้ mysql 5.7 ทำงานได้โดยไม่ต้องใช้อะไรอีกต่อไป:docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7
arcseldon

47

ตกลงเสียเวลามากกับเรื่องนี้ดังนั้นนี่คือบทสรุป ณวันที่ 19 มีนาคม 2019

หากคุณพยายามใช้ภาพ Docker โดยเฉพาะกับMySql 8+จากนั้นใช้SequelProเพื่อเข้าถึงฐานข้อมูลของคุณที่เรียกใช้บนคอนเทนเนอร์นักเทียบท่านั้นแสดงว่าคุณโชคไม่ดี

ดูที่ปัญหา sequelpro 2699

การตั้งค่าของฉันคือ sequelpro 1.1.2 โดยใช้ docker desktop 2.0.3.0 (mac - mojave) และลองใช้ mysql: ล่าสุด (v8.0.15)

ตามที่คนอื่น ๆ รายงานการใช้ mysql 5.7 ทำงานได้โดยไม่ต้องใช้อะไร

docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7

แน่นอนว่าเป็นไปได้ที่จะใช้ MySql 8+ บนตัวเทียบท่าและในสถานการณ์นั้น (ถ้าจำเป็น) คำตอบอื่น ๆ ที่มีให้ที่นี่สำหรับcaching_sha2_passwordปัญหาประเภทใช้งานได้ แต่ผลที่ตามมาคือไม่ไปกับ MySql 8+

สุดท้ายผมทอดทิ้ง sequelpro (เพื่อนที่เชื่อถือได้จากด้านหลังใน 2013-2014) และติดตั้งแทนDBeaver ทุกอย่างทำงานนอกกรอบ สำหรับนักเทียบท่าฉันใช้:

docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:latest --default-authentication-plugin=mysql_native_password

คุณสามารถดูที่ฐานข้อมูล mysql ได้อย่างรวดเร็วโดยใช้:

docker exec -it mysql1 bash

mysql -u root -p

show databases;

1
ขอบคุณมากที่แบ่งปันสิ่งนี้ ฉันพยายามคำสั่งผสมเดียวกันหลังจากลบคอนเทนเนอร์ dev MySQL ของฉันโดยไม่ตั้งใจ
martn_st

1
เศร้ามากที่ Sequel Pro ไม่ได้พัฒนาอย่างแข็งขันอีกต่อไป :( ข่าวล่าสุดลงวันที่ 3 เมษายน 2559 ในขณะที่มันเป็นปี 2019 แล้วมันเป็นเครื่องมือที่ดีที่สุดที่ฉันเคยเห็นสำหรับนักสำรวจ MySQL
Oleksii Shnyra

@OleksiiShnyra จริงยังไม่มีการเปิดตัวการผลิตเป็นเวลาสองสามปี sequelpro.com/test-buildsbrew cask install homebrew/cask-versions/sequel-pro-nightlyและผ่าน
Peter W

มีวิธีแก้ไขปัญหาที่อาจทำให้การทำงานของ SequelPro สำหรับผู้ที่สามารถเข้าสู่ระบบผ่านทางบรรทัดคำสั่ง ( mysqlไคลเอนต์) และALTERตาราง myslq.user ของพวกเขาบันทึกไว้ที่นี่: github.com/sequelpro/sequelpro/sequelpro/issues/ …
ปีเตอร์ W

หากคุณอยู่บน MySQL 8 และไม่ต้องการลดระดับเป็นmysql_native_passwordคุณสามารถติดตามได้ที่: stackoverflow.com/a/56402217/2321594
Aidin

46

ฉันกำลังติดตั้ง MySQL บนพีซีที่ใช้ Windows 10 โดยใช้ " MySQL Web Installer " และกำลังเผชิญปัญหาเดียวกันขณะที่พยายามเชื่อมต่อโดยใช้ MySQL workbench ฉันแก้ไขปัญหาโดยกำหนดค่าเซิร์ฟเวอร์ใหม่ในหน้าต่างโปรแกรมติดตั้ง

MySQL Web Installer - หน้าจอหลัก

คลิกที่ตัวเลือก "กำหนดค่าใหม่" ซึ่งจะอนุญาตให้กำหนดค่าเซิร์ฟเวอร์ใหม่ คลิกที่ "ถัดไป" จนกว่าคุณจะถึง "วิธีการรับรองความถูกต้อง"

ตัวติดตั้ง MySQL - วิธีการรับรองความถูกต้อง

เมื่ออยู่บนแท็บนี้ให้ใช้ตัวเลือกที่สอง "ใช้วิธีการรับรองความถูกต้องดั้งเดิม (ใช้งานร่วมกับ MySQL 5.x ได้)"

เก็บทุกอย่างไว้เหมือนเดิมและนั่นคือวิธีที่ฉันแก้ไขปัญหาของฉัน


1
ฉันคลายซิปด้วยตนเอง mysql-8.0.11-winx64.zip ด้วยตนเองและไม่สามารถแก้ปัญหาได้ง่าย "caching_sha2_password ไม่สามารถโหลดได้" อย่างไรก็ตามการใช้ mysql-installer-community-8.0.11.0.msi และฉันทำตามคำแนะนำข้างต้น MySQL Workbench 8.0.11 สามารถเข้าสู่ระบบเซิร์ฟเวอร์ MySQL 8.0.11
oraclesoon

38

แบบนี้?

docker run -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql --default-authentication-plugin=mysql_native_password
mysql -uroot --protocol tcp

ลองใช้ PWD

https://github.com/GitHub30/docs/blob/change-default_authentication_plugin/mysql/stack.yml

หรือคุณ shoud ใช้ MySQL Workbench 8.0.11


3
เพิ่ม --default-authentication-plugin = mysql_native_password ทำงานเหมือนมีเสน่ห์ <3 ขอบคุณ
Thomas Webber

21
  • เปิดไคลเอนต์ Command Line ของ MySQL

  • สร้างผู้ใช้ใหม่ด้วยรหัสผ่านใหม่

เมื่อพิจารณาตัวอย่างของพา ธ ไปยังโฟลเดอร์ bin ด้านบนนี่คือรหัสที่คุณต้องใช้ในพรอมต์คำสั่งทีละบรรทัด:

cd C:\Program Files\MySQL\MySQL Server 5.7\bin
MySQL -u root -p    
current password...***  
CREATE USER 'nativeuser'@'localhost'  
IDENTIFIED WITH mysql_native_password BY 'new_password';
  • จากนั้นคุณสามารถเข้าถึง Workbench อีกครั้ง (คุณควรจะสามารถทำเช่นนั้นได้หลังจากสร้างการเชื่อมต่อ localhost ใหม่และใช้ข้อมูลประจำตัวใหม่เพื่อเริ่มใช้โปรแกรม)

ตั้งค่าการเชื่อมต่อโลคัลโฮสต์ใหม่ด้วยชื่อผู้ใช้ที่กล่าวถึงข้างต้น (ผู้ใช้เนทีฟ) เข้าสู่ระบบโดยใช้รหัสผ่าน (new_password)

ภาพ

มารยาท: UDEMY คำถามที่พบบ่อยตอบโดย Career365 ทีม


สิ่งนี้ใช้ได้ผล ทำไม? ผมได้รับข้อผิดพลาดนี้เมื่อพยายามที่จะเชื่อมต่อกับrootและรหัสผ่านไม่ซึ่งทำงานอยู่ในบรรทัดคำสั่ง Sequel Proแต่ไม่ได้อยู่ใน
Volte

ทำงานอย่างมีเสน่ห์มีส่วนร่วมอย่างเต็มที่กับคำถามเริ่มหัวข้อและโปรดทราบว่า: คุณต้องมีระบบปฏิบัติการ Mac OS Catalina, นักเทียบท่า 19.03, mysql ภาพล่าสุดออกจากคำสั่งนี้ $ docker run -p 3306: 3306 -d - ชื่อ mysql -e MYSQL_ROOT_PASSWORD mysql / mysql-server จากเว็บไซต์ dzone
ทรงพระเจริญ

13

สำหรับผู้ที่ใช้ Docker หรือ Docker Compose ฉันพบข้อผิดพลาดนี้เพราะฉันไม่ได้ตั้งรุ่นอิมเมจ MySQL ของฉัน นักเทียบท่าจะพยายามรับรุ่นล่าสุดโดยอัตโนมัติคือ 8

ฉันตั้ง MySQL เป็น 5.7 และสร้างภาพใหม่และทำงานได้ตามปกติ:

version: '2'
services: 
  db:
   image: mysql:5.7

3
มีเหตุผลที่ถูกต้องในการใช้รุ่น 8 แทนที่จะเป็นรุ่น 5 ฉันอยู่ในหน้านี้เพราะฉันต้องการใช้รุ่น 8 แทนที่จะเป็นรุ่น 5
Zach Smith

2
ใช้mysql:5.7แทนการmysql:latestแก้ไขปัญหาสำหรับฉัน
ฟรานเชส Borzi

13

นี่คือคำจำกัดความ databdase ของฉันในนักแต่งเพลงของฉัน:

dataBase:
    image: mysql:8.0
    volumes:
        - db_data:/var/lib/mysql
    networks:
        z-net:
            ipv4_address: 172.26.0.2
    restart: always
    entrypoint: ['docker-entrypoint.sh', '--default-authentication-plugin=mysql_native_password']
    environment:
        MYSQL_ROOT_PASSWORD: supersecret
        MYSQL_DATABASE: zdb
        MYSQL_USER: zuser
        MYSQL_PASSWORD: zpass
    ports:
        - "3333:3306"

บรรทัดที่เกี่ยวข้องมีจุดเข้าใช้งาน

หลังจากสร้างและขึ้นแล้วคุณสามารถทดสอบกับ:

$ mysql -u zuser -pzpass --host=172.26.0.2  zdb -e "select 1;"
Warning: Using a password on the command line interface can be insecure.
+---+
| 1 |
+---+
| 1 |
+---+

11

สำหรับ Windows 10 ,

  1. แก้ไขmy.iniไฟล์ในC:\ProgramData\MySQL\MySQL Server 8.0\

    [mysqld]
    default_authentication_plugin=mysql_native_password
  2. เริ่มบริการ MySQL ใหม่

  3. เข้าสู่ระบบ MySQL บนบรรทัดคำสั่งและดำเนินการคำสั่งต่อไปนี้ใน MySQL:

    • สร้างผู้ใช้ใหม่

      CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
    • ให้สิทธิ์ทั้งหมด

      GRANT ALL PRIVILEGES ON * .* TO 'user'@'localhost';
  4. เปิด MySQL workbench และเปิดการเชื่อมต่อใหม่โดยใช้ข้อมูลรับรองผู้ใช้ใหม่

ฉันกำลังเผชิญกับปัญหาเดียวกันและสิ่งนี้ได้ผล


9

นี่เป็นวิธีแก้ปัญหาสำหรับฉันหลังจากการติดตั้ง MySQL 8.0 บน Windows 10

สมมติว่าชื่อผู้ใช้ MySQL คือrootและรหัสผ่านคือadmin

เปิดพร้อมท์คำสั่งและป้อนคำสั่งต่อไปนี้:

cd C: \ Program Files \ MySQL \ MySQL เซิร์ฟเวอร์ 8.0 \ bin

mysql_upgrade -uroot -padmin

mysql -uroot -padmin

เปลี่ยนผู้ใช้ 'root' @ 'localhost' ระบุด้วย mysql_native_password BY 'admin'


8

หากคุณได้รับข้อผิดพลาดนี้ใน GitLab CI เช่นฉัน: เพียงเปลี่ยนจากรุ่นล่าสุดเป็นรุ่น 5.7;)

# .gitlab-ci.yml

rspec:
  services:
    # - mysql:latest (I'm using latest version and it causes error)
    - mysql:5.7 #(then I've changed to this specific version and fix!)

7

ฉันพบว่า

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';

ไม่ได้ทำงานด้วยตัวเอง ฉันยังต้องตั้งค่า

[mysqld]
    default_authentication_plugin=mysql_native_password

ใน /etc/mysql/mysql.conf.d/mysqld.cnf บน Ubuntu 18.04 ที่รัน PHP 7.0


สิ่งนี้ใช้ได้กับฉันใน Centos 7 ด้วยเหตุผลบางอย่างรหัสผ่านของฉันถูกบันทึกเป็น caching_sha2_password โดยค่าเริ่มต้นและฉันได้รับข้อผิดพลาด # 1251 เมื่อพยายามเข้าสู่ระบบด้วย phpMyAdmin
DaFudgeWizzad


6

สำหรับฉันนี้เริ่มเกิดขึ้นเพราะในโครงการที่ผมใช้ MySQL ภาพหาง: ล่าสุด (ซึ่งเป็นรุ่นที่ 5 และที่ทำงานดี) และในระหว่างการสร้างต่อมารุ่นล่าสุดได้รับการเปลี่ยนไป 8 รุ่นและหยุดการทำงาน ฉันเปลี่ยนภาพเป็น mysql: 5และฉันไม่ได้รับข้อผิดพลาดนี้อีก


อยู่บนหัว! ขอบคุณ
brcebn

6

ข้อผิดพลาดนี้เกิดขึ้นเมื่อเครื่องมือที่ใช้ไม่เข้ากันกับ MySQL8 ลองอัปเดตเป็น MySQL Workbench เวอร์ชันล่าสุดสำหรับ MySQL8


5

เกือบเหมือนคำตอบข้างต้น แต่อาจเป็นคำสั่งง่ายๆฉันได้รับข้อผิดพลาดนี้ในแอพพลิเคชั่นบู๊ทสปริงพร้อมจำศีลหลังการอัพเกรด MySQL เราสร้างผู้ใช้ใหม่โดยการเรียกใช้แบบสอบถามด้านล่างกับฐานข้อมูลของเรา ฉันเชื่อว่านี่เป็นงานชั่วคราวที่ใช้ sha256_password แทนที่จะเป็น caching_sha2_password ที่ผ่านการตรวจสอบล่าสุด

CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pa$$word';

GRANT ALL PRIVILEGES ON * .* TO 'username'@'localhost';

4

MySQLWorkbench 8.0.11 สำหรับ macOS เน้นเรื่องนี้ ฉันสามารถสร้างการเชื่อมต่อกับอินสแตนซ์ mysql ที่ป้องกันด้วยรหัสผ่านที่ทำงานอยู่ใน docker


นี่คือสิ่งที่แก้ไขให้ฉัน ฉันใช้ MySQL Workbench 6.3 รุ่นเก่ากับเซิร์ฟเวอร์ 8.0 ในขณะที่คำตอบมากมายที่นี่บอกว่าเพื่อลดความเข้ากันได้ของเซิร์ฟเวอร์ฉันเพิ่งอัพเกรดรุ่น Workbench เป็น 8.0 รุ่นล่าสุด (ปัจจุบัน 8.0.15)
รวมไม่มี

3

แม้ว่านี่จะไม่ได้เป็น ทางออกที่แท้จริงแต่จะทำงานในพื้นที่หากคุณติดขัด

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';

1
วิธีนี้จะช่วยแก้ปัญหา
kta

2

วิธีการแก้ปัญหาด้านล่างใช้งานได้สำหรับฉัน ป้อนคำอธิบายรูปภาพที่นี่

ไปที่ Mysql Workbench -> เซิร์ฟเวอร์ -> ผู้ใช้และสิทธิ์ 1. คลิกเพิ่มบัญชี

2. แท็บล็อกอินใต้ให้รายละเอียดใหม่และตรวจสอบให้แน่ใจว่าเลือกประเภทการรับรองความถูกต้องเป็นมาตรฐานและเลือกบทบาทการดูแลระบบและสิทธิ์สคีมาที่เกี่ยวข้อง

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


2

หากคุณพยายามเชื่อมต่อกับเซิร์ฟเวอร์ MySQL จากไคลเอนต์ MySQL แบบข้อความจากคอมพิวเตอร์เครื่องอื่น (ไม่ว่าจะเป็น Docker หรือไม่ก็ตาม)

คำตอบส่วนใหญ่ที่นี่เกี่ยวข้องกับการเชื่อมต่อจากเดสก์ท็อปไคลเอ็นต์หรือขอให้คุณสลับไปใช้วิธีการรับรองความถูกต้องแบบเก่า หากคุณกำลังเชื่อมต่อกับไคลเอนต์ MySQL (แบบข้อความ) ฉันทำให้มันทำงานกับ Debian Buster ในคอนเทนเนอร์ Docker

สมมติว่าคุณมีระบบ apt และทำการตั้งค่าทำสิ่งต่อไปนี้:

  1. sudo apt-get update
  2. sudo apt-get install lsb-release -y
  3. ดาวน์โหลดแพคเกจ Debian ซึ่งการปรับปรุงแหล่งที่เหมาะสำหรับคุณจากเว็บไซต์ MySQL
  4. sudo dpkg -i mysql-apt-config_0.8.13-1_all.debและเลือกตัวเลือกที่คุณต้องการ ในกรณีของฉันฉันต้องMySQL Tools & Connectorsเปิดใช้งานเท่านั้น
  5. sudo apt-get update
  6. sudo apt-get install mysql-client -y
  7. เสร็จสิ้น ตอนนี้คุณสามารถเรียกใช้ไคลเอนต์ MySQL ใหม่และเชื่อมต่อกับวิธีการรับรองความถูกต้องใหม่

นี่เป็นคำตอบที่ถูกต้องสำหรับปัญหา WSL ขอบคุณ!
Andrew Landsverk

1

ลองใช้รหัสผ่านเดิมขณะดาวน์โหลดและติดตั้ง MySql ซึ่งช่วยฉันได้ หรือทำตามวิธีการที่โพสต์โดย Santhosh Shivan สำหรับ Mac OS


0

การดาวน์โหลดรุ่นพัฒนา 8.0.11-rc ใช้งานได้กับฉันใน mac ด้วยคำสั่งนักเทียบท่าต่อไปนี้:

docker run --name mysql -p 3406:3306 -e MYSQL_ROOT_PASSWORD=mypassword -d mysql

-3

ฉันแก้ไขปัญหานี้ด้วยการติดตั้ง MySQL 5.7:

ขั้นตอนที่ 1 - เปิดใช้งาน MySQL Repository

ก่อนอื่นคุณต้องเปิดใช้งานพื้นที่เก็บข้อมูลชุมชน MySQL รุ่น 5.7 ในระบบของคุณ แพ็คเกจ rpm สำหรับการกำหนดค่าที่เก็บ yum นั้นมีอยู่ในเว็บไซต์ทางการของ MySQL ใช้คำสั่งด้านล่างตามรุ่นระบบปฏิบัติการของคุณ

บน CentOS และ RHEL 7

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

บน CentOS และ RHEL 6

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm

ใน Fedora 27

dnf install https://dev.mysql.com/get/mysql57-community-release-fc27-9.noarch.rpm

ใน Fedora 26

dnf install https://dev.mysql.com/get/mysql57-community-release-fc26-9.noarch.rpm

ใน Fedora 25

dnf install https://dev.mysql.com/get/mysql57-community-release-fc25-9.noarch.rpm

ขั้นตอนที่ 2 - ติดตั้งเซิร์ฟเวอร์ MySQL 5.7

ในขณะที่คุณเปิดใช้งานคลังเก็บ MySQL ยำบนระบบของคุณเรียบร้อยแล้ว ตอนนี้ให้ติดตั้งเซิร์ฟเวอร์ชุมชน MySQL 5.7 โดยใช้คำสั่งต่อไปนี้ตามเวอร์ชั่นระบบปฏิบัติการของคุณ

ใน CentOS และ RHEL 7/6

yum install mysql-community-server

ใน Fedora 27/26/25

 dnf install mysql-community-server

แหล่งที่มา: https://tecadmin.net/install-mysql-5-7-centos-rhel/


-5

ย้อนกลับไปยังการติดตั้งก่อนหน้า (ไปยัง MySQL Community Server 5.7 และ Workbench 6.1) และการตั้งค่าข้อมูลรับรอง MySQL ใหม่ที่เหมาะกับฉัน!

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