MySQL:如何重置或更改MySQL根密码?

MySQL:如何重置或更改MySQL根密码?,mysql,ubuntu,phpmyadmin,Mysql,Ubuntu,Phpmyadmin,如何在ubuntu服务器中更改MySQL根密码和用户名?在设置任何更改之前,是否需要停止mysql服务 我也有一个phpmyadmin设置,phpmyadmin会自动更新吗?在Ubuntu Linux上设置/更改/重置MySQL根密码。在终端中输入以下行 停止MySQL服务器:sudo/etc/init.d/MySQL Stop 启动mysqld配置:sudomysqld——跳过授权表& 在某些情况下,必须首先创建/var/run/mysqld: sudo mkdir -v /var/run/m

如何在ubuntu服务器中更改MySQL根密码和用户名?在设置任何更改之前,是否需要停止mysql服务


我也有一个phpmyadmin设置,phpmyadmin会自动更新吗?

在Ubuntu Linux上设置/更改/重置MySQL根密码。在终端中输入以下行

  • 停止MySQL服务器:
    sudo/etc/init.d/MySQL Stop
  • 启动
    mysqld
    配置:
    sudomysqld——跳过授权表&

    在某些情况下,必须首先创建
    /var/run/mysqld

    sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
    
  • 运行:
    sudo服务mysql启动
  • 以root用户身份登录MySQL:
    MySQL-u root MySQL
  • 用新密码替换
    您的新密码

    UPDATE
      mysql.user
    SET
      Password = PASSWORD('YOURNEWPASSWORD')
    WHERE
      User = 'root';
    FLUSH PRIVILEGES;
    exit;
    
     mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")
    
  • 注意:在某些版本中,如果
    password
    列不存在,您可能需要尝试:
    updateuser SET authentication\u string=password('YOURNEWPASSWORD'),其中user='root'

    注意:这种方法不被认为是重置密码的最安全的方法,但是,它是有效的。

    参考资料:


  • 更改MySQL根密码。

    此方法向命令行历史记录公开密码,这些命令应以root用户身份运行

  • 通过mysql命令行工具登录:

    mysql -uroot -poldpassword
    
  • 运行以下命令:

    SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');
    
    UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
    
    sudo mysql
    
    SELECT user,authentication_string,plugin,host FROM mysql.user;
    
    UPDATE mysql.user SET authentication_string=CONCAT('*', UPPER(SHA1(UNHEX(SHA1('NEWPASSWORD'))))), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
    
  • 运行此命令,为当前用户设置密码(本例中为“root”):

    设置密码=密码(“新密码”)


  • 当您在想要更改密码的系统上使用MySQL的
    PASSWORD()
    时,可能会导致密码出现在明文[]中的MySQL日志中。让他们、他们的备份等像密码一样安全对我来说听起来像噩梦,所以我更喜欢这样做:

    sudo apt-get remove --purge mysql-server mysql-client mysql-common
    sudo rm -rf /var/lib/mysql
    sudo apt-get install -y mysql-server mysql-client 
    
  • 在本地计算机上,使用密码运行此操作:

    UPDATE
      mysql.user
    SET
      Password = PASSWORD('YOURNEWPASSWORD')
    WHERE
      User = 'root';
    FLUSH PRIVILEGES;
    exit;
    
     mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")
    
  • 或者,让我们有点偏执:在本地计算机上,用
    clear
    清除终端屏幕,然后清除虚拟终端的回滚,以隐藏上面命令中出现的明文密码


  • 在ubuntu服务器上重置根密码的官方和简单方法

    如果您在16.04、14.04、12.04:

    sudo dpkg-reconfigure mysql-server-5.5
    
    如果您在10.04:

    sudo dpkg-reconfigure mysql-server-5.1
    
    如果您不确定安装了哪个mysql服务器版本,可以尝试:

    dpkg --get-selections | grep mysql-server
    
    mysql-server-5.7更新说明

    请注意,如果您使用的是mysql-server-5.7,则不能使用上面所示的更简单的dpkg重新配置方法

    如果您知道密码,请登录并运行以下操作:

    UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
    FLUSH PRIVILEGES;
    
    或者,您可以使用以下选项:

    sudo mysql_secure_installation
    
    这将询问您一系列关于保护安装安全的问题(强烈建议),包括是否要提供新的根密码

    如果您不知道根密码

    有关更多信息,请参阅:


    唯一对我有效的方法就是上面描述的方法(我正在运行ubuntu 14.04)。为了清楚起见,我遵循以下步骤:

  • sudovim/etc/mysql/my.cnf
  • 在末尾添加以下行:

    [mysqld] skip-grant-tables [mysqld] 跳过赠款表
  • sudo服务mysql重启

  • mysql-u root

  • 使用mysql

  • 从mysql.user中选择*user='root'-查看顶部以确定是否调用密码列
    密码或身份验证\u字符串

  • updatemysql.user set*password\u字段,从上面开始*=password(“您的新密码”),其中user='root'和host='localhost'-使用上面正确的密码列

  • FLUSH特权

  • 退出

  • sudovim/etc/mysql/my.cnf

  • 如果要保持安全标准,请删除步骤2中添加的行

  • sudo服务mysql重启


  • 仅供参考:

    我正在分享在Linux中逐步重置MySQL密码的最终解决方案 Ubuntu

    mysql -uroot -p"your_old_password"
    
    步骤1: 停止MySQL服务

    sudo stop mysql
    
    步骤2: 杀死所有正在运行的mysqld

    sudo killall -9 mysqld
    
    步骤3: 在安全模式下启动mysqld

    sudo mysqld_safe --skip-grant-tables --skip-networking &
    
    步骤4: 启动mysql客户端

    mysql -u root
    
    步骤5: 成功登录后,请执行此命令更改任何密码

    FLUSH PRIVILEGES;
    
    mysql -uroot mysql
    
    mysql -uroot mysql
    
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
    
    步骤6: 您可以更新mysql根密码

    UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
    
    注意:在MySQL 5.7上,
    密码
    列被称为
    身份验证\u字符串

    步骤7: 请执行此命令

    FLUSH PRIVILEGES;
    

    如果要更改MySQL根密码,请在终端中输入:


    sudo dpkg重新配置mysql-server-5.5


    MySQL守护程序将被停止,系统将提示您输入新密码。

    如果您已设置
    phpmyadmin
    进行连接而不提供密码或用户名,则可以在本地计算机上解决此问题,而不是重设密码。通过启动
    mysql
    apache
    等来检查这一点。我已经在本地机器上安装了
    xampp
    。因此,启动xampp将启动所有必要的服务。现在转到
    http://localhost/phpmyadmin
    显示所有数据库。这确认您已将用户名和密码保存在phpmyadmin的配置文件中,该文件可在
    phpmyadmin
    安装位置找到。如果安装了
    xampp
    ,则可以在
    xampp
    安装的根文件夹中找到
    phpmyadmin
    文件夹。在
    config.inc.php
    文件中搜索单词
    password
    。您将在那里找到
    密码
    用户名

    如果通过提供的phpadmin gui部署在xampp上,您可以轻松更改mysql密码

    FLUSH PRIVILEGES;
    
    phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
    
    mysql -uroot mysql
    
    mysql -uroot mysql
    
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
    

    您可以使用以下命令:

    SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');
    
    UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
    
    sudo mysql
    
    SELECT user,authentication_string,plugin,host FROM mysql.user;
    
    UPDATE mysql.user SET authentication_string=CONCAT('*', UPPER(SHA1(UNHEX(SHA1('NEWPASSWORD'))))), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
    
    之后请你
    sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
    
    sudo service mysql start
    
    sudo apt-get remove --purge mysql-server mysql-client mysql-common
    sudo rm -rf /var/lib/mysql
    sudo apt-get install -y mysql-server mysql-client 
    
    sudo su
    service mysql stop
    mysql -u root
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    \q;
    exit
    mysql -u root -p MyNewPass
    
    sudo su
    service mysql stop
    mysql -u root
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
    \q;
    exit
    mysql -u root -p MyNewPass
    
    mysql> set password=password('the_new_password');
    mysql> flush privileges;
    
    sudo /etc/init.d/mysql stop 
    
    use mysql;
    
    
    
    
    UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';
    
    
    flush privileges;
    
    
    sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
    
    sudo service mysql restart
    
    sudo mysql -uroot -p
    USE mysql;
    UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
    UPDATE user SET plugin="mysql_native_password";
    FLUSH PRIVILEGES;
    quit;
    
    sudo mysql -uroot -p
    USE mysql;
    UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
    UPDATE user SET plugin="mysql_native_password";
    FLUSH PRIVILEGES;
    quit;
    
    sudo mysql -u root
    
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
    
    shell> mysql
    
    mysql> FLUSH PRIVILEGES;
    
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    
    UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; 
    
    mysql -uroot -p"your_old_password"
    
    SET PASSWORD FOR root@'localhost' = PASSWORD('your_new_password');
    
    SET PASSWORD = PASSWORD('your_new_password');
    
    sudo systemctl stop mysql
    
    sudo systemctl edit mysql
    
    [Service]
    ExecStart=
    ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking
    
    sudo systemctl daemon-reload
    sudo systemctl start mysql
    
    sudo mysql -u root
    
    FLUSH PRIVILEGES;
    
    UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';
    
    UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';
    
    sudo systemctl revert mysql
    
    sudo systemctl restart mysql
    
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
    
    sudo mysql
    
    SELECT user,authentication_string,plugin,host FROM mysql.user;
    
    +------------------+-------------------------------------------+-----------------------+-----------+
    | user             | authentication_string                     | plugin                | host      |
    +------------------+-------------------------------------------+-----------------------+-----------+
    | root             |                                           | auth_socket           | localhost |
    | mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
    | mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
    | debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
    +------------------+-------------------------------------------+-----------------------+-----------+
    
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
    
    
    FLUSH PRIVILEGES;
    
    SELECT user,authentication_string,plugin,host FROM mysql.user;
    
    +------------------+-------------------------------------------+-----------------------+-----------+
    | user             | authentication_string                     | plugin                | host      |
    +------------------+-------------------------------------------+-----------------------+-----------+
    | root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
    | mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
    | mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
    | debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
    +------------------+-------------------------------------------+-----------------------+-----------+
    
    exit;
    
    UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='%';
    
    1681 'password' is deprecated and will be removed in a future release
    
    UPDATE mysql.user SET authentication_string=CONCAT('*', UPPER(SHA1(UNHEX(SHA1('NEWPASSWORD'))))), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
    
    1. > sudo service mysql stop
    2. > sudo mkdir /var/run/mysqld
    3. > sudo chown mysql: /var/run/mysqld
    4. > sudo mysqld_safe --skip-grant-tables --skip-networking &
    5. > mysql -uroot mysql
    6. > UPDATE mysql.user SET authentication_string=CONCAT('*', UPPER(SHA1(UNHEX(SHA1('NEWPASSWORD'))))), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
    7. > \q;
    8. > sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
    9. > sudo service mysql start