การตั้งค่ารหัสผ่านผู้ใช้รูท MySQL บน OS X


235

ฉันเพิ่งติดตั้ง MySQL บน Mac OS X ขั้นตอนต่อไปคือการตั้งรหัสผ่านผู้ใช้รูทดังนั้นฉันจึงทำสิ่งนี้ต่อไป:

  1. เรียกใช้แอปเทอร์มินัลเพื่อเข้าถึงบรรทัดคำสั่ง Unix
  2. ภายใต้พรอมต์ Unix ฉันดำเนินการคำสั่งเหล่านี้:

    $ cd /usr/local/mysql/bin
    $ ./mysqladmin -u root password 'password'
    

แต่เมื่อฉันรันคำสั่ง

$ ./mysql -u rootนี่คือคำตอบ:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 224
Server version: 5.5.13 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql>

ฉันสามารถเข้าสู่mysqlบรรทัดคำสั่งได้โดยไม่ต้องใช้รหัสผ่านใด ๆ !

ทำไมนี้

คำตอบ:


320

ลองคำสั่งFLUSH PRIVILEGESเมื่อคุณล็อกอินเข้าสู่เทอร์มินัล MySQL หากไม่ได้ผลให้ลองใช้ชุดคำสั่งต่อไปนี้ขณะอยู่ในเทอร์มินัล MySQL

$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

เปลี่ยน NEWPASSWORD ด้วยรหัสผ่านที่คุณต้องการ ควรจะตั้งทั้งหมด!

ปรับปรุง : ณ MySQL 5.7 ที่ข้อมูลได้รับการเปลี่ยนชื่อpassword authentication_stringเมื่อเปลี่ยนรหัสผ่านให้ใช้แบบสอบถามต่อไปนี้เพื่อเปลี่ยนรหัสผ่าน คำสั่งอื่นทั้งหมดยังคงเหมือนเดิม:

mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';

อัปเดต : วันที่ 8.0.15 (อาจมีรุ่นก่อนหน้านี้แล้ว) ฟังก์ชัน PASSWORD () ไม่ทำงานตามที่ระบุไว้ในความคิดเห็นด้านล่าง คุณต้องใช้:

UPDATE mysql.user SET authentication_string='password' WHERE User='root';


24
ใน MySQL 5.7 เป็นต้นไปชื่อคอลัมน์มีการเปลี่ยนแปลง คุณจะต้องใช้UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';แทน
Carlos P

ขอบคุณสำหรับหัวขึ้น. ฉันจะแก้ไขคำตอบเพื่อให้สอดคล้อง
สกอตต์

8
นอกจากนี้ดูเหมือนว่าฟังก์ชัน PASSWORD () จะถูกคัดค้านและคุณควรวางไว้'password'ทางด้านขวาของความเท่าเทียมกัน
kvn

6
หากคุณไม่สามารถเข้าสู่ระบบได้สิ่งนี้จะช่วยได้อย่างไร
Jake N

11
หลังจากทำตามขั้นตอนเหล่านี้ เมื่อฉันพยายามที่จะเข้าสู่ระบบอีกครั้งด้วยรหัสผ่านใหม่ของฉันฉันจะได้รับERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Maraw

197

หากคุณจำรหัสผ่านที่คุณตั้งไว้สำหรับรูทและไม่จำเป็นต้องรีเซ็ตให้ทำตามขั้นตอนเหล่านี้:

  1. หยุดเซิร์ฟเวอร์ mysqld ซึ่งจะแตกต่างกันไปตามการติดตั้ง
  2. เรียกใช้เซิร์ฟเวอร์ในเซฟโหมดด้วยการบายพาสสิทธิ์

sudo mysqld_safe --skip-grant-tables;

  1. ในหน้าต่างใหม่เชื่อมต่อกับฐานข้อมูลตั้งรหัสผ่านใหม่และล้างสิทธิ์ & ออก:

mysql -u root

สำหรับ MySQL ที่เก่ากว่า MySQL 5.7 ให้ใช้:

UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';

สำหรับ MySQL 5.7+ ให้ใช้:

USE mysql;

UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';

รีเฟรชและออกจาก:

FLUSH PRIVILEGES;

\q

  1. หยุดเซิร์ฟเวอร์เซฟโหมดและเริ่มเซิร์ฟเวอร์ปกติของคุณกลับมา รหัสผ่านใหม่ควรใช้งานได้ในขณะนี้ ทำงานเหมือนเสน่ห์สำหรับฉัน :)

4
ขอบคุณมาก! บน Mac OSx Mavericks (2014) ให้ใช้ sudo / Library / StartupItems / MySQLCOM / MySQLCOM หยุด | start | restart
Chris Adams

2
passwordต้องเป็นauthentication_stringตอนนี้
zx1986

หลังจาก MySQL 5.7 ก็ควรเป็นUPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';เช่นเดียวกับ @Scott กล่าว
zx1986

ขอขอบคุณจะเพิ่มที่
radtek

1
ใน MacOSx เมื่อติดตั้ง mySQL ด้วยตัวเลือก "บานหน้าต่าง" (เมนู Apple -> การตั้งค่าระบบ ... ) ฉันพบว่าฉันต้องหยุด mySQL ก่อนโดยใช้บานหน้าต่างการตั้งค่าเพื่อทำตามขั้นตอนที่ 1 จากด้านบนการใช้sudo killไม่ได้ ทำงานเป็น Mac OSx โดยอัตโนมัติจะเปิดใหม่ msql ใหม่ทันทีเมื่อฉันหยุด mysql โดยใช้บานหน้าต่างการตั้งค่าฉันสามารถเรียกใช้ด้วยตนเองmysqld_safe --skip-grant-tables
toddcscar

85

เมื่อคุณติดตั้ง MySQL แล้วคุณจะต้องสร้างรหัสผ่าน "รูท" หากคุณไม่ได้สร้างรหัสผ่านรูทแล้วก็ไม่มีรหัสผ่านรูทและคุณไม่จำเป็นต้องใช้รหัสผ่านในการเข้าสู่ระบบ

ดังนั้นที่ถูกกล่าวว่าคุณต้องสร้างรหัสผ่านรูท

การใช้เทอร์มินัลป้อนข้อมูลต่อไปนี้:

การติดตั้ง: ตั้งรหัสผ่านผู้ใช้รูท:

/usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE

หากคุณทำผิดพลาดหรือจำเป็นต้องเปลี่ยนรหัสผ่านรูทให้ใช้สิ่งต่อไปนี้:

เปลี่ยนรหัสผ่านรูท:

cd /usr/local/mysql/bin/
./mysql -u root -p
> Enter password: [type old password invisibly]

use mysql;
update user set password=PASSWORD("NEW_PASSWORD_HERE") where User='root';
flush privileges;
quit

5
สำหรับผู้ที่มี MySQL 5.7 คุณควรใช้update user set authentication_string=PASSWORD("NEW_PASSWORD_HERE") where User='root';แทนการใช้set password=...
pdm

66

คำแนะนำในเว็บไซต์ mysql นั้นชัดเจนกว่าที่กล่าวไว้ข้างต้น

  1. $ sudo /usr/local/mysql/support-files/mysql.server stop
  2. $ sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables
  3. /usr/local/mysql/bin/mysql
  4. mysql> ล้างสิทธิ;
  5. mysql> ALTER USER 'root' @ 'localhost' ระบุโดย 'MyNewPass';
  6. mysql> exitหรือ Ctrl + z
  7. $ sudo /usr/local/mysql/support-files/mysql.server stop
  8. $ sudo /usr/local/mysql/support-files/mysql.server start
  9. /usr/local/mysql/support-files/mysql -u root -p
  10. ป้อนรหัสผ่านใหม่เช่น MyNewPass

การอ้างอิง: http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html


2
ใน mac os 10.12.6 จะให้ข้อผิดพลาดหลังจากคำสั่งที่ 2 ข้อผิดพลาด! เซิร์ฟเวอร์ออกโดยไม่อัปเดตไฟล์ PID (/usr/local/mysql/data/myhostname.pid)
diEcho

ขอบคุณสำหรับการชี้ให้เห็นว่าจะหาเอกสารได้จากที่ไหน มันเป็นความสับสนเล็กน้อยใน mac เมื่อคุณสามารถใช้ sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist และ sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss .mysql.mysqld.plist เพื่อหยุดและเริ่ม mysql การใช้ sudo /usr/local/mysql/support-files/mysql.server หยุดดูเหมือนว่าเป็นวิธีที่ดีกว่า
Daniel

59
  1. หยุดเซิร์ฟเวอร์ mysqld

    • Mac OSX: System Preferences > MySQL>Stop MySQL Server
    • Linux (จากเทอร์มินัล): sudo systemctl stop mysqld.service
  2. เริ่มเซิร์ฟเวอร์ในเซฟโหมดด้วยการบายพาสสิทธิ์

    • จากเทอร์มินัล: sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. ในหน้าต่างเทอร์มินัลใหม่ :

    • sudo /usr/local/mysql/bin/mysql -u root
  4. นี่จะเป็นการเปิดบรรทัดคำสั่ง mysql จากที่นี่ให้ป้อน:

    • UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';

    • FLUSH PRIVILEGES;

    • quit

  5. หยุดเซิร์ฟเวอร์ mysqld อีกครั้งและรีสตาร์ทในโหมดปกติ

    • Mac OSX (จากเทอร์มินัล): sudo /usr/local/mysql/support-files/mysql.server restart
    • สถานี Linux: sudo systemctl restart mysqld

1
สำหรับการรัน 5.7.23 บน High Sierra มันทำงานได้อย่างสมบูรณ์แบบ ขอบคุณ
Daniel

ใน MySQL 8.0.11 ฟังก์ชั่นการตั้งค่าในขั้นตอนที่ 4 จะถูกลบออก คุณตรวจสอบที่นี่อันนี้ใช้ได้ stackoverflow.com/a/52579886/621951
GünayGültekin

22

สำหรับ Mysql 5.7 ใหม่ด้วยเหตุผลบางประการคำสั่ง bin ของ Mysql ที่ไม่ได้แนบกับเชลล์:

  1. รีสตาร์ท Mac หลังจากติดตั้ง

  2. เริ่ม Mysql:

    การตั้งค่าระบบ> Mysql> ปุ่มเริ่ม

  3. ไปที่โฟลเดอร์การติดตั้ง Mysql ใน terminal:

    $ cd /usr/local/mysql/bin/

  4. เข้าถึง Mysql:

    $ ./mysql -u root -p

และป้อนรหัสผ่านเริ่มต้นที่กำหนดให้กับการติดตั้ง

  1. ในรหัสผ่านการเปลี่ยนเทอร์มินัล Mysql:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';


16

ในเทอร์มินัลเขียนmysql -u root -pและกด Return ป้อนรหัสผ่าน mysql ปัจจุบันที่คุณต้องจดบันทึกไว้ และตั้งรหัสผ่าน SET PASSWORD = PASSWORD('new_password');

โปรดอ้างอิงเอกสารนี้ที่นี่สำหรับรายละเอียดเพิ่มเติม


10

หากคุณลืมรหัสผ่านรูทของ MySQL ไม่สามารถจำได้หรือไม่ต้องการแบ่ง ... คุณสามารถรีเซ็ตรหัสผ่านฐานข้อมูล mysql จากบรรทัดคำสั่งใน Linux หรือ OS X ตราบใดที่คุณรู้รหัสผ่านผู้ใช้รูทของกล่อง คุณอยู่บน:

(1) หยุด MySQL

sudo /usr/local/mysql/support-files/mysql.server stop

(2) เริ่มในเซฟโหมด:

sudo mysqld_safe --skip-grant-tables

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

mysql -u root

UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

ในคำสั่ง UPDATE ด้านบนเพียงแค่แทนที่ 'รหัสผ่าน' ด้วยรหัสผ่านใหม่ของคุณเองตรวจสอบให้แน่ใจว่าได้เก็บเครื่องหมายคำพูดไว้

(4) บันทึกและค่อนข้าง

FLUSH PRIVILEGES;

\q

(5) เริ่ม MySQL

sudo /usr/local/mysql/support-files/mysql.server start

5

เมื่อฉันติดตั้ง OS X Yosemite ฉันมีปัญหากับ Mysql ฉันลองใช้วิธีการหลายอย่าง แต่ก็ไม่ทำงาน จริงๆแล้วฉันพบวิธีที่ง่ายมาก ลองใช้ดู

  1. เข้าสู่ระบบเทอร์มินัลแรกจากสิทธิ์ su

sudo su

  1. หยุด mysql

sudo /usr/local/mysql/support-files/mysql.server stop

  1. เริ่มในเซฟโหมด:

sudo mysqld_safe --skip-grant-tables

  1. เปิดเทอร์มินัลอื่นลงชื่อเข้าใช้ด้วยสิทธิ์ su กว่าเข้าสู่ mysql โดยไม่ต้องใช้รหัสผ่าน

mysql -u root

  1. เปลี่ยนรหัสผ่าน

UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';

  1. ล้างสิทธิ์

FLUSH PRIVILEGES;

  1. คุณทำเสร็จแล้ว

ขอบคุณมาก. ฉันกำลังดิ้นรนกับเรื่องนี้เล็กน้อย นี่เป็นสิ่งใหม่ใน mysql รุ่นล่าสุดหรือไม่
jpbourbon

5

วิธีการที่กล่าวถึงในคำตอบที่มีอยู่ไม่ทำงานสำหรับ mysql 5.7.6 หรือใหม่กว่า ตามเอกสาร mysql นี้เป็นวิธีที่แนะนำ

B.5.3.2.3 การรีเซ็ตรหัสผ่านรูท: คำแนะนำทั่วไป

MySQL 5.7.6 และใหม่กว่า:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

การอ้างอิง: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html


3

หากคุณจำรหัสผ่านไม่ได้คำตอบของ @ radtek ใช้ได้สำหรับฉันยกเว้นในกรณีของฉันฉันได้ตั้ง MySQL โดยใช้ brewซึ่งหมายความว่าขั้นตอนที่ 1 และ 2 ของคำตอบของเขาจะต้องเปลี่ยนเป็น:

  1. /usr/local/bin/mysql.server stop

  2. /usr/local/bin/mysqld_safe --skip-grant-tables

หมายเหตุ:sudoการขาด


3

ฉันคิดว่าสิ่งนี้ควรจะได้ผล:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD'

(โปรดทราบว่าคุณควรแทนที่รูทด้วยชื่อผู้ใช้ของคุณหากไม่ใช่รูท)


2

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

sudo /usr/local/mysql/support-files/mysql.server stop

เริ่ม MySQL ในเซฟโหมด

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

การเปลี่ยนรหัสผ่านรูท

/usr/local/mysql/bin/mysql -u root

use mysql;
UPDATE user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE user='root';
FLUSH PRIVILEGES;
exit

การทดสอบ

วิ่ง /usr/local/mysql/bin/mysql -u root

ตอนนี้ป้อนรหัสผ่านใหม่เพื่อเริ่มใช้ MySQL


2

นี่คือสิ่งที่ทำงานให้ฉัน:

  1. ตรวจสอบให้แน่ใจว่าไม่มีกระบวนการ MySQL อื่นกำลังทำงานอยู่ในการตรวจสอบให้ทำสิ่งต่อไปนี้:

     a.From the terminal, run this command:
           lsof -i:3306 
       If any PID is returned, kill it using kill -9 PID
     b. Go To System Preferences > MySQL > check if any MySQL instances 
        are running, stop them.
  2. เริ่ม MySQL ด้วยคำสั่ง:

    sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. รหัสผ่านสำหรับผู้ใช้ทุกคนจะถูกเก็บไว้ในตาราง mysql.user ใต้คอลัมน์ผู้ใช้และ authentication_string ตามลำดับ เราสามารถอัปเดตตารางเป็น:

    UPDATE mysql.user SET authentication_string='your_password' where User='root'

2

macOS 10.14+ ที่ติดตั้ง 5.7.26 จากตัวติดตั้ง Mac OSX DMG

เมื่อพยายามใช้คำสั่ง UPDATE ที่โพสต์โดยผู้ใช้รายอื่นจะส่งผลให้เกิดข้อผิดพลาดดังต่อไปนี้:

ข้อผิดพลาด 1820 (HY000): คุณต้องรีเซ็ตรหัสผ่านโดยใช้คำสั่ง ALTER USER ก่อนดำเนินการคำสั่งนี้

คัดลอกรหัสผ่านที่โปรแกรมติดตั้งเปิดให้แก่คุณและทำสิ่งต่อไปนี้:

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURPASSWORDHERE';


2

เพื่ออ้างอิง MySQL 8.0.15 + ฟังก์ชั่นรหัสผ่าน () ไม่สามารถใช้ได้ ใช้คำสั่งด้านล่าง

กรุณาใช้

UPDATE mysql.user SET authentication_string='password' WHERE User='root';

1

หากคุณลืมรหัสผ่านหรือต้องการเปลี่ยนเป็น mysql ของคุณ:

  1. เริ่มต้นเทอร์มินัลของคุณและป้อน:
sudo su
  1. ป้อนรหัสผ่านให้คุณ
  2. หยุด mysql ของคุณ:
sudo /usr/local/mysql/support-files/mysql.server stop
  1. ออกจากหน้าต่างนี้เปิดเรียกใช้หน้าต่างเทอร์มินัลที่สองและป้อนที่นี่:
mysql -u root
  1. และเปลี่ยนรหัสผ่านของคุณสำหรับ mysql:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';

โดยที่ "new_password" - บัตรผ่านใหม่ของคุณ คุณไม่ต้องการรหัสผ่านเก่าสำหรับ mysql

  1. ล้างออกและตรวจสอบรหัสผ่านใหม่ของคุณ:
FLUSH PRIVILEGES;
  1. ปิดหน้าต่างทั้งหมดและตรวจสอบรหัสผ่านใหม่ของคุณสำหรับ mysql โชคดี.

1

มีการเปลี่ยนแปลงอะไรมากมายสำหรับ MySQL 8 ฉันพบว่าเอกสาร"การรีเซ็ตรหัสผ่านรูท"ของMySQL 8.0ต่อไปนี้ทำงานได้กับ Mac OS X

สร้างไฟล์ temp $HOME/mysql.root.txtด้วย SQL เพื่ออัพเดตรหัสผ่านรูท:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<new-password>';

สิ่งนี้ใช้mysql_native_passwordเพื่อหลีกเลี่ยงข้อผิดพลาดในการโหลดปลั๊กอินการรับรองความถูกต้อง 'caching_sha2_password'ซึ่งฉันได้รับหากฉันไม่ใช้ตัวเลือกนี้

หยุดเซิร์ฟเวอร์เริ่มต้นด้วย--init-fileตัวเลือกเพื่อตั้งรหัสผ่านรูทจากนั้นรีสตาร์ทเซิร์ฟเวอร์:

mysql.server stop mysql.server start --init-file=$HOME/mysql.root.txt mysql.server stop mysql.server start


1

ให้เราเพิ่มวิธีแก้ปัญหานี้ที่ทำงานบนแล็ปท็อปของฉัน!

Mac กับ Osx Mojave 10.14.5

ติดตั้ง Mysql 8.0.17 กับ homebrew

  • ฉันเรียกใช้คำสั่งต่อไปนี้เพื่อค้นหาเส้นทางของ mysql

    brew info mysql

  • เมื่อทราบเส้นทางแล้วฉันจะเรียกใช้สิ่งนี้:

    /usr/local/Cellar/mysql/8.0.17/bin/mysqld_safe --skip-grant-table

  • ในเทอร์มินัลอื่นฉันเรียกใช้:

    mysql -u root

  • ในเทอร์มินัลนั้นฉันเปลี่ยนรหัสผ่านรูทโดยใช้:

    update mysql.user set authentication_string='NewPassword' where user='root';

  • และเพื่อให้ฉันทำงาน:

    FLUSH PRIVILEGES;

และ voila รหัสผ่านถูกรีเซ็ต

การอ้างอิง:


1

คุณสามารถปิด mysql บน Mac ได้ด้วยตนเองโดยคลิกที่เมนู Apple และเปิดการตั้งค่าระบบ เลือกแผงการตั้งค่า "MySQL" จากนั้นคลิกที่ปุ่ม "หยุดเซิร์ฟเวอร์ MySQL" เพื่อหยุดเซิร์ฟเวอร์ MySQL บน Mac

หลังจากที่คุณหยุด mysql ของคุณคุณจะต้องทำตามขั้นตอนเหล่านี้

  • คุณจะต้องเริ่ม mysql ในโหมด skip-grant-tables

$ sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables

  • ในเทอร์มินัลของคุณเองป้อนคำสั่งนี้เพื่อล้างสิทธิ์ที่มีอยู่

/ usr / local / mysql / bin / mysql mysql> สิทธิ์การล้างข้อมูล

  • ตอนนี้คุณต้องเปลี่ยนรหัสผ่านของผู้ใช้

mysql> ALTER USER 'root' @ 'localhost' ระบุโดย 'newpassword';

mysql> exit

จากนั้นคุณสามารถไปที่เมนู Apple และเปิดการตั้งค่าระบบ เลือกแผงการตั้งค่า "MySQL" จากนั้นคลิกที่ปุ่ม "หยุดเซิร์ฟเวอร์ MySQL" เพื่อหยุดเซิร์ฟเวอร์ MySQL บน Mac

ในที่สุดคุณก็สามารถไปที่เมนู Apple และเปิดการตั้งค่าระบบ เลือกพาเนลการกำหนดค่าตามความชอบ“ MySQL” จากนั้นคลิกที่ปุ่ม“ เริ่มเซิร์ฟเวอร์ MySQL” เพื่อเริ่มเซิร์ฟเวอร์ MySQL บน Mac

หวังว่าจะช่วย


1

ไม่มีความคิดเห็นก่อนหน้านี้แก้ปัญหาบน Mac ของฉัน ฉันใช้คำสั่งด้านล่างและใช้งานได้

$ 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 -u root

0
mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET authentication_string='yourpasswd' WHERE User='root';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';

ฉันต้องทำสิ่งนี้ทุกครั้งที่ Macbook รีสตาร์ท โพสต์สิ่งนี้เพื่อการอ้างอิงส่วนตัวหวังว่ามันจะช่วยคนอื่นได้เช่นกัน

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