macOSX homebrew mysql root รหัสผ่าน


116

ด้วยเหตุผลบางประการ MySQL หยุดให้สิทธิ์การเข้าถึงรูท ถอนการติดตั้งและติดตั้งใหม่ด้วย Homebrew ติดตั้งใหม่โต๊ะใหม่ แต่เมื่อฉันเข้ามา

mysql -u root -p

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

การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'root' @ 'localhost' (โดยใช้รหัสผ่าน: NO)

ฉันติดตั้ง MySQL ใหม่ห้าครั้ง แต่ยังคงขอรหัสผ่าน ฉันจะแก้ไขปัญหานี้ได้อย่างไร


เกือบจะมีคำถามที่แน่นอนใน superuser ทำตามขั้นตอนเหล่านี้: superuser.com/a/400345
Icarus

13
เพียงแค่เรียกใช้mysql_secure_installationและตอบคำถามที่ถามง่ายๆ
Abhinav Singh

8
คำสั่ง mysql_secure_installation พร้อมต์สำหรับรหัสผ่านรูท หากคุณตั้งค่าและลืมขั้นตอนนี้จะไม่ช่วย
JohnG

1
หากชงติดตั้ง MySQL 5.7 ให้ทำตามขั้นตอนเหล่านี้: stackoverflow.com/a/33924648/133106
mrucci

FWIW mysql -u rootทำงานที่นี่ ...
rogerdpack

คำตอบ:


116

เพียงเรียกใช้คำสั่งนี้ ( NEWPASSรหัสผ่านของคุณอยู่ที่ไหน):

$(brew --prefix mysql)/bin/mysqladmin -u root password NEWPASS

ฉันมีข้อผิดพลาดเดียวกันและแก้ไขด้วยวิธีนี้


16
ทำงานให้ฉัน เห็นได้ชัดว่า (อาจ) ต้องใส่เครื่องหมายดอลลาร์ ($) เป็นส่วนหนึ่งของคำสั่ง (ไม่ใช่แค่เชลล์พร้อมต์)
เตาอบ

3
ฉันขอแนะนำให้ไม่รวม NEWPASS ในคำสั่งเพื่อหลีกเลี่ยงการจัดเก็บในไฟล์ประวัติของเชลล์ของคุณ คำสั่งนั้นจะขออินพุตโดยอัตโนมัติหากคุณเรียกใช้โดยไม่ผ่านดังนั้นจึงไม่มีเหตุผลใด ๆ :)
Levi Figueira

4
ถ้าใช้ mariadb:$(brew --prefix mariadb)/bin/mysqladmin -u root password NEWPASS
bryceadams

8
ไม่ทำงานสำหรับฉันด้วย mariadb (แม้จะมีบันทึกย่อ @bryceadams): / usr / local / opt / mariadb / bin / mysqladmin: เชื่อมต่อกับเซิร์ฟเวอร์ที่ข้อผิดพลาด 'localhost' ล้มเหลว: 'การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้' root '@' localhost ' '
trainoasis

5
สำหรับ mariadb หากคุณถูกปฏิเสธการเข้าถึงสำหรับผู้ใช้:sudo $(brew --prefix mariadb)/bin/mysqladmin -u root password NEWPASS
อัปเดต

110

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

$ brew services stop mysql
$ pkill mysqld
$ rm -rf /usr/local/var/mysql/ # NOTE: this will delete your existing database!!!
$ brew postinstall mysql
$ brew services restart mysql
$ mysql -uroot

เครดิตทั้งหมดถึง @Ghrua


6
โพสต์ก่อนหน้านี้ไม่ได้ผลสำหรับฉัน แต่สิ่งนี้ในขณะที่การทำลายล้างทำงานได้ดี
Clay

1
เมื่อคุณเข้าสู่ระบบ mysql ในที่สุดให้ใช้ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD';เพื่อตั้งรหัสผ่านรูทใหม่ของคุณ
Martin Braun

สิ่งนี้ใช้ได้ผลสำหรับฉันโดยไม่ต้องลบฐานข้อมูลที่มีอยู่
Mwirabua Tim

ในที่สุดวิธีการทำงานที่เหมาะสม @ 2020 MacOs catalina
Mindaugas Kurlys

สิ่งนี้ใช้ได้ผลสำหรับฉันเมื่อวิธีแก้ปัญหาก่อนหน้านี้ไม่ได้ผล ขอบคุณ!
Les Brown

65

ในกรณีที่คุณตั้งค่าโดยไม่ได้ตั้งใจและลืมรหัสผ่านรูทและคุณไม่ต้องการล้างฐานข้อมูลทั้งหมดของคุณและเริ่มต้นใหม่เพราะคุณขี้เกียจและลืมที่จะมีวิธีแก้ปัญหาสำรองไว้และคุณกำลังใช้การติดตั้ง Homebrew ล่าสุด (ฤดูหนาว 2013) ต่อไปนี้เป็นขั้นตอนในการรีเซ็ตรหัสผ่านสำหรับ MySQL

หยุดอินสแตนซ์ MySQL ที่กำลังทำงานอยู่

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

ตอนนี้เริ่ม mysql ด้วยมือข้ามตารางการให้สิทธิ์และเครือข่าย

$(brew --prefix mysql)/bin/mysqld_safe --skip-grant-tables --skip-networking

โปรดทราบว่าหากคุณเรียกใช้echo $ (brew --prefix mysql)และไม่ตอบสนองเป็น"/ usr / local / opt / mysql"ใน bash คุณจะต้องปรับเส้นทางให้เหมาะสม

เมื่อคุณทำเสร็จแล้วตอนนี้คุณควรมีอินสแตนซ์ MySQL ที่ทำงานอยู่และไม่มีการป้องกัน

เข้าสู่ระบบและตั้งรหัสผ่าน

mysql -u root

ที่พรอมต์ป้อนคำสั่ง MySQL ต่อไปนี้เพื่อตั้งรหัสผ่านใหม่สำหรับผู้ใช้ที่ได้รับผลกระทบ

mysql> update mysql.user set password=PASSWORD('new_password_here') WHERE user='root';

หากทุกอย่างเป็นไปตามแผนควรพูดว่า:

Query OK, 1 row affected (0.02 sec)
Rows matched: 4  Changed: 1  Warnings: 0

ออกจากพรอมต์ MySQL

mysql> exit
Bye

หยุดเซิร์ฟเวอร์:

mysqladmin -u root shutdown

ตอนนี้ให้นำการเปิดตัว daemon กลับมาเพื่อให้เรามี MySQL พร้อมอีกครั้ง:

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

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


5
วิธีหยุดเซิร์ฟเวอร์ MySQL ที่ไม่มีการป้องกันหลังจากเปลี่ยนรหัสผ่าน:mysqladmin -u root shutdown
Vebjorn Ljosa

9
ฉันเพิ่งพบปัญหานี้และพบว่าคำตอบนี้ใกล้เคียงที่สุด ฉันสังเกตเห็นว่าpasswordไม่ใช่คอลัมน์ที่ถูกต้องใน mysql 5.7.9 แต่ฉันต้องใช้authentication_stringแทน คำแนะนำที่เหลือทำงานได้อย่างสมบูรณ์ ขอบคุณ!
M. Scott Ford

5
ตามที่เอ็มสก็อตต์ฟอร์ดกล่าวคำสั่งที่เหมาะสมคือ:update user set authentication_string=password('new_password_here') where user='root';
ณ โยทิส

3
ฉันต้องวิ่งupdate mysql.user set authentication_string=password('none') where user='root';เพื่อให้มันทำงาน (เช่นเดียวกับความคิดเห็นด้านบนของฉัน แต่mysql.อยู่userข้างหน้า)
Steve Meisner

2
ฟังก์ชันรหัสผ่านจะถูกลบออกตั้งแต่ mysql 8.0.11 รายละเอียดเพิ่มเติม
chancyWu

62

ฉันมีปัญหาเดียวกันเมื่อสองสามวันก่อน มันเกิดขึ้นเมื่อคุณติดตั้งmysqlผ่านhomebrewและรันสคริปต์การเริ่มต้น ( mysql_install_db) ก่อนที่จะเริ่มmysqldaemon

ในการแก้ไขคุณสามารถลบmysqlไฟล์ข้อมูลเริ่มบริการใหม่จากนั้นเรียกใช้สคริปต์การเริ่มต้น:

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm -r /usr/local/var/mysql/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

ทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน ฉันไม่ต้องการตั้งรหัสผ่านสำหรับเครื่องในพื้นที่ของฉันดังนั้นวิธีแก้ปัญหาอื่น ๆ จึงไม่ใช่สิ่งที่ฉันกำลังมองหา
brad

3
mysql_install_db เลิกใช้แล้วให้ลองใช้mysqld --initialize
Brian

1
ฉันเพิ่งได้รับNo such file or directoryเมื่อฉันเรียกใช้คำสั่งแรกนั้น
Agent Zebra

1
หลังจากเรียกใช้คำสั่ง mysqld --initialize คุณจะสังเกตเห็นในข้อความบันทึกบนคอนโซลว่ามันตั้งรหัสผ่านชั่วคราวสำหรับผู้ใช้รูท .. คัดลอกและใช้รหัสผ่านในครั้งต่อไปที่คุณเริ่มคำสั่ง "mysql -uroot -p" - มันจะใช้งานได้แน่นอน จากนั้น mysql จะขอให้คุณรีเซ็ตรหัสผ่าน .. ลองดูที่dev.mysql.com/doc/refman/5.7/th/resetting-permissions.html
Vikrant Labde

@VikrantLabde "มันจะได้ผล" - คำพูดที่ทะเยอทะยานมาก ฉันลองใช้รหัสผ่านชั่วคราวที่ให้ไว้ แต่ก็ยังไม่ให้สิทธิ์การเข้าถึง คุณต้องหลีกเลี่ยงเครื่องหมายวรรคตอนด้วยแบ็กสแลชหรือไม่?
Max Goodridge

47

พบข้อผิดพลาดนี้หลังจากติดตั้ง mysql ผ่าน home brew

ดังนั้นก่อนอื่นให้ลบการติดตั้ง จากนั้นติดตั้งใหม่ผ่าน Homebrew

brew update
brew doctor
brew install mysql

จากนั้นเริ่มบริการ mysql ใหม่

 mysql.server restart

จากนั้นรันคำสั่งนี้เพื่อตั้งรหัสผ่านรูทใหม่ของคุณ

 mysql_secure_installation

ในที่สุดก็จะขอให้โหลดสิทธิ์อีกครั้ง บอกว่าใช่. จากนั้นเข้าสู่ระบบ mysql อีกครั้ง และใช้รหัสผ่านใหม่ที่คุณตั้งไว้

mysql -u root -p

1
นี่คือทางออกที่สมบูรณ์แบบ ฉันลองวิ่งไปแล้วmysql_secure_installationแต่ส่วนสำคัญคือmysql.server restart
โยฮัน

mysql_secure_installation เป็นส่วนสำคัญ
Nik

เพื่อหลีกเลี่ยงอาการปวดหัว ... เพียงพิมพ์ใช้คำสั่ง restart เหมือนที่ nirojan บอกจากนั้นเรียกใช้ mysql_secure_installation
Dan Zuzevich

13

ถ้าคุณวิ่ง

brew install mariadb
...
brew services start mariadb
==> Successfully started `mariadb` (label: homebrew.mxcl.mariadb)

 $(brew --prefix mariadb)/bin/mysqladmin -u root password newpass
/usr/local/opt/mariadb/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost''

เข้าสู่ระบบด้วยบัญชีรูทล้มเหลว:

mariadb -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

จากนั้นผู้ดูแลระบบเริ่มต้นจะถูกสร้างชื่อเดียวกับชื่อผู้ใช้บัญชีMacOSของคุณเช่นjohnsmit johnsmit

ในการเข้าสู่ระบบในฐานะรูทปัญหา:

mariadb -u johnsmit
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 17
Server version: 10.4.11-MariaDB Homebrew

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit
Bye

ชื่อบัญชี MacOS ทำเพื่อฉัน
แดน

ฉันสามารถเพิ่มรหัสผ่านสำหรับผู้ใช้ชื่อบัญชี macOS ได้หรือไม่?
OrigamiEye


4

ฉันเพิ่งสังเกตเห็นบางอย่างที่พบบ่อยสำหรับคำตอบส่วนใหญ่ที่นี่และได้รับการยืนยันในการติดตั้งใหม่ของฉัน มันเห็นได้ชัดจริงหากดูคำแนะนำในการทำงานmysqladmin -u rootโดยไม่ต้อง-pโดยไม่ต้อง

ไม่มีรหัสผ่าน

Brew ตั้งค่า mysql ด้วยผู้ใช้รูทและไม่มีรหัสผ่านเลย สิ่งนี้สมเหตุสมผลฉันเดา แต่ Caveats หลังการติดตั้งไม่ได้พูดถึงมันเลย


2
ฉันมีปัญหาการเข้าถึงที่ถูกปฏิเสธโดยไม่มีรหัสผ่านรูทดังนั้นฉันไม่คิดว่าปัญหานี้ชัดเจน
Jack Frost

ฉันไม่ได้บอกว่าปัญหานี้ชัดเจน สำหรับใครก็ตามที่ใช้ MySQL ภายใต้สถานการณ์ปกติมันสับสนอย่างที่สุด แต่เมื่อมองไปที่การตอบสนองอื่น ๆ เหตุผลก็ชัดเจน
Spyder

3

ลองด้วยsudoเพื่อหลีกเลี่ยงข้อผิดพลาด "การเข้าถึงถูกปฏิเสธ":

sudo $(brew --prefix mariadb)/bin/mysqladmin -u root password NEWPASS


3

เนื่องจากคำถามถูกถาม / ตอบเมื่อนานมาแล้วคำตอบยอดนิยมเหล่านั้นไม่ได้ผลสำหรับฉัน นี่คือทางออกของฉันในปี 2020

พื้นหลัง : mysql / mariadb สดที่ติดตั้งโดย homebrew

ปัญหา : รหัสผ่านสำหรับ root ไม่ว่างเปล่าและไม่ทราบ

การแก้ไข :

  1. mysql -u YOUR-SYSTEM-USERNAME -p
  2. รหัสผ่านว่างเปล่า (กด Enter)
  3. แก้ไขผู้ใช้ 'root' @ 'localhost' ระบุโดย 'NEW-ROOT-PASSWORD';
  4. สิทธิพิเศษในการล้าง

เหตุผล :

  1. Homebrew จะสร้างผู้ใช้ที่มีสิทธิ์รูทซึ่งตั้งชื่อตามชื่อผู้ใช้ MacOS ปัจจุบัน
  2. ไม่มีรหัสผ่าน
  3. เนื่องจากมีสิทธิ์ทั้งหมดเพียงรีเซ็ตรหัสผ่านรูทกับผู้ใช้นั้น
  4. รหัสผ่านเริ่มต้นสำหรับรูทถูกสร้างขึ้นแบบสุ่ม

คำตอบที่ถูกต้อง 2020 ฉันไม่สามารถขอรหัสผ่านสำหรับชื่อผู้ใช้ MacOS
OrigamiEye

2
  1. ไปที่ไอคอนแอปเปิ้ล -> การตั้งค่าระบบ
  2. เปิด Mysql
  3. ในกรณีนี้คุณจะเห็น "เริ่มต้นฐานข้อมูล"
  4. คลิกที่
  5. คุณจะถูกขอให้ตั้งรหัสผ่านสำหรับรูท -> ตั้งรหัสผ่านที่คาดเดายากที่นั่น
  6. ใช้รหัสผ่านนั้นเพื่อเข้าสู่ระบบ mysql ในครั้งต่อไป

หวังว่านี่จะช่วยได้


วิธีที่ง่ายแสนง่าย ขอบคุณ
Ezequiel França

1

การเรียกใช้เส้นเหล่านี้ในเทอร์มินัลทำให้ฉันและคนอื่น ๆ อีกหลายคนมีปัญหาเดียวกัน คำแนะนำเหล่านี้แสดงอยู่ในเทอร์มินัลหลังจากที่ brew ติดตั้ง mysql สำเร็จ

mkdir -p ~/Library/LaunchAgents

cp /usr/local/Cellar/mysql/5.5.25a/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

/usr/local/Cellar/mysql/5.5.25a/bin/mysqladmin -u root password 'YOURPASSWORD'

ที่YOURPASSWORDเป็นรหัสผ่านสำหรับราก


ฉันเพิ่งได้รับNo such file or directoryเมื่อฉันเรียกใช้คำสั่งเหล่านี้
Agent Zebra

1

ตรวจสอบว่าคุณไม่มี. my.cnf ซ่อนตัวอยู่ในบ้านของคุณ นั่นคือปัญหาของฉัน


1

สิ่งนี้ใช้ได้กับฉันสำหรับ MAC https://flipdazed.github.io/blog/osx%20maintenance/set-up-mysql-osx

เริ่ม mysql โดยเรียกใช้

บริการชงเริ่ม mysql

รันสคริปต์การติดตั้ง

mysql_secure_installation

คุณจะถูกขอให้ตั้งค่าปลั๊กอินการตั้งค่า VALIDATE PASSWORD ป้อน y เพื่อทำสิ่งนี้

เลือกการตรวจสอบรหัสผ่านที่ต้องการ (ไม่สำคัญว่าเป็นเพียงคุณใช้ฐานข้อมูล)

ตอนนี้เลือก y สำหรับตัวเลือกที่เหลือทั้งหมด: ลบ anon ผู้ใช้; ไม่อนุญาตให้ล็อกอิน root จากระยะไกล ลบฐานข้อมูลทดสอบ โหลดตารางสิทธิ์ซ้ำ ตอนนี้คุณควรได้รับข้อความ

All done!


ในการเริ่ม mysql 5.7 ใช้stackoverflow.com/questions/51573145/…
Adam Winnipass

1

สิ่งนี้ได้ผลสำหรับฉัน หวังว่าจะได้ผลสำหรับคุณเช่นกัน !!! ตามพวกเขา.

brew services stop mysql
pkill mysqld
# NB: the following command will REMOVE all your databases!
# Make sure you have backups or SQL dumps if you have important data in them already.
rm -rf /usr/local/var/mysql/
brew services restart mysql

mysql -uroot
UPDATE mysql.user SET authentication_string=null WHERE User='root';
FLUSH PRIVILEGES;
exit;

mysql -u root 
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password 
BY'YOUR_PASS_WORD!!!!';

2
คุณต้องเตือนว่าการเรียกใช้rm -rf /usr/local/var/mysql/คำสั่งจะลบฐานข้อมูลและข้อมูล Mysql ทั้งหมดในคอมพิวเตอร์ของคุณ!
Lashae

0

รหัสผ่านเริ่มต้นเมื่อคุณติดตั้ง mysql ผ่านการชงคือรูทลองสิ่งนี้มันใช้ได้สำหรับฉัน

mysql -uroot -proot


1
จากbrew info mysql: เราได้ติดตั้งฐานข้อมูล MySQL ของคุณโดยไม่ต้องใช้รหัสผ่านรูท เพื่อความปลอดภัยให้รัน: mysql_secure_installation
ssc

@ssc วิธีที่ดีที่สุดในการตั้งรหัสผ่านสำหรับการติดตั้งใหม่ทั้งหมด
alexventuraio

0

อาคารผู้โดยสาร 1:

$ mysql_safe

อาคารผู้โดยสาร 2:

$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('new-password') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

สิ่งนี้อาจได้ผลในขณะที่โพสต์คำตอบ แต่ในระหว่างนี้เกิดปัญหาขึ้น ด้วย (ปัจจุบัน) MySQL เวอร์ชัน 5.7.21 ล้มเหลวด้วย `` คอลัมน์ที่ไม่รู้จัก 'รหัสผ่าน' ใน 'รายการฟิลด์' '
ssc

อัปเดต mysql.user SET authentication_string = PASSWORD ('xxxxxx!') WHERE User = 'root';
kevinc

0

Iam ใช้ Catalina และใช้mysql_secure_installationคำสั่งนี้และตอนนี้ใช้ได้กับฉัน:

$ mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): << enter root here >>

ฉันป้อนrootเป็นรหัสผ่านปัจจุบัน

OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

และทำส่วนที่เหลือ


0

ดังนั้นในกรณีที่มีคนมีสถานการณ์เดียวกันและการกำหนดค่าตามที่ผมมีและยังเป็นเรื่องที่จะไปบ้า - นี้ทำงานให้กับฉัน

หลังจากเรื่องยาวผมมีเบียร์ที่ติดตั้ง MariaDB ที่เก็บไว้โดยอัตโนมัติเริ่มต้นใหม่เมื่อฉันฆ่ากระบวนการ (นี่คือการชงของการทำ) ซึ่งมีรหัสผ่านรากซึ่งผมไม่ได้รู้ว่า

$ brew services list

สิ่งนี้แสดงสิ่งที่ชอบ:

mariadb started jdoe /path/to/homebrew.mxcl.mariadb.plist

หยุดเซิร์ฟเวอร์ MySQL ด้วย:

$ brew services stop mariadb

จากนั้นเริ่มใหม่อีกครั้งโดยไม่มีผู้ใช้รูท (และไม่ใช้เบียร์):

$ mariadbd --skip-grant-tables &

ที่นี่mysql_secure_installationไม่ได้ผลสำหรับฉันเพราะเหตุ--skip-grant-tablesนี้และมันจะใช้ไม่ได้หากไม่มี--skip-grant-tablesเพราะมันต้องใช้รหัสผ่าน (ซึ่งฉันไม่มี)
พยายาม$(brew --prefix mysql)/bin/mysqladmin -u root password hunter2ส่งกลับข้อผิดพลาดแปลก ๆ เท่านั้นและไม่ได้ทำอะไรเลย$(brew --prefix mariadb)/bin/mysqladmin -u root password hunter2ยังไม่ได้ผลให้ข้อผิดพลาดที่แตกต่างกันและข้อเสนอแนะที่ไม่ได้ผลสำหรับฉัน

แต่คุณสามารถเข้าสู่ mysql ได้โดยไม่ต้องใช้ข้อมูลรับรอง:$ mysql

ที่นี่วิธีการเดิมในการอัปเดตตารางผู้ใช้สำหรับรูทใช้ไม่ได้เพราะ "คอลัมน์" รหัสผ่าน "ไม่สามารถอัปเดตได้"
วิธีใหม่นี้ใช้alter userแต่จะใช้ได้ผลก็ต่อเมื่อคุณทำflush privileges;เช่นนั้นก่อน
จากนั้น:
MariaDB [(none)]> alter user 'root'@'localhost' identified by 'hunter2';
( MariaDB [(none)]>พรอมต์ MySQL ที่นี่)
จากนั้นทำflush privileges;อีกครั้ง
ออกจากไคลเอนต์ MySQL

ตอนนี้เท่าที่เกี่ยวข้องกับการชง MariaDB ก็ยังไม่ทำงานดังนั้นให้ใช้$ ps aux | grep -i mariadbเพื่อค้นหา pid และ$ kill -9 <pid>มัน
จากนั้นใช้$ brew services start mariadbเพื่อเริ่มต้นใหม่อีกครั้ง


-1

ใช้ไฟล์ init เพื่อเริ่ม mysql เพื่อเปลี่ยนรหัสผ่านรูท

brew services stop mysql
pkill mysqld
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'newRootPass';" > /tmp/mysql-init
$(brew --prefix mysql)/bin/mysqld --init-file=/tmp/mysql-init

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

mysqladmin -u root -p shutdown

และป้อนรหัสใหม่ของคุณ

เริ่มบริการของคุณและลบไฟล์ init

brew services start mysql
rm /tmp/mysql-init

ทดสอบกับ mysql เวอร์ชัน 8.0.19

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