根据这个问题Access Denied for MYSQL ERROR 1045 I should be able to start MySQL in safe mode with
sudo mysqld_safe --skip-grant-tables
Run Code Online (Sandbox Code Playgroud)
但这只是将以下几行记录到 STDOUT:
151116 17:46:46 mysqld_safe Logging to '/usr/local/var/mysql/MacBook-Pro.local.err'.
151116 17:46:46 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
151116 17:46:46 mysqld_safe mysqld from pid file /usr/local/var/mysql/MacBook-Pro.local.pid ended
Run Code Online (Sandbox Code Playgroud)
并将我返回到命令行。引用的错误日志在此处具有相同的最后 2 行输出。当我尝试连接到 MySQL 时,我得到:
mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Run Code Online (Sandbox Code Playgroud)
刚刚在 mac 上遇到了完全相同的问题。我能够通过以下步骤重置 root 密码。
mysqld --skip-grant-tables # this will run mysql
mysql -u root
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
Run Code Online (Sandbox Code Playgroud)
注意:似乎较新版本的 mysql 在运行“sudo mysqld_safe --skip-grant-tables”时出现错误。