Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
忘记mysql根密码_Mysql_Passwords_Root_Reset - Fatal编程技术网

忘记mysql根密码

忘记mysql根密码,mysql,passwords,root,reset,Mysql,Passwords,Root,Reset,我很久没有使用PHP MySQL了,现在我需要再次使用它。但问题是我忘记了MySQL控制台的密码。尝试登录到PHPMyAdmin时出现错误#1045 在MySQL站点中,我看到了一篇关于如何重置根密码的文章() 步骤是 create a mysql-init.txt file containing UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='root'; FLUSH PRIVILEGES; 我将其保存为C:\me

我很久没有使用PHP MySQL了,现在我需要再次使用它。但问题是我忘记了MySQL控制台的密码。尝试登录到PHPMyAdmin时出现错误#1045

在MySQL站点中,我看到了一篇关于如何重置根密码的文章()

步骤是

create a mysql-init.txt file containing UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;
我将其保存为
C:\me\mysql init

我在命令提示符中写道--

我也试过用双反斜杠,但不起作用。MySQL控制台要求输入密码,但不接受新密码。我做错了什么?我在那里有几张桌子。怎么办

提前感谢。

试着用--skip grant表启动mysql

service mysql.server stop
service mysql.server start --skip-grant-tables
然后使用mysql命令行连接到mysqld,而不使用用户名/密码

shell>mysql

然后发出命令

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

我无法在Adelave的工作答案中获得mysqld。但这对我来说却起了作用

使用--skip grant表停止并启动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

如果其他答案没有帮助,您可以尝试卸载/重新安装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
使用SQLYog可以执行命令
  • 用户创建

  • 授权书

  • 在MySQL 8.0中更改密码

(或者如果您知道身份验证字符串,请直接将其设置为更新)

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

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

以下是需要遵循的步骤:

  • 使用以下命令定位MySQL配置文件:
    $MySQL--help | grep-a1“默认选项”
  • 在Ubuntu 16上,文件位置通常是
    /etc/mysql/mysql.conf.d/mysqld.cnf

  • 使用以下命令编辑配置文件:
    $sudo nano/etc/mysql/mysql.conf.d/mysqld.cnf

  • [mysqld]
    块下添加
    跳过授权表
    ,并保存更改

  • 使用以下命令重新启动MySQL服务:
    sudo service MySQL Restart

  • 检查MySQL服务状态:
    sudo服务MySQL状态

  • 使用:
    $mysql-u root登录mysql

  • 并更改
    root
    密码:

  • mysql>刷新权限

    mysql>ALTER用户“root”@“localhost”标识为 mysql_本地_密码由“MyNewPass”提供

  • 通过删除
    skip grant tables
    行或使用
    (散列)对其进行注释,恢复MySQL配置文件更改

  • 最后重新启动MySQL服务,就可以开始了

  • Mac OS Mojave

    $brew服务停止mysql
    $pkill mysqld
    //警告:删除所有表
    $rm-rf/usr/local/var/mysql/
    $brew postinstall mysql
    $brew服务重新启动mysql
    $mysql-u root
    欢迎使用MySQL监视器。命令以结束;或\g。
    mysql>更改用户“root”@“localhost”,由“p4ssword”标识;
    查询正常,0行受影响(0.04秒)
    mysql>退出
    拜伊
    
    那么你就回到了dev的正常状态

    $sudo mysql-u root-p
    输入密码:
    欢迎使用MySQL监视器。命令以结束;或\g。
    
    我不喜欢在我的
    .env
    文件中看到
    root
    这个词,所以我通常在创建网站(如www.hockeysticks.net)之后再这样做:

    #
    创建数据库曲棍球;
    创建用户'hockeysticks'@'localhost',由'hockeysticks'标识;
    授予曲棍球的所有特权。*给“曲棍球”@“本地主机”;
    
    那么您的localdev
    .env
    文件就很简单了:

    DB_数据库=曲棍球棒
    DB_USERNAME=曲棍球棍
    DB_PASSWORD=曲棍球棒
    
    注意:如果需要保留数据库,请使用
    跳过授权表
    方法。它有三个硬部分:

  • 确保MySQL已停止,以便可以使用
    跳过授权表重新启动它

  • 确保您的密码更新SQL语法对于您的MySQL版本是正确的

  • 确保在查询末尾附加
    FLUSH privileges


  • 非常感谢您的回复。它目前正在工作。现在我可以登录到phpmyadmin来复制我要保存的所有表。谢谢。但是当我稍后重新打开wamp服务器时,它不会使用密码。我必须经历与mysqld相同的过程--跳过授权表。我安装的mysql版本没有密码密码列改为:更新mysql.user set authentication_string=Password('MyNewPass'),其中user='root';无法将datadir设置为/var/lib/mysql/如果您的sql版本告诉您它不是“使用near('MyNewPass')的正确语法”:
    ALTER USER'root'@'localhost'由'MyNewPass'用mysql\本地\密码标识
    非常感谢您的回复。它目前正在运行。
    ”-在这种情况下,请接受答案,这将有助于其他人进一步阅读此问题。适用于Mac OSX 10.9.1上的MysQL 5.6.16,适用于我;-)
    start-skip grant tables
    命令抛出错误!服务器在不更新PID文件的情况下退出错误..-这段视频帮助我更改了一台生产服务器的密码。这是否回答了你的问题?
    CREATE USER 'tester'@'localhost' IDENTIFIED BY 'Pass123#d'
    
    GRANT ALL PRIVILEGES ON sakila.* TO 'tester'@'localhost'
    
    ALTER USER 'tester'@'localhost' IDENTIFIED BY 'Pass123#d'
    
    UPDATE mysql.user 
        SET authentication_string='*F9B62579F38BE95639ACB009D79427F2D617158F'  
    WHERE USER='root'***
    
    GRANT USAGE ON *.\* TO 'tester'@'localhost' IDENTIFIED BY 'Pass123#d'
    SET PASSWORD FOR 'tester'@'localhost' = PASSWORD('Pass123#d');**