在OS X上设置MySQL root用户密码

我刚刚在Mac OS X上安装了MySQL。下一步是设置root用户密码,所以我这样做了:

  1. 启动terminal应用程序访问Unix命令行。
  2. 在Unix提示符下,我执行了这些命令:

    $ cd /usr/local/mysql/bin $ ./mysqladmin -u root password 'password' 

但是,当我执行命令

$ ./mysql -u root ,这是答案:

 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 224 Server version: 5.5.13 MySQL Community Server (GPL) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> 

我可以进入没有任何密码的mysql命令行!

为什么是这样?

当你login到MySQLterminal时,试试命令FLUSH PRIVILEGES 。 如果这不起作用,请在MySQLterminal中尝试以下一组命令

 $ mysql -u root mysql> USE mysql; mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> quit 

用你想要的密码更换NEWPASSWORD。 应该全部设置!

更新 :从MySQL 5.7开始, password字段已被重命名为authentication_string 。 更改密码时,请使用以下查询更改密码。 所有其他命令保持不变:

 mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root'; 

如果您不记得为root设置的密码并需要重置它,请按照下列步骤操作:

  1. 停止mysqld服务器,每次安装都会有所不同
  2. 以特权旁路的安全模式运行服务器

sudo mysqld_safe --skip-grant-tables;

  1. 在新窗口中连接到数据库,设置一个新的密码并刷新权限并退出:

mysql -u root

对于MySQL 5.7以前的MySQL,使用:

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

对于MySQL 5.7+使用:

USE mysql;

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

刷新并退出:

FLUSH PRIVILEGES;

\q

  1. 停止安全模式服务器并启动常规服务器。 新的密码现在应该工作。 就像我的魅力:)

一旦你安装了MySQL,你需要build立“root”密码。 如果你没有build立root密码,那么没有root密码,你不需要密码login。

所以,这就是说,你需要build立一个root密码。

使用terminalinput以下内容:

安装:设置root用户密码:

 /usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE 

如果您犯了错误,或者需要更改root密码,请使用以下命令:

更改root密码:

 cd /usr/local/mysql/bin/ ./mysql -u root -p > Enter password: [type old password invisibly] use mysql; update user set password=PASSWORD("NEW_PASSWORD_HERE") where User='root'; flush privileges; quit 

在mysql网站上提供的说明比上面提到的要清楚

 1. sudo /usr/local/mysql/support-files/mysql.server stop 2) sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables 3) /usr/local/mysql/support-files/mysql 4) mysql> FLUSH PRIVILEGES; 5) mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; 6) Ctrl + z 7) sudo /usr/local/mysql/support-files/mysql.server start 8) /usr/local/mysql/support-files/mysql -u root -p 9) enter the new password ie MyNewPass 

http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

在terminal中,写入mysql -u root -p并点击Return。 input您必须记下的当前mysql密码。 并设置密码SET PASSWORD = PASSWORD('new_password');

有关更多详细信息,请参阅此文档。

如果你忘记了MySQL的root密码,不记得或者想破解…你可以在Linux或OS X的命令行重置mysql数据库的密码,只要知道该密码的root用户密码你是在:

(1)停止MySQL

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

(2)以安全模式启动:

 sudo mysqld_safe --skip-grant-tables 

(3)这将是一个持续的命令,直到完成这个过程,打开另一个shell /terminal窗口 ,login时不需要input密码:

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

在上面的UPDATE命令中,用您自己的新密码replace“密码”,确保保留引号

(4)保存和相当

 FLUSH PRIVILEGES; \q 

(5)启动MySQL

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

对于新的Mysql 5.7由于某些原因Mysql的bin命令没有附加到shell:

  1. 安装后重新启动Mac。

  2. 启动Mysql:

    系统偏好设置> Mysql>开始button

  3. 转到terminal中的Mysql安装文件夹:

    cd /usr/local/mysql/bin/

  4. 访问Mysql:

    $ ./mysql -u root -p

并input给安装的初始密码。

  1. 在Mysqlterminal中更改密码:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';

  1. 停止mysqld服务器。 通常,这可以通过从“系统预置”> MySQL>“停止MySQL服务器”

  2. 以特权旁路的安全模式启动服务器

    从docker:

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

  3. 在新的terminal窗口中:

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

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

    FLUSH PRIVILEGES;

    \ q

  4. 再次停止mysqld服务器并以正常模式重新启动它。

当我安装OS X优胜美地时,我遇到了Mysql的问题。 我尝试了很多方法,但都没有工作。 我其实find了一个很简单的方法。 试试这个。

  1. 首先从su权限loginterminal。

sudo su

  1. 停止mysql

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

  1. 以安全模式启动:

sudo mysqld_safe --skip-grant-tables

  1. 打开另一个terminal,以su权限login,不用密码loginmysql

mysql -u root

  1. 更改密码

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

  1. 刷新特权

FLUSH PRIVILEGES;

  1. 你现在完成了