MySQL密码问题(Mac OS X Lion)

23

我正在尝试在Mac OS X Lion终端中设置MySQL的root密码,但遇到了问题。每次使用以下命令:

/usr/local/mysql/bin/mysqladmin -u root password ******  (where ****** is the password I want to set)

我收到了以下错误:

/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

我之前没有设置过密码,所以我不知道为什么会收到这个错误。


你是要更改旧密码还是第一次创建密码? - Kashif Khan
12个回答

37

以下是重置root用户密码的步骤:

1)停止mysql(结束mysql进程或执行以下命令)

sudo /usr/local/mysql/support-files/mysql.server stop

2) 在安全模式下启动它

sudo mysqld_safe --skip-grant-tables

3) 打开另一个终端并运行以下命令(保持最后一个终端打开)

mysql -u root

4) 在 mysql 控制台上,使用适当的新密码运行以下命令

对于 MySQL 5.7+:

mysql > UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';

对于早期版本:

mysql > UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

5) mysql > FLUSH PRIVILEGES;

5) mysql > 清空权限缓存;

6) Quit from both terminals and open new terminal and connect to mysql with root user and new password

6) 关闭所有终端窗口,打开新的终端窗口并使用根用户和新密码连接到mysql。

mysql -uroot -p

谢谢,它解决了我的问题 :) - user2473975
我在输入1)后遇到了这个错误:“错误!找不到MySQL服务器PID文件!” - user124384
1
FYI:在新版本的MySQL中,“password”字段已更名为“authentication_string”。 - Raul Rene
@minhas2,你的解决方案是在我沮丧了两个小时后唯一有效的。谢谢 :) - Death Metal
获取错误:未知列密码。 - Rahul
我删除了文件夹“sudo rm -rf /usr/local/mysql”,然后重新安装了mysql,在安装过程中生成了一个新密码。 - Willem

23

类型:/usr/local/mysql/bin/mysqladmin -u root -p password

当它要求输入密码时,不要输入任何内容,只需按回车键。 然后它会要求输入新密码,并进行确认。 完成。


非常好用(Mac OS X Lion) - Brajeshwar
27
对我来说不起作用。仍然是:连接到“localhost”服务器失败 错误:'Access denied for user 'root'@'localhost' (using password: NO)' - EZDC

6

创建密码时,首次使用

mysqladmin -u root password NEWPASSWORD

更新旧密码使用
mysqladmin -u root -p'oldpassword' password newpass

来源 = http://www.cyberciti.biz/faq/mysql-change-root-password/

这里介绍如何在MySQL中更改root用户的密码。以下是步骤:
1.停止MySQL服务。
2.使用mysqld_safe选项启动MySQL服务,该选项将跳过授权表检查。
3.使用mysql客户端以root身份登录。
4.更改root用户的密码。
5.重启MySQL服务,并使用新密码进行登录。
请注意,此过程可能会有所不同,具体取决于您的MySQL版本和操作系统。

2
真的吗?我刚刚打了什么,你还是给出同样的答案?它不起作用!我想第一次创建一个密码。我最大的进展是,我输入了:/usr/local/mysql/bin/mysqladmin -u root -p密码,然后提示我输入密码:... 不过,在输入密码行中,无法键入(终端中没有出现任何类型)。但是当我尝试键入并按回车时,现在会出现错误:连接到'localhost'服务器失败 错误:'Access denied for user 'root'@'localhost' (using password: YES)' - user1072337
1
看起来你已经创建了密码,MySQL 正在要求你使用该密码登录。我猜你因为错误而忘记了密码。你需要重置这个密码。访问此链接以了解如何重置 MySQL 密码:http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html - Kashif Khan
按照“Unix”指示,我在我的系统上找不到.pid文件。这里有什么我错过的东西吗? - user1072337
我找到了文件,但是当我在终端中输入:shell> kill `cat /mysql-data-directory/(my host_name).pid时,我收到以下错误提示: - user1072337
猫:/mysql-data-directory/(我的主机名).pid:没有这个文件或目录 -bash: shell: 命令未找到 - user1072337
我没有Mac OS直接帮助你...请检查此链接http://serverfault.com/questions/67111/reset-mysql-5-root-password-on-mac-os-x - Kashif Khan

3

我在使用Yosemite操作系统,但是Maverick系统也有同样的问题。 - 如果您还没有解决2002套接字错误,请先解决它。

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

然后尝试

sudo /usr/local/mysql/bin/mysqladmin -u root -p password

谢谢你的回答!你无法想象这对我有多大帮助。我在一个回答中找到了两个问题的解决方案。 - M1X

1

那不是设置密码的方法,那是登录到mysql的方法。

如果您没有设置密码,可以使用以下方式登录:

mysql -u root

这将带您进入MySQL命令行。

不要那样做,只需使用以下内容更改密码。

mysqladmin -u root password NEWPASSWORD

当我在终端中只输入mysqladmin -u root password NEWPASSWORD时,我收到以下提示:-bash: mysqladmin命令未找到。 - user1072337
1
而你刚才输入的Kayak,就是我在问题中输入的内容,但我仍然收到错误提示,无法使用该命令设置密码。 - user1072337
当我使用mysqladmin -u root -p'oldpassword' password newpass时,我收到相同的错误消息,但现在它会显示“using Password:YES”。 - user1072337

1
cd /usr/local/mysql/bin

./mysqladmin -u root password root

1

安装后设置根密码:

  1. 确保MySQL未运行,如果已经运行,请停止它。
  2. 在终端上执行sudo mysqld_safe --skip-grant-tables以绕过身份验证运行MySQL。
  3. 在mysql中执行FLUSH PRIVILEGES;
  4. 然后通过SET PASSWORD FOR root@'localhost' = PASSWORD('password');重置密码,其中'password'是您选择的密码。
  5. 再次执行FLUSH PRIVILEGES;

0
这是我的解决方法: 接下来会要求您输入超级用户密码和新密码。
sudo /usr/local/mysql/bin/mysqladmin -u root -p password

我在这样做后又一次遇到了这个错误。 - user124384

0

您将失去所有数据库

步骤1:打开终端

步骤2:删除mysql文件夹 sudo rm -rf /usr/local/mysql

步骤3:重新安装mysql,安装完成后会生成一个新的密码


0

您想要重置或设置新的root密码吗?

MySQL 5.7.5及早期版本的步骤:

打开终端窗口:

  1. 如果mysql服务器正在运行,请停止它:

    sudo /usr/local/mysql/support-files/mysql.server stop

  2. 使用--skip-grant-tables选项重新启动:

    sudo mysqld_safe --skip-grant-tables

打开另一个终端窗口:

  1. 输入: mysql -u root

  2. 重置root密码(例如localhost)

    UPDATE mysql.user SET authentication_string = PASSWORD(‘MyNewPass’), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost'; FLUSH PRIVILEGES;

现在,您在root@localhost的密码是MyNewPass。您可以更改它:

  • 关闭所有终端窗口。打开一个新的终端窗口并输入以下命令:

    mysqladmin -u root -p'MyNewPass' password '123456'

    现在您的root密码是123456

    如果您正在更改root@localhost密码,则可以忽略下面的警告消息:

    mysqladmin:[警告]在命令行界面上使用密码可能不安全。警告:由于密码将以明文形式发送到服务器,因此请使用ssl连接以确保密码安全。

  • 检查您的root密码是否已成功更改:

    mysql -u root -p'123456' -e 'show databases;'

    输出:

    mysql:[警告]在命令行界面上使用密码可能不安全。

    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | mysql |
    | performance_schema |
    | sys |
    +--------------------+


  • 网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接