我刚刚在Mac OS X上安装了MySQL . 下一步是设置root用户密码,所以接下来我做了这个:
-
启动终端应用程序以访问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
命令行!
为什么是这样?
16 回答
登录MySQL终端时,请尝试使用命令
FLUSH PRIVILEGES
. 如果这不起作用,请在MySQL终端中尝试以下命令集用你想要的任何密码更改NEWPASSWORD . 应该全部设定!
Update :从MySQL 5.7开始,
password
字段已重命名为authentication_string
. 更改密码时,请使用以下查询更改密码 . 所有其他命令保持不变:如果您忘记了为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密码,并且您无需密码即可登录 .
那就是说,你需要 Build 一个root密码 .
使用终端输入以下内容:
安装:设置root用户密码:
如果您犯了错误,或者需要更改root密码,请使用以下命令:
更改root密码:
停止mysqld服务器 .
Mac OSX:
System Preferences
>MySQL
>Stop MySQL Server
Linux (From Terminal):
sudo systemctl stop mysqld.service
使用权限绕过以安全模式启动服务器
From Terminal:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
在 new 终端窗口中:
sudo /usr/local/mysql/bin/mysql -u root
这将打开mysql命令行 . 从这里输入:
UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';
FLUSH PRIVILEGES;
quit
再次停止mysqld服务器并以正常模式重新启动它 .
Mac OSX (From Terminal):
sudo /usr/local/mysql/support-files/mysql.server restart
Linux Terminal:
sudo systemctl restart mysqld
mysql网站提供的说明是如此清晰,比上面提到的
$ sudo /usr/local/mysql/support-files/mysql.server stop
$ sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables
/usr/local/mysql/support-files/mysql
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'MyNewPass';
mysql>
exit
或Ctrl z$ sudo /usr/local/mysql/support-files/mysql.server start
/usr/local/mysql/support-files/mysql -u root -p
输入新密码,即MyNewPass
参考:http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
对于新的Mysql 5.7由于某种原因,Mysql的bin命令没有附加到shell:
安装后重启Mac .
启动Mysql:
系统偏好设置> Mysql>开始按钮
$ cd /usr/local/mysql/bin/
$ ./mysql -u root -p
并输入给安装的初始密码 .
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
在终端中,写入
mysql -u root -p
并点击Return . 输入您必须记下的当前mysql密码 . 并设置密码SET PASSWORD = PASSWORD('new_password');
有关更多详细信息,请参阅此文档here .
如果您忘记了MySQL root密码,无法记住或想要中断......您可以在Linux或OS X中从命令行重置mysql数据库密码,只要您知道该框的root用户密码即可你是在:
(1)停止MySQL
(2)以安全模式启动:
(3)这将是一个持续的命令,直到该过程完成 so open another shell/terminal window ,无需密码登录:
在上面的UPDATE命令中,只需用您自己的新密码替换'password',确保保留引号
(4)保存完全
(5)启动MySQL
当我安装OS X Yosemite时,我遇到了Mysql的问题 . 我尝试了很多方法,但都没有用 . 我实际上发现了一种非常简单的方法试试吧 .
sudo su
sudo /usr/local/mysql/support-files/mysql.server stop
sudo mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
现有答案中提到的方法不适用于mysql 5.7.6或更高版本 . 根据mysql文档,这是推荐的方法 .
B.5.3.2.3 Resetting the Root Password: Generic Instructions
MySQL 5.7.6及更高版本:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
参考:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
如果您忘记密码,@radtek's answer为我工作,除了在我的情况下,我有set up MySQL using brew这意味着他的第1步和第2步答案必须改为:
/usr/local/bin/mysql.server stop
/usr/local/bin/mysqld_safe --skip-grant-tables
Note: 缺少
sudo
.停止MySQL服务器
sudo /usr/local/mysql/support-files/mysql.server stop
以安全模式启动MySQL
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
更改root密码
/usr/local/mysql/bin/mysql -u root
测试
运行
/usr/local/mysql/bin/mysql -u root
现在输入新密码以开始使用MySQL .
如果您忘记了密码或想要将其更改为您的mysql:
为您输入系统通行证
停止你的mysql:
其中“new_password” - 你的新通行证 . 你不需要mysql的旧传递 .
这正是对我有用的:
MySQL 8的变化很大 . 我发现_580773的以下修改适用于Mac OS X.
使用SQL创建临时文件
$HOME/mysql.root.txt
以更新root密码:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<new-password>';
这使用
mysql_native_password
来避免Authentication plugin 'caching_sha2_password' cannot be loaded错误,如果省略该选项,我会得到错误 .停止服务器,以
--init-file
选项开始设置root密码,然后重新启动服务器:mysql.server stop mysql.server start --init-file=$HOME/mysql.root.txt mysql.server stop mysql.server start
我认为这应该有效:
(注意,如果root不是root,你应该用你的用户名替换root)