参考:https://blog.youkuaiyun.com/u012720262/article/details/52082098
1.获得管理员权限,在终端中输入如下命令
sudo su
2.在/usr/local/var/mysql/路径中,关闭mysql server:
mysql.server stop
3.编辑: vi /usr/local/etc/my.cnf,加上红色那句话。保存。
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
skip-grant-tables
4.重新启动mysql:
mysql.server start
/*******以下当前方法实行不通的时候尝试**********
2.越过权限和密码,直接登陆MySQL(安全模式启动Mysql)
mysqld_safe --skip-grant-tables &
如果不行可以尝试 /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
(如果在给定目录下,找不到mysqld_safe,则使用find / -name "*mysqld_safe*"查找一下mysqld_safe的文件位置)
********************************************/
5.重新在打开另外一个终端窗口(强调一遍要另外打开一个终端窗口),打入如下命令:
mysql -u root
如果提示 command not found ,则可以输入mysql这个执行文件的绝对路径,命令如下:
/usr/local/mysql/bin/mysql -u root
(如果在给定目录下,找不到mysql,则使用上述步骤2中和mysqld_safe同级目录中执行mysql -u root)
6.接下来就是改密码了
Mysql5.7版本请用这条命令-> UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE User='root';
Mysql其他低版本请用这条命令-> UPDATE mysql.user SET Password=PASSWORD('123456') WHERE User='root';
**************************************假装是分割线*****************************************
上面还有坑,今天才发现。5.7.21执行了:
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE User='root';
结果如下:
结果分明告诉我:0 rows affected。后来发现:(https://blog.youkuaiyun.com/u010603691/article/details/50541979)
MySQL 设置的密码中必须至少包含一个大写字母、一个小写字母、一个特殊符号、一个数字,
密码长度至少为8个字符
重新修改密码,执行后结果如下图所示: