linux上mysql root密码忘记了怎么办

PHPz
PHPz 原创
2023-04-21 11:38:36 1058浏览

MySQL是一个广泛使用的关系型数据库管理系统,它是一个重要的开源软件。而在使用MySQL时,我们常常需要使用root账号登录MySQL,但是,如果你忘记了root账号的密码,该怎么办呢?

本文将介绍一些常见的解决方案,让你能够快速地回复 root 账号的访问权限。

方案一:使用mysqladmin命令

mysqladmin是MySQL自带的命令行工具,你可以使用它来修改root密码,具体操作方法如下:

  1. 打开终端,输入如下命令:

    sudo systemctl stop mysql

    这个命令将关闭MySQL。之所以先关闭MySQL,是为了方便接下来修改密码。

  2. 输入如下命令来启用无密码登录:

    sudo mysqld_safe --skip-grant-tables &

    这个命令将开启MySQL的临时权限,你可以暂时无需密码的访问 MySQL 数据库。

  3. 输入如下命令连接到 MySQL 数据库:

    mysql -uroot

    输入完这个命令之后,你将进入到命令行模式。

  4. 修改root密码:

    use mysql;

    update user set authentication_string=password('123456') where user='root';

    这个命令将数据库中root的密码更改为“123456”,你也可以将这个密码替换成你想要设置的密码。

  5. 退出 MySQL 命令行模式:

    quit

  6. 重新启动 MySQL:

    sudo systemctl start mysql

  7. 用修改后的密码登录:

    mysql -u root -p

    这个命令将要求你输入新密码来登录 MySQL。

方案二:使用init脚本

这个方案需要你拥有root权限。你可以使用Linux的init脚本,来重启MySQL并载入 SQL 脚本,以达到修改root密码的目的。

操作步骤如下:

  1. 停止 MySQL 服务:

    sudo /etc/init.d/mysql stop

  2. 创建包含 SQL 命令的文件:

    sudo nano /var/mysql-init

    这个命令将在 /var 目录下创建一个 mysql-init 文件,并让你使用 nano 编辑器,输入以下内容:

    UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='root';
    FLUSH PRIVILEGES;

    上面的命令将 root 的密码更改为“123456”。

  3. 启用 MySQL 服务:

    sudo /etc/init.d/mysql start

    在 MySQL 开始启动时,它会自动在执行 SQL 命令文件中的命令,以修改 root 密码。

  4. 清理出错信息:

    sudo rm /var/mysql-init

如果你忘记root密码,使用这两个方案中的任意一个,都可以让你重新获得访问 MySQL 的权限。不过,使用方案一比较推荐,因为它更简单易懂,并且对 MySQL 的正常运行并无负面影响。

当然,为避免忘记密码,你应该建立一个更好的密码管理策略,比如使用密码管理工具存储你的 MySQL 密码,或者定期修改密码以提高安全性。

以上就是linux上mysql root密码忘记了怎么办的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。