代码之家  ›  专栏  ›  技术社区  ›  Nick Stinemates

如何在MySQL中更改根用户的密码?

  •  3
  • Nick Stinemates  · 技术社区  · 16 年前

    我早就忘记了我的一个框中根用户的密码。是否有一种方法可以在不登录实例的情况下对其进行更改,或者必须重新安装?

    3 回复  |  直到 11 年前
        1
  •  4
  •   Marcelo Cantos    16 年前

    步骤1

    停止数据库:

    shell> /etc/init.d/mysql stop
    

    步骤2

    重新启动数据库

    • 无密码认证
    • 未连接到网络

    只有通过sock文件“/var/lib/mysql/mysql.sock”才能访问数据库。

    shell> mysqld --user=mysql --pid-file=/var/lib/mysql/mysqld.pid \
           --socket=/var/lib/mysql/mysql.sock --datadir=/var/lib/mysql \
           --skip-grant-tables --skip-networking  &
    

    步骤3

    连接到数据库并更改密码:

    shell> mysql --database mysql --socket=/var/lib/mysql/mysql.sock
    

    如果要,请显示所有用户:

    mysql> select User, password from user;
    

    设置新密码:

    mysql> update user set password=password('NEW PASS') WHERE User='USERNAME';
    

    保留数据库连接:

    mysql> exit
    

    步骤4

    “正常”重启数据库服务器。

    shell> kill `cat /var/lib/mysql/mysqld.pid`
    shell> /etc/init.d/mysql start
    
        2
  •  4
  •   Nick Stinemates    16 年前

    一个快速的谷歌结果就是这个答案。在根外壳类型中:

    mysqladmin -u root password <password>
    
        3
  •  0
  •   user12345    11 年前

    如果您运行的是Ubuntu服务器(也可能是Debian?)您可以轻松重置。

    如果您在2004年12月4日:

    sudo dpkg-reconfigure mysql-server-5.5
    

    如果您在10.04:

    sudo dpkg-reconfigure mysql-server-5.1
    

    如果您不确定安装了哪个MySQL服务器版本,可以尝试:

    dpkg --get-selections | grep mysql-server
    

    有关详细信息,请参阅:

    https://help.ubuntu.com/12.04/serverguide/mysql.html https://help.ubuntu.com/10.04/serverguide/mysql.html