mysql root密码忘记

rks48beu  于 2023-04-04  发布在  Mysql
关注(0)|答案(8)|浏览(122)

我有一段时间没有使用PHP MySQL,现在我需要再次使用它。但问题是我忘记了MySQL控制台的密码。当试图登录PHPMyAdmin时,出现错误#1045。
在MySQL网站上,我看到了一篇如何重置root密码的文章(http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html#resetting-permissions-windows)
步骤如下

create a mysql-init.txt file containing UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;

我保存为C:\me\mysql-init
在命令提示符下我写了

C:\wamp\bin\mysql\mysql5.5.8\bin\mysqld --init-file=C:\me\mysql-init.txt

我也尝试了双反斜杠..但它不起作用. MySQL控制台要求密码,它不采取新的.我做错了什么?我有几个表在那里.怎么办?
先谢谢你了。

rta7y2nd

rta7y2nd1#

以下是需要遵循的步骤:
1.使用以下命令查找MySQL配置文件:$ mysql --help | grep -A 1 "Default options"

在Ubuntu 16上,文件位置通常为/etc/mysql/mysql.conf.d/mysqld.cnf
1.使用以下命令编辑配置文件:$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
1.在[mysqld]块下添加skip-grant-tables并保存更改。

1.使用以下命令重新启动MySQL服务:sudo service mysql restart
1.检查MySQL服务状态:sudo service mysql status

1.使用以下命令登录mysql:$ mysql -u root
1.然后更改root密码:
mysql〉FLUSH PRIVILEGES;
mysql〉ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ' MyNewPass ';
1.通过删除skip-grant-tables行或使用#(哈希)注解来恢复MySQL配置文件的更改。
1.最后,重启MySQL服务,你就可以开始了。

gudnpqoy

gudnpqoy2#

我不能在Adelave的答案中得到mysqld来工作。但是这个对我有用
使用--skip-grant-tables停止和启动MySQL

service mysql.server stop
service mysql.server start --skip-grant-tables

然后连接到你的mysqld没有用户名/密码

mysql

然后在mysql命令行更新密码

mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; 
 mysql> FLUSH PRIVILEGES;
 mysql> \q

然后正常重启mysql

service mysql.server restart
mi7gmzs6

mi7gmzs63#

尝试用--skip-grant-tables启动mysql

mysqld --skip-grant-tables

然后连接到你的mysqld没有用户名/密码使用mysql命令行
shell> mysql
然后发出命令

> mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')
>        WHERE User='root'; mysql> FLUSH PRIVILEGES;
0ve6wy6x

0ve6wy6x4#

如果其他答案不能帮助,你可以尝试卸载/重新安装mysql.它在我的ubuntu服务器上工作:

$sudo apt-get purge mysql*
$sudo apt-get autoremove
$sudo apt-get autoclean

更新分发

$sudo apt-get dist-upgrade

然后重新安装

$sudo apt-get install mysql-server
cbwuti44

cbwuti445#

Mac OS莫哈韦

$ brew services stop mysql

$ pkill mysqld

// warning: deletes all tables
$ rm -rf /usr/local/var/mysql/

$ brew postinstall mysql

$ brew services restart mysql

$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'p4ssword';
Query OK, 0 rows affected (0.04 sec)

mysql> exit
Bye

然后你就回到了正常的dev。

$ sudo mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.

我不喜欢在我的.env文件中看到root这个词,所以我通常在创建一个像www.hockeysticks.net这样的网站之后这样做:

#
CREATE DATABASE hockeysticks;

CREATE USER 'hockeysticks'@'localhost' IDENTIFIED BY 'hockeysticks';
GRANT ALL PRIVILEGES ON hockeysticks.* TO 'hockeysticks'@'localhost';

然后你的localdev .env文件很简单:

DB_DATABASE=hockeysticks
DB_USERNAME=hockeysticks
DB_PASSWORD=hockeysticks

注意:如果您需要保留数据库,请使用skip-grant-tables方法,它有三个难点:

1.确保MySQL已停止,以便可以使用skip-grant-tables重新启动它
1.确保您的密码更新SQL语法对于您的MySQL版本是正确的
1.确保在查询的末尾追加了FLUSH PRIVELEGES;

yhxst69z

yhxst69z6#

使用windows命令提示符可以更改密码

1.转到windows+R并运行services.msc,然后停止MySQL服务,并通过右键单击查看MySQL的属性,并复制路径--defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini",稍后需要。
1.创建文本文件reset.txt与文本ALTER USER 'root'@'localhost' IDENTIFIED BY 'Your New Password';和保存在C驱动器。

1.以管理员身份打开命令提示符,然后更改MySQL的安装目录"C:\Program Files\MySQL\MySQL Server 8.0\bin"
1.输入命令mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file=C:\\reset.txt

emeijp43

emeijp437#

以下是我在MariaDB 10.6.11中的工作
在shell中进行下一次mysql root登录而无需密码

mysqld_safe --skip-grant-tables &

Mysql root登录

mysql -u root

使用MySQL数据库

use mysql;

为新密码创建身份验证字符串

SELECT PASSWORD('asdlfjasldfkjklasdkflasdjfla');

输出:* B1 D 04474 F8 D522 B69410 FC 0 E731 B35 ED 22 E94 A3 C
现在检查root用户的priv

select priv from global_priv where user='root';

输出:{“access”:549755813887,“plugin”:“mysql_native_password”,“authentication_string”:“*LEICHEI2THEIYUOCH3PEE5OOVU8UQU4B”,“auth_or”:[{}],“version_id”:100611,“password_last_changed”:1677497088}
用新生成的authentication_string更新root用户的priv

update global_priv set Priv='{"access":549755813887,"plugin":"mysql_native_password","authentication_string":"*B1D04474F8D522B69410FC0E731B35ED22E94A3C","auth_or":[{}],"version_id":100611,"password_last_changed":1677497088}' where user='root';

刷新权限

flush privileges;
swvgeqrz

swvgeqrz8#

使用SQLYog可以执行命令

  • 用户创建
CREATE USER 'tester'@'localhost' IDENTIFIED BY 'Pass123#d'
  • 授权
GRANT ALL PRIVILEGES ON sakila.* TO 'tester'@'localhost'
  • 在MySQL 8.0中更改密码
ALTER USER 'tester'@'localhost' IDENTIFIED BY 'Pass123#d'

(or如果你知道authentication_string直接设置为update)

UPDATE mysql.user 
    SET authentication_string='*F9B62579F38BE95639ACB009D79427F2D617158F'  
WHERE USER='root'***

在较低版本的mysql中更改密码

GRANT USAGE ON *.\* TO 'tester'@'localhost' IDENTIFIED BY 'Pass123#d'
SET PASSWORD FOR 'tester'@'localhost' = PASSWORD('Pass123#d');**

相关问题