Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.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_Root_Mysqladmin - Fatal编程技术网

MySQL根密码更改

MySQL根密码更改,mysql,root,mysqladmin,Mysql,Root,Mysqladmin,我一直在尝试重置我的MySQL根密码。我已经运行了mysqld_safe--skip grant tables,更新了root密码,并检查了user表以确保它在那里。重新启动mysql守护程序后,我尝试使用刚刚设置的新root密码登录,但仍然因为用户“root”错误而拒绝访问。我也尝试过完全删除并重新安装mysql(包括删除my.cnf文件),但仍然没有成功。有人对我下一步能做什么有什么建议吗 提前感谢我经常遇到的一个常见错误是忘记了-p选项,因此您确定使用了: mysql -u root -p

我一直在尝试重置我的MySQL根密码。我已经运行了mysqld_safe--skip grant tables,更新了root密码,并检查了user表以确保它在那里。重新启动mysql守护程序后,我尝试使用刚刚设置的新root密码登录,但仍然因为用户“root”错误而拒绝访问。我也尝试过完全删除并重新安装mysql(包括删除
my.cnf
文件),但仍然没有成功。有人对我下一步能做什么有什么建议吗


提前感谢

我经常遇到的一个常见错误是忘记了
-p
选项,因此您确定使用了:

mysql -u root -p

找到了!我更改密码时忘了对密码进行哈希运算。我使用此查询来解决我的问题:

updateuser set password=password('NEW password'),其中user='root'


我忘记了密码('NEW PASSWORD')
,只需将新密码以明文形式输入即可

请查看MySQL参考手册:

首次登录mysql:

# mysql -u root -p
然后在mysql提示符下运行:

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
然后


查看此页面了解更多信息:

您必须重置密码!mac osx(已测试并运行)和ubuntu的步骤

停止MySQL

$ sudo /usr/local/mysql/support-files/mysql.server stop
在安全模式下启动:

$ sudo mysqld_safe --skip-grant-tables
(上面一行是整个命令)

这将是一个持续的命令,直到过程完成,因此打开另一个shell/terminal窗口,不用密码登录:

$ mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
mysqladmin --user=root --password=oldpassword password "newpassword"
set global validate_password.policy = 0;
set password = 'new_password';
set password for 'otherUser'@'localhost' = 'new_password';
mysql_secure_installation
启动MySQL

sudo /usr/local/mysql/support-files/mysql.server start

您的新密码是“password”。

停止所有wamp服务,退出wamp

打开记事本,然后键入> 为'root'@'localhost'=密码('')设置密码

然后用任意名称将其保存到c:drive。。像这样的“c:/example.txt”

现在转到您的“wamp”falderwamp>bin>mysql>mysql(您的版本)>bin 在我的例子中,路径是“C:\wamp\bin\mysql\mysql5.6.17\bin”

现在复制路径,然后使用(ctrl+r)运行cmd,然后键入“cmd”(输入)

键入cd,然后右键单击cmd并粘贴路径(输入) 现在键入(mysqld--init file=C:\example.txt)不带大括号,然后(输入)

然后重新启动PC或打开taskmgr并杀死mysqld.exe

启动wamp,您的密码将被删除…

在Ubuntu上

sudo dpkg-reconfigure mysql-server-5.5 

用当前版本替换
5.5
,系统将要求您输入新的root密码。

请按照以下步骤操作

  • sudo服务mysql停止
  • sudo mysqld\u safe——跳过授权表
  • sudo服务mysql启动
  • sudomysql-u root
  • 使用mysql
  • 显示表格
  • 描述用户
  • updateuser set authentication\u string=password('1111'),其中user='root'
  • FLUSH特权

  • 使用密码1111登录这是WAMP v3.0.6及更高版本的更新答案

    > UPDATE mysql.user 
    > SET authentication_string=PASSWORD('MyNewPass') 
    > WHERE user='root';
    
    > FLUSH PRIVILEGES;
    
    在MySQL版本5.7.x中,MySQL表中没有更多的密码字段。它被替换为身份验证字符串。(这是针对终端/CLI的)


    (这对于PHPMyAdmin或任何Mysql GUI来说都是不错的)

    对于MacOS用户,如果忘记了根密码,@thusharaK的answer()很好,但是还有一些技巧:

    如果您使用系统首选项启动mysql服务器端,只需

    sudo mysqld_safe --skip-grant-tables
    
    可能不适合你

    您必须确保命令行参数与系统启动配置相同

    以下命令适用于我:

    /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --keyring-file-data=/usr/local/mysql/keyring/keyring --early-plugin-load=keyring_file=keyring_file.so --skip-grant-tables
    
    你可以用

    ps aux | grep mysql
    

    在MySQL 5.7中,密码被替换为“身份验证字符串”

    使用


    对于MySQL 5.7.6及更高版本:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    
    对于MySQL 5.7.5及更早版本:

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
    

    使用mysqladmin命令行实用程序更改MySQL密码:

    $ mysql -u root
    
    mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
    
    mysqladmin --user=root --password=oldpassword password "newpassword"
    
    set global validate_password.policy = 0;
    set password = 'new_password';
    set password for 'otherUser'@'localhost' = 'new_password';
    
    mysql_secure_installation
    


    您可以在MySQL文档中找到。

    尝试了@kta的答案,但对我无效

    我正在使用MySQL 8.0

    这对我很有用:


    mysql>
    为'root'@'localhost'='yourspassword'设置密码
    我也四处搜索过,可能有些答案适合某些情况

    我的情况是Ubuntu 18.04.2 LTS系统上的Mysql 5.7:

    (获取根权限)

    (为root db用户设置密码+分步实施安全性)

    (通过密码而不是套接字授予根用户访问权限)

    (+编辑:显然您需要再次设置密码?)

    (不要将其设置为“mySecretPassword”!!!)

    非常感谢(搜索几个小时后…)

    享受:-D

    美国

    编辑(2020):


    此方法不再有效,请参阅以供将来参考…

    对于当前最新的mysql版本(8.0.16),这些答案都不适用于我

    在查看了几个不同的答案并将它们组合在一起后,我最终使用了以下有效的答案:

    update user set authentication_string='test' where user='root';
    

    希望这有帮助。

    这么多的原因,但我得到了这个方法的帮助:

    sudo mysqladmin -u root password 'my password'
    

    在我安装后的情况下,我得到的mysql服务没有root用户的密码,我需要为我的安全设置密码。

    关于mysql 8.0.4+

    要更新当前根用户,请执行以下操作:

    select current_user();
    set password = 'new_password';
    
    要更新其他用户,请执行以下操作:

    set password for 'otherUser'@'localhost' = 'new_password';
    
    要在更新密码之前设置密码策略,请执行以下操作:

    $ mysql -u root
    
    mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
    
    mysqladmin --user=root --password=oldpassword password "newpassword"
    
    set global validate_password.policy = 0;
    set password = 'new_password';
    set password for 'otherUser'@'localhost' = 'new_password';
    
    mysql_secure_installation
    
    更新根密码的其他/更好的方法:

    $ mysql -u root
    
    mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
    
    mysqladmin --user=root --password=oldpassword password "newpassword"
    
    set global validate_password.policy = 0;
    set password = 'new_password';
    set password for 'otherUser'@'localhost' = 'new_password';
    
    mysql_secure_installation
    
    想坚持使用5.x身份验证,以便您仍然可以使用旧版应用程序吗

    my.cnf上

    default_authentication_plugin = mysql_native_password
    
    要更新根目录,请执行以下操作:

    set global validate_password.policy = 0;
    alter user 'root'@'localhost' identified with mysql_native_password by 'new_password';
    
    这对我有用-

    ALTER用户'root'@'localhost'由'MyNewPass'标识

  • 在Mac开放系统首选项>MySQL上
  • 在MySQL的配置部分,检查初始化数据库
  • 在提示中更改密码。

  • 或者只使用交互式配置:

    sudo mysql_secure_installation
    

    这是为mac用户准备的。


    更新:在8.0.15(可能在该版本之前)上,PASSWORD()函数不起作用,您必须执行以下操作:

    你一定要小心