服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - 数据库技术 - linux上mysql root密码忘记了怎么办

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

2023-05-07 12:03未知服务器之家 数据库技术

MySQL是一个广泛使用的关系型数据库管理系统,它是一个重要的开源软件。而在使用MySQL时,我们常常需要使用root账号登录MySQL,但是,如果你忘记了root账号的密码,该怎么办呢? 本文将介绍一些常见的解决方案,让你能够快速地

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 密码,或者定期修改密码以提高安全性。

延伸 · 阅读

精彩推荐