如何从MySQL命令行客户端将root
MySQL用户的密码更改为null
- 意味着没有密码或''
?
答案 0 :(得分:75)
为我和“5.7.11 MySQL社区服务器”工作:
use mysql;
update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';
我还必须更改'plugin'字段,因为它被设置为'auth_socket'。
之后我可以在没有密码的情况下以mysql -u root
身份连接。
答案 1 :(得分:53)
如果您想要一个空密码,您应该将密码设置为null,而不是使用密码哈希函数,如下所示:
在命令行上:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -uroot
在MySQL中:
use mysql;
update user set password=null where User='root';
flush privileges;
quit;
答案 2 :(得分:51)
mysql -p
启动mysql,输入当前root密码mysql -u root -p
启动mysql,输入当前root密码mysql> set password = password('');
完成!没有root密码。
答案 3 :(得分:19)
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('');
答案 4 :(得分:14)
这对我来说在Ubuntu 16.04上使用v5.7.15 MySQL:
首先,确保安装了mysql-client(sudo apt-get install mysql-client
)。
打开终端并登录:
mysql -uroot -p
(然后输入密码)
之后:
use mysql;
update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';
(tnx @Stanislav Karakhanov)
最后一件重要的事情是重置mysql服务:
sudo service mysql restart
您现在应该可以使用MySQL Workbench登录(不使用密码)。
答案 5 :(得分:14)
您可以通过以下五个简单步骤恢复MySQL数据库服务器密码。
步骤#1 :停止MySQL服务器进程。
第2步:使用--skip-grant-tables选项启动MySQL(mysqld)服务器/守护程序进程,以便它不会提示输入密码。
第3步:以root用户身份连接到mysql服务器。
步骤#4 :设置新的mysql root帐户密码,即重置mysql密码。
步骤#5 :退出并重启MySQL服务器。
以下是您需要为每个步骤键入的命令(以root用户身份登录):
第1步:停止mysql服务
# /etc/init.d/mysql stop
输出:
Stopping MySQL database server: mysqld.
第2步:启动没有密码的MySQL服务器:
# mysqld_safe --skip-grant-tables &
输出:
[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started
第3步:使用mysql客户端连接到mysql服务器:
# mysql -u root
输出:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
步骤#4 :设置新的MySQL root用户密码
mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
第5步:停止MySQL服务器:
# /etc/init.d/mysql stop
输出:
Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended
[1]+ Done mysqld_safe --skip-grant-tables
第6步:启动MySQL服务器并对其进行测试
# /etc/init.d/mysql start
# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
# mysql -u root -p
来源:http://www.cyberciti.biz/tips/recover-mysql-root-password.html
答案 6 :(得分:5)
直接编辑mysql
数据库不是一个好主意。
我更喜欢以下步骤:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '';
mysql> flush privileges;
答案 7 :(得分:4)
仅对于MySQL 8.0:
SET PASSWORD FOR 'root'@'localhost' = '';
答案 8 :(得分:1)
user64141的回答
use mysql;
update user set password=null where User='root';
flush privileges;
quit;
在MariaDB 10.1.5中没有为我工作(应该是MySQL的替代品)。虽然没有在MySQL 5.6中测试它以查看是否是上游更改,但我得到的错误是:
ERROR 1048(23000):专栏'密码'不能为空
但用空单引号或双引号替换null工作正常。
update user set password='' where User='root';
或
update user set password="" where User='root';
答案 9 :(得分:1)
这是来自MySQL 8.0.13:
use mysql;
update user set authentication_string=null where user='root';
quit;
答案 10 :(得分:1)
它对我有用。
ALTER USER'root'@'localhost'用mysql_native_password识别BY'密码'
答案 11 :(得分:0)
我正在使用nodejs和windows 10.两个答案的组合对我有用。
restart;
接下来是:
(\d{14}\s.*(?:\n*(?!^\d{14}).*)*)
希望这对那些仍然存在问题的人有所帮助。
答案 12 :(得分:0)
我注意到上面的一些解决方案现在已被弃用。
要设置一个空密码,只需执行以下步骤:
mysql -u root -p
use mysql
SET PASSWORD FOR 'root'@'localhost' = '';
\q (to quit)
now run: mysql -u root
您现在应该能够在没有密码的情况下启动mysql。
答案 13 :(得分:0)
这都是因为您安装了大于5.6版本的mysql
解决方案
1。您可以降级mysql版本解决方案
2使用
将身份验证重新配置为本机类型或旧式身份验证
配置选项
答案 14 :(得分:0)
想要将我自己的2cents放在这里bcuz,以上答案对我不起作用。 在centos 7上,mysql社区v8的shell是bash。
正确的命令如下:
# start mysql without password checking
systemctl stop mysqld 2>/dev/null
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" &&
systemctl start mysqld
# set default password to nothing
mysql -u root mysql <<- 'EOF'
FLUSH PRIVILEGES;
UNINSTALL COMPONENT 'file://component_validate_password';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
FLUSH PRIVILEGES;
INSTALL COMPONENT 'file://component_validate_password';
EOF
# restart mysql normally
systemctl restart mysqld
然后您可以不使用密码登录:
mysql -u root
答案 15 :(得分:0)
我的MySQL 5.7变体:
停止服务mysql:
$ sudo service mysql stop
以安全模式运行:
$ sudo mysqld_safe --skip-grant-tables --skip-networking
(以上是整个命令)
打开一个新的终端窗口:
$ mysql -u root
$ mysql use mysql;
$ mysql update user set authentication_string=password('password') where user='root';
$ mysql update user set plugin="mysql_native_password" where User='root';
$ mysql flush privileges;
$ mysql quit;
运行mysql服务:
$ sudo service mysql start
答案 16 :(得分:0)
语法因版本而异。从这里的文档: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
MySQL 5.7.6及更高版本:
ALTER USER 'root'@'localhost' IDENTIFIED BY '';
MySQL 5.7.5和更早版本:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('');
答案 17 :(得分:0)
答案 18 :(得分:0)
如果您知道自己的Root密码并希望重置密码,请执行以下操作:
从控制面板启动MySQL服务&gt;管理工具&gt;服务。 (只有在你之前被你停止的时候!否则,只需跳过这一步)
启动MySQL Workbench
输入此命令/ SQL行
ALTER USER'root'@'localhost'PASSWORD EXPIRE;
重置任何其他用户密码...只需输入其他用户名而不是root用户名。
答案 19 :(得分:-1)
搜索了几个小时后,我发现了它。只需将密码更改为包含大写数字和特殊字符的密码即可。