我知道怎么在ubuntu上跳过这个问题,但我怎么能在MAC OS上做呢?
如何在MAC上为mysql设置密码?
1)不起作用
mysqladmin -u root password NEWPASSWORD
2)不起作用
mysqld --skip-grant-tables --skip-networking &
3)这有效:
答案 0 :(得分:32)
您可以在Mac(El Capitan)上执行以下操作
打开终端窗口,如果已经运行,请使用以下命令停止mysql。
sudo /usr/local/mysql/support-files/mysql.server stop
您还可以查看系统偏好设置> 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
通过系统偏好设置>重启MySQL MySql或使用命令。
答案 1 :(得分:5)
您可以在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';
通过系统偏好设置>重启MySQL MySql或使用命令。
答案 2 :(得分:3)
对于MySQL 5.7,我不得不使用:
更新用户SET authentication_string = PASSWORD(' YourNewPassword'), password_expired =' N'用户=' root';
答案 3 :(得分:3)
解决方案
App.bootstrap(args, "profiles=mysql,prod", "on.address=0.0.0.0", "on.port=8886" ).jpa();
不是为我工作,但我确实是
UPDATE user SET authentication_string=PASSWORD("my_password") WHERE User='root';
并且能够继续。我正在使用8.0.12版。
答案 4 :(得分:3)
针对MariaDB版本的非常简单的修复:10.4.6-MariaD
macOS上的Mojave
我已经回答了所有答案。其中一些为我工作,有些则没有。我找到了一种在macOS或OSX上解决此问题的简单方法。步骤如下:
先决条件:
应该安装Homebrew。使用以下link在macOS或OSX上安装自制软件。
安装mariadb:
brew install mariadb
mysql.server start
或运行brew services start mariadb
以在登录计算机时启动MySQL Server。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)
因此,对我来说,这是通过brew安装的10.4.6-MariaD
版本的简单修复。希望这也会对您有帮助。
答案 5 :(得分:2)
MACOS 10.14 MOJAVE || MYSQL 8.0.15
这在我的Mac上不起作用:
sudo /usr/local/mysql/support-files/mysql.server stop
这实际上是可行的:
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”提示。执行以下命令(如果没有完整的查询,请向右滚动*):
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版本,所使用的安装方法等原因,它可能与我的不同。
答案 6 :(得分:0)
我很难在MAC Sierra 10.12.6,MySql版本5.7.17上解决此问题
以下步骤对我有用:
打开“终端”窗口,如果已经运行mysql,请使用以下命令停止mysql。
sudo /usr/local/mysql/support-files/mysql.server stop
使用以下命令启动MySQL:
sudo / usr / local / mysql / bin / mysqld_safe --skip-grant-tables
打开一个新的终端窗口/标签:
sudo / usr / local / mysql / bin / mysql -u根
这将打开“ 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 stop
sudo /usr/local/mysql/support-files/mysql.server start
希望这可以解决您的问题。
答案 7 :(得分:0)
我发现,在Mac Mojave中,至少如果直接从下载MySQL Community Package而不是通过brew进行安装,那么显然,您仍然需要在停止后通过“系统偏好设置”屏幕插入为“ root”选择的密码,以安全模式(--skip-grant-tables)和刷新特权重新启动。然后,您可以以root用户身份登录phpMyAdmin。这是在尝试了至少20套不同的建议/说明(包括此页上面列出的建议)之后解决的。希望它能对某人有所帮助!
答案 8 :(得分:0)
sudo mysql -uroot
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
flush privileges;
Ctrl+D
mysql -uroot -pnew_password # will work now
请注意第一行的sudo
。
答案 9 :(得分:0)
我曾经尝试过所有解决方案,但没有任何效果。最终,突然我找到了解决方案!我使用10.5.8-MariaDB Homebrew。
USE mysql;
SELECT user, authentication_string, plugin, host FROM mysql.user;
For some reasons authentication_string is invalid and it's what we need to fix
然后只需运行以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '';