2013-08-20 172 views
4

我知道如何在Ubuntu上跳过这个问题,但是我怎样才能在MAC OS上做到这一点?访问被拒绝用户root - mysql在MAC上操作系统

如何在MAC上设置mysql密码?

1)不工作

mysqladmin -u root password NEWPASSWORD 

2)不工作

mysqld --skip-grant-tables --skip-networking & 

3)这工作:

mysql root password forgotten

+0

有一个你不知道已经设置的密码,或者你只需​​要设置一个初始密码? –

+0

我现在不需要这个。 MySQL现在停止工作,任何卸载都不会修复它。 – Wordica

+0

删除周围的所有数据文件。 – akostadinov

回答

14

你可以做以下的Mac(El Capitan)

  1. 打开一个终端窗口,如果它已经在运行,停止mysql。如果正在运行

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

您还可以检查该系统首选项> MySQL的“看

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables

  • 开始= ”2“>
  • 启动MySQL

    打开新的终端窗口/标签。

    sudo /usr/local/mysql/bin/mysql -u root

    这应该打开“mysql”提示符。执行以下命令:

    $mysql> UPDATE user SET Password=PASSWORD('my_password') where USER='root';

    如果你看到ERROR 1046 (3D000): No database selected,运行此命令第一:use mysql;

    如果你看到未知 “密码” 字段中的错误,然后运行这个命令:

    UPDATE USER SET AUTHENTICATION_STRING=password('NewPassword') WHERE user='root'; $mysql> FLUSH PRIVILEGES; $mysql> EXIT

  • Stop MySql server

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

  • 通过系统偏好设置> MySql或使用命令重新启动MySQL。

  • +0

    MySQL 5.7,密码字段被重命名为'authentication_string'。应该用下面的命令代替: $ mysql> UPDATE user SET authentication_string = PASSWORD(“my_password”)WHERE User ='root'; – Starchand

    +0

    看起来像这样不再有效,我得到'ERROR 1046(3D000):没有选择数据库' – Sudara

    +0

    完美工作。我想知道为什么在开始时安装和启动数据库非常复杂。它是否设计出一些新用户? – MobileDev

    1

    对于MySQL 5.7我不得不使用:

    UPDATE SET用户= authentication_string PASSWORD( 'YourNewPassword'), password_expired = 'N' WHERE用户= '根';

    +1

    这在Sierra 10.12.6上使用MySQL 5.7执行,但仍然不允许在使用“mysql -u root -p admin”重新启动数据库后登录。 让我感到惊讶的是,有多少时间被浪费在尝试做一些应该很简单的事情上。 – rakehell

    2

    你可以做的iMac或Mac(高塞拉利昂)

    打开一个终端窗口中输入以下,并停止MySQL,如果它已经运行。您还可以检查此系统首选项> MySQL>查看它是否正在运行。

    启动MySQL与此命令用于跳过主表

    sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables 
    

    打开一个新的终端窗口/标签..

    sudo /usr/local/mysql/bin/mysql -u root 
    

    这应该打开 “的MySQL” 的提示。执行以下命令:

    UPDATE mysql.user SET password=PASSWORD('NewPassord') WHERE user='root'; 
    

    重新启动MySQL,可以通过系统首选项> MySql或使用命令。

    +0

    从MySQL 5.7中,mysql.user表中的密码字段被称为“authentication_string”,因此查询变成了'UPDATE mysql.user SET authentication_string = PASSWORD('NewPassword')WHERE user ='root';' – roibeart

    相关问题