我知道如何在 ubuntu 上跳过这个问题,但我如何在 MAC OS 上做到这一点?
如何在 MAC 上设置 mysql 的密码?
1) 不起作用
mysqladmin -u root password NEWPASSWORD
2)不起作用
mysqld --skip-grant-tables --skip-networking &
3)这有效:
我知道如何在 ubuntu 上跳过这个问题,但我如何在 MAC OS 上做到这一点?
如何在 MAC 上设置 mysql 的密码?
1) 不起作用
mysqladmin -u root password NEWPASSWORD
2)不起作用
mysqld --skip-grant-tables --skip-networking &
3)这有效:
您可以在 Mac (El Capitan) 上执行以下操作
打开终端窗口,如果 mysql 已经在运行,请使用以下命令停止它。
sudo /usr/local/mysql/support-files/mysql.server stop
您还可以检查 System Preferences > MySQL 以查看它是否正在运行
使用以下命令启动 MySQL:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
打开一个新的终端窗口/选项卡:
sudo /usr/local/mysql/bin/mysql -u root
这应该打开“mysql”提示。执行以下命令:
$mysql> UPDATE user SET authentication_string=PASSWORD("my_password") WHERE User='root';
故障排除提示:
A) 5.7 之前的 MySql 版本的命令是:
$mysql> UPDATE user SET Password=PASSWORD('my_password') where USER='root';
B) 如果您看到ERROR 1046 (3D000): No database selected
,请先运行此命令:
use mysql;
C) 如果您看到未知的“密码”字段错误,请运行以下命令:
UPDATE USER SET AUTHENTICATION_STRING=password('NewPassword') WHERE user='root';
$mysql> FLUSH PRIVILEGES;
$mysql> EXIT
停止 MySql 服务器
sudo /usr/local/mysql/support-files/mysql.server stop
通过 System Preferences > MySql 或使用命令重新启动 MySQL。
的解决方案
UPDATE user SET authentication_string=PASSWORD("my_password") WHERE User='root';
不是为我工作,但我做到了
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
并且能够继续进行。我正在使用 8.0.12 版。
您可以在 iMac 或 Mac (High Sierra) 上执行以下操作
打开终端窗口,如果 mysql 已经在运行,则停止它。您还可以检查此系统偏好设置 > MySQL > 查看它是否正在运行。
使用此命令启动 MySQL 以跳过主表
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
打开一个新的终端窗口/选项卡..
sudo /usr/local/mysql/bin/mysql -u root
这应该打开“mysql”提示。执行以下命令:
A) MySQL 5.6 及以下
UPDATE mysql.user SET password=PASSWORD('NewPassord') WHERE user='root';
- 或者 -
B) MySQL 5.7+
UPDATE mysql.user SET authentication_string=PASSWORD('NewPassord') WHERE user='root';
通过 System Preferences > MySql 或使用命令重新启动 MySQL。
MACOS 10.14 莫哈韦 || MYSQL 8.0.15
这在我的 Mac 上不起作用:
sudo /usr/local/mysql/support-files/mysql.server 停止
但这实际上有效:
sudo /usr/local/mysql-8.0.15-macos10.14-x86_64/support-files/mysql.server stop
安装文件夹可能因用户而异,请注意!
或者只是检查 > 系统首选项 > MySQL > 如果服务器正在运行,请停止它。
然后,
使用以下命令启动 MySQL:
sudo /usr/local/mysql-8.0.15-macos10.14-x86_64/bin/mysqld_safe --skip-grant-tables
打开一个新的终端窗口/选项卡:
sudo /usr/local/mysql-8.0.15-macos10.14-x86_64/bin/mysql -u root
这应该打开“mysql”提示。执行以下命令(*scroll right if you don't full query):
UPDATE mysql.user SET authentication_string='your-password-goes-here' WHERE user='root' and host='localhost';
请记住
mysql-8.0.15-macos10.14-x86_64
(在我的情况下)是本地机器上的安装文件夹,由于操作系统版本、mysql 版本、使用的安装方法等,它可能与我的不同,也可能不同。
MariaDB 版本的非常简单的修复:10.4.6-MariaD
在Mojave
macOS上
我已经浏览了所有答案。其中一些对我有用,而另一些则不是。我找到了一种在 macOS 或 OSX 上解决此问题的简单方法。以下是步骤:
先决条件:
应该安装自制软件。使用以下链接在 macOS 或 OSX 上安装 homebrew。
安装 mariadb:
brew install mariadb
mysql.server start
或运行brew services start mariadb
以在登录计算机时启动 MySQL 服务器。sudo mysql -u root
注意:mysql -u root
将抛出错误ERROR 1698 (28000): Access denied for user 'root'@'localhost'
,因此请用于sudo
运行此命令。
现在要更改root
用户的密码,我尝试了以下命令:
UPDATE user SET password=PASSWORD("mypassword") WHERE User='root';
ERROR 1348 (HY000): Column 'Password' is not updatable
UPDATE user SET authentication_string=PASSWORD("mypassword") WHERE User='root';
ERROR 1348 (HY000): Column 'authentication_string' is not updatable
但是以下命令有效:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mypassword';
Query OK, 0 rows affected (0.009 sec)
因此,对于10.4.6-MariaD
通过 brew 安装的版本,这对我来说是一个简单的修复。希望这对你也有帮助。
sudo mysql -uroot
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
flush privileges;
Ctrl+D
mysql -uroot -pnew_password # will work now
注意sudo
第一行的。
对于 MySQL 5.7,我必须使用:
更新用户 SET authentication_string = PASSWORD('YourNewPassword'), password_expired = 'N' WHERE User = 'root';
我曾经尝试过所有解决方案,但没有任何效果。终于突然间我找到了解决方案!我使用 10.5.8-MariaDB Homebrew。
USE mysql;
SELECT user, authentication_string, plugin, host FROM mysql.user;
由于某些原因 authentication_string 无效,这是我们需要修复的
然后只需运行以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '';
我很难在 MAC Sierra、10.12.6、MySql 版本 5.7.17 上解决这个问题
以下步骤对我有用:
打开终端窗口,如果 mysql 已经在运行,请使用以下命令停止它。
sudo /usr/local/mysql/support-files/mysql.server 停止
使用以下命令启动 MySQL:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
打开一个新的终端窗口/选项卡:
sudo /usr/local/mysql/bin/mysql -u root
这将打开“mysql”提示。在mysql提示符下一一执行以下命令:
use mysql;
UPDATE user SET authentication_string = PASSWORD('my_new_password'), password_expired = 'N' WHERE User = 'root';
FLUSH PRIVILEGES;
EXIT
现在先停止 MySql 服务器,然后使用以下命令启动它
sudo /usr/local/mysql/support-files/mysql.server 停止
sudo /usr/local/mysql/support-files/mysql.server 开始
希望这可以解决您的问题。
我正在使用 Mac,我的解决方案与上面的有点不同
cd到我安装mysql的文件夹。就我而言,这是cd /opt/homebrew/Cellar/mysql/8.0.27/bin
因为我曾经brew
安装过mysql
类型mysql
类型FLUSH PRIVILEGES;
类型ALTER USER 'root'@'localhost' IDENTIFIED BY 'password you want';
如果你看到ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
错误。只需输入大写字母+数字+特殊字符的密码
我发现在 Mac Mojave 中,至少如果你直接从下载 MySQL 社区包而不是通过 brew 进行安装,显然你仍然需要在停止后通过系统偏好设置屏幕插入你为“root”选择的密码,重新启动安全模式(--skip-grant-tables)和刷新权限。然后您可以在 phpMyAdmin 中以 root 身份登录。这是在尝试了至少 20 组不同的建议/说明来解决这个问题之后,包括本页上面列出的那些。希望它可以帮助某人!
Mac OSX 12.1(蒙特雷)
在 x86_64 上安装了 Oracle MySql: mysql Ver 8.0.28 for macos11 (MySQL Community Server - GPL)
安装后使用软件包安装,您设置的 root 密码不会保存在服务器内的mysql数据库中。我从上面尝试了一些更新用户命令,最终解决了这个问题的是系统偏好设置 > MySql > 初始化数据库 > [再次设置密码]。
停止数据库并重新启动能够与 root 用户创建会话。现在它正在工作,我有点想把它扔掉,只是为了头疼而改用 mariadb。