在 OS X 上重置 mysql 服务器 root 密码

MLE*_*LEN 1 mysql macos

首先,我知道有几个线程,但是我尝试了很多解决方案,但我无法解决任何问题。

我对 mysql 服务器和终端没有任何经验。

我下载的是mysql server 5.7.19

按照 redtek 的回答,这里:Setting the MySQL root user password on OS X

我从系统设置中打开 mysql,单击停止服务器。然后我打开终端并写

sudo mysqld_safe --skip-grant-tables
Run Code Online (Sandbox Code Playgroud)

我问我的密码(我认为这与我启动计算机时的密码相同)。我收到一条消息,找不到命令。

MacBook-Pro:~ XXXXXX$ sudo mysqld_safe --skip-grant-tables
Password:
sudo: mysqld_safe: command not found
MacBook-Pro:~ XXXXXX$ 
Run Code Online (Sandbox Code Playgroud)

更新:当我运行下面的解决方案时,打开一个新窗口后,我收到以下错误:

Last login: Sun Aug 13 16:51:49 on ttys002


MacBook-Pro:~ XXXXX$   mysql -u root  


-bash: mysql: command not found


MacBook-Pro:~ XXXXX$ UPDATE mysql.user SET Password=PASSWORD('my-new-password') WHERE User='root';  


-bash: syntax error near unexpected token `('


MacBook-Pro:~ XXXXX$ FLUSH PRIVILEGES;  


-bash: FLUSH: command not found


MacBook-Pro:~ XXXXX$ \q
Run Code Online (Sandbox Code Playgroud)

Zak*_*kir 8

停止 MySQL 服务器。

sudo /usr/local/mysql/support-files/mysql.server stop
Run Code Online (Sandbox Code Playgroud)

使用 --skip-grant-tables 选项重新启动它。

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables 
Run Code Online (Sandbox Code Playgroud)

打开另一个终端以使用 mysql 客户端连接到 MySQL 服务器。

 cd /usr/local/mysql/bin  
 mysql
Run Code Online (Sandbox Code Playgroud)

告诉服务器重新加载授权表,以便帐户管理语句起作用。

FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

现在重置root用户的密码

MySQL 5.7.6 及更高版本:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Run Code Online (Sandbox Code Playgroud)

MySQL 5.7.5 及更早版本:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Run Code Online (Sandbox Code Playgroud)

停止服务器并正常重启

sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server start
Run Code Online (Sandbox Code Playgroud)