在OS X上设置MySQL root用户密码
我刚刚在Mac OS X上安装了MySQL。下一步是设置root用户密码,所以我这样做了:
- 启动terminal应用程序访问Unix命令行。
-
在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设置的密码并需要重置它,请按照下列步骤操作:
- 停止mysqld服务器,每次安装都会有所不同
- 以特权旁路的安全模式运行服务器
sudo mysqld_safe --skip-grant-tables;
- 在新窗口中连接到数据库,设置一个新的密码并刷新权限并退出:
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
- 停止安全模式服务器并启动常规服务器。 新的密码现在应该工作。 就像我的魅力:)
一旦你安装了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:
-
安装后重新启动Mac。
-
启动Mysql:
系统偏好设置> Mysql>开始button
-
转到terminal中的Mysql安装文件夹:
cd /usr/local/mysql/bin/
-
访问Mysql:
$ ./mysql -u root -p
并input给安装的初始密码。
-
在Mysqlterminal中更改密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
-
停止mysqld服务器。 通常,这可以通过从“系统预置”> MySQL>“停止MySQL服务器”
-
以特权旁路的安全模式启动服务器
从docker:
sudo / usr / local / mysql / bin / mysqld_safe –skip-grant-tables
-
在新的terminal窗口中:
sudo / usr / local / mysql / bin / mysql -u root
UPDATE mysql.user SET authentication_string = PASSWORD('NewPassword')WHERE User ='root';
FLUSH PRIVILEGES;
\ q
-
再次停止mysqld服务器并以正常模式重新启动它。
当我安装OS X优胜美地时,我遇到了Mysql的问题。 我尝试了很多方法,但都没有工作。 我其实find了一个很简单的方法。 试试这个。
- 首先从su权限loginterminal。
sudo su
- 停止mysql
sudo /usr/local/mysql/support-files/mysql.server stop
- 以安全模式启动:
sudo mysqld_safe --skip-grant-tables
- 打开另一个terminal,以su权限login,不用密码loginmysql
mysql -u root
- 更改密码
UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';
- 刷新特权
FLUSH PRIVILEGES;
- 你现在完成了