首先,我知道有几个主题,但我尝试了很多解决方案,但我无法继续工作。
我对mysql服务器和终端没有任何经验。
我下载了mysql server 5.7.19
根据redtek的回答,在这里:Setting the MySQL root user password on OS X
我从系统设置中打开mysql,单击停止服务器。然后我打开终端并写
"-"
我问我的密码(我假设当我启动计算机时这是一样的)。我收到一条未找到命令的消息。
sudo mysqld_safe --skip-grant-tables
更新:当我运行下面的解决方案时,在打开一个新窗口后,我收到以下错误:
MacBook-Pro:~ XXXXXX$ sudo mysqld_safe --skip-grant-tables
Password:
sudo: mysqld_safe: command not found
MacBook-Pro:~ XXXXXX$
答案 0 :(得分:3)
停止MySQL服务器。
sudo /usr/local/mysql/support-files/mysql.server stop
使用--skip-grant-tables选项重新启动它。
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
使用mysql客户端打开另一个终端连接MySQL服务器。
cd /usr/local/mysql/bin
mysql
告诉服务器重新加载授权表,以便帐户管理语句有效。
FLUSH PRIVILEGES;
现在重置root用户的密码
MySQL 5.7.6及更高版本:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQL 5.7.5及更早版本:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
停止服务器并正常重启
sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server start
答案 1 :(得分:2)
第一步是停止MySQL服务。
sudo /usr/local/mysql/support-files/mysql.server stop
然后你需要以安全模式启动它
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
其次:让我们打开另一个shell /终端窗口,无需密码登录
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('my-new-password') WHERE User='root';
FLUSH PRIVILEGES;
\q
因为在MySQL 5.7中,mysql.user表中的密码字段被删除了,现在字段名称是' authentication_string'。
mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE User='root';
FLUSH PRIVILEGES;
\q
现在再次需要启动MySQL服务器
sudo /usr/local/mysql/support-files/mysql.server start
答案 2 :(得分:0)
找不到该命令,因为MySQL安装文件夹(/ usr / local / mysql /)未包含在系统变量PATH中。
答案 3 :(得分:0)
我花了一些时间来解决这个问题,考虑到大多数解决方案都适用于低于MySQL 5.7版本的版本
按照以下方法操作,它也可以帮助您排序。
为了安全地确保流程: - 在MySQL的系统偏好设置(聚光灯 - mysql)中关闭“在启动时自动启动MySQL服务器”的勾号
sudo /usr/local/mysql/support-files/mysql.server start
-PS:这是为了确保其在线,时间是下一个进程在我身上打破。sudo /usr/local/mysql/support-files/mysql.server stop
sudo mysqld_safe --skip-grant-tables
这将绕过MySQL的安全性 - 对操作不安全,而不是永远允许你使用MySQL的永久解决方案。
目前,如您所见,它在一个过程中...这将允许我们执行以下步骤。在剩余的过程中保留终端OPEN的这个标签!! 现在Cmd + N(新终端窗口),并在新终端中:
- sudo /usr/local/mysql/support-files/mysql.server start
- update user set authentication_string=password(‘jj’) where user='root'
旧版本的版本为update user set password=PASSWORD(“jj”) where user='root’;
- FLUSH PRIVILEGES;
//这是必不可少的(更新磁盘而不是缓存)以确保下次关闭mysql并返回时它可以在您设置时保持可访问状态。
- \q
或quit
全部关闭 - 所有终端,让计算机重新启动,并确保一切正常(当然需要 - 重启 - 打开终端 - mysql -u root -p
(输入) - 回复您在上述步骤中提供的密码)。
在我的回答中:jj
是密码集
Cool-Stuff对于相当新的一般知识(这在某种程度上立即对我有用之后说密码不是一个字段或类似的东西,在update user set authentication_string=password(‘jj’) where user='root'
的这个新终端,所以如果你有相同的,按照以下步骤进行操作 - 在> mysql本身,你在哪里..):
- use mysql;
- show tables;
- describe user;
然后从update user set authentication_string=password(‘jj’) where user='root'