小熊奶糖(BearCandy)
小熊奶糖(BearCandy)
发布于 2024-05-16 / 20 阅读
0
0

MySQL 修改root用户密码,启动MySQL

如果您忘记了MySQL的root用户密码,可以采取以下步骤来重置密码。这里我提供一个通用的方法,适用于大多数情况,但请注意,具体步骤可能根据您的MySQL版本和操作系统有所不同:

  1. 停止MySQL服务​首先,您需要停止正在运行的MySQL服务。在Linux系统中,可以通过以下命令实现:

    sudo service mysql stop
    

    或者如果是Systemd管理的服务:

    sudo systemctl stop mysql
    

    在Windows系统中,可以通过服务管理器或者命令行工具停止服务:

    net stop MySQL服务名
    
  2. 启动MySQL服务并跳过权限表​接下来,以跳过权限表的方式启动MySQL服务,这样可以无需密码直接登录:

    sudo mysqld_safe --skip-grant-tables &
    

    或者在MySQL 8.0+以及某些系统中,可能需要使用:

    sudo systemctl start mysql --skip-grant-tables
    
  3. 登录MySQL​打开另一个终端或命令提示符窗口,直接登录MySQL,无需密码:

    mysql -u root
    
  4. 选择mysql数据库​登录后,选择 mysql数据库,因为用户权限信息存储在这个数据库中:

    use mysql;
    
  5. 更新root用户的密码​更新root用户的密码。首先,根据您的MySQL版本,查询当前用户密码的存储格式,然后用 UPDATE语句设置新密码。对于MySQL 5.7及之前版本,可能是这样的:

    UPDATE user SET Password=PASSWORD('新密码') WHERE User='root';
    

    而对于MySQL 8.0及以上版本,可能需要使用 ALTER USER命令:

    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    
  6. 刷新权限并退出​刷新MySQL的权限,确保更改生效:

    FLUSH PRIVILEGES;
    

    然后退出MySQL:

    EXIT;
    
  7. 重新启动MySQL服务
    最后,正常启动MySQL服务:

    sudo service mysql start
    

    sudo systemctl start mysql
    

现在,您应该能够使用新设置的密码登录MySQL的root用户了。请确保替换上述命令中的 新密码为您想要设置的实际密码。

在Windows环境下,如果您忘记了MySQL的root用户密码并需要重置,可以遵循以下步骤操作:

  1. 停止MySQL服务​打开命令提示符(管理员模式),输入以下命令来停止MySQL服务。默认服务名为 mysql,如果服务名被更改,请替换为相应的名称:

    net stop mysql
    
  2. 启动MySQL服务并跳过权限检查​接着,您需要以跳过权限表验证的方式启动MySQL服务。导航到MySQL的 bin目录,通常位于 C:\Program Files\MySQL\MySQL Server x.x\bin(x.x代表MySQL的版本号),然后执行以下命令:

    mysqld.exe --skip-grant-tables
    

    注意:执行此命令后,命令行窗口会保持占用状态,不要关闭它。

  3. 打开新的命令提示符窗口​因为前一个命令窗口被占用,需要另外打开一个命令提示符窗口,同样地,导航到MySQL的 bin目录。

  4. 登录MySQL并选择数据库​在新窗口中,直接输入 mysql命令登录MySQL,由于我们已经跳过了权限检查,所以不需要密码:

    mysql
    

    登录后,选择 mysql数据库:

    USE mysql;
    
  5. 更新root用户的密码​执行以下SQL命令来更新root用户的密码。请将 新密码替换为您想设置的密码:

    UPDATE user SET Password=PASSWORD('新密码') WHERE User='root';
    

    对于MySQL 8.0及以上版本,可能需要使用 authentication_string字段代替 Password

    UPDATE user SET authentication_string=PASSWORD('新密码') WHERE User='root';
    
  6. 刷新权限并退出​刷新权限以使更改生效,并退出MySQL:

    FLUSH PRIVILEGES;
    EXIT;
    
  7. 重启MySQL服务
    返回到最初用来跳过权限表验证的命令提示符窗口,按 Ctrl + C停止MySQL服务,然后在任一命令提示符窗口输入以下命令来正常启动MySQL服务:

    net start mysql
    

现在,您可以使用新密码通过root用户登录MySQL了。请记得及时加强密码安全性,并妥善保管。

要在Windows环境下通过MySQL的安装文件夹启动MySQL服务,您可以按照以下步骤操作:

  1. 定位MySQL的安装文件夹​首先,您需要找到MySQL的安装路径,这通常在 C:\Program Files\MySQL\MySQL Server x.x(其中 x.x代表MySQL的版本号)。如果不确定路径,可以通过搜索程序和文件功能寻找 MySQL Server x.x,或者查看系统服务中MySQL服务的可执行路径。

  2. **打开命令提示符(管理员模式)**​按 Win + X 键,然后选择“命令提示符(管理员)”或“PowerShell(管理员)”。

  3. 导航到MySQL的bin目录​使用 cd命令进入MySQL的 bin目录。例如,如果MySQL安装在默认路径,可以输入:

    cd "C:\Program Files\MySQL\MySQL Server x.x\bin"
    
  4. 启动MySQL服务
    现在,您可以直接使用服务命令来启动MySQL,而不需要进入MySQL客户端。在命令提示符中输入:

    net start MySQL服务名
    

    这里的 MySQL服务名通常是 mysql,但请根据实际情况调整,比如可能是 MySQL80或其他名称,特别是如果你有多个MySQL实例或者修改过服务名称。

如果遇到忘记root密码的情况,按照之前的回答中的指导进行密码重置。

需要注意的是,直接启动MySQL服务(如使用 net start mysql)并不等同于打开MySQL的客户端进行交互式操作。服务启动后,MySQL数据库引擎将在后台运行,等待客户端连接。如果您需要使用命令行界面与MySQL进行交互,应该在服务启动后,单独打开命令提示符,输入 mysql -u root -p,然后按提示输入密码来登录。

如果您不想通过系统服务的方式启动MySQL,而是直接在文件夹内启动MySQL服务,通常是为了测试或调试目的,这种情况下,可以直接启动MySQL的守护进程 mysqld。以下是针对Linux和Windows环境的操作方法:

Linux环境

  1. 打开终端​打开Linux的终端窗口。

  2. 导航到MySQL的bin目录​使用 cd命令进入到MySQL的安装目录下的 bin文件夹。例如,如果MySQL安装在 /usr/local/mysql,则应输入:

    cd /usr/local/mysql/bin
    
  3. 启动MySQL守护进程
    直接运行mysqld命令来启动MySQL,但请注意,这样做MySQL会在前台运行,且不会作为服务自动管理。为了能看到输出以便于调试,可以加上 --console参数:

    ./mysqld --console
    

    如果需要跳过权限表以重置密码或修复问题,可以使用:

    ./mysqld --skip-grant-tables --console
    

Windows环境

  1. **打开命令提示符(管理员模式)**​按 Win + X 并选择“命令提示符(管理员)”。

  2. 导航到MySQL的bin目录​使用 cd命令进入MySQL的 bin目录。例如,如果安装路径是 C:\Program Files\MySQL\MySQL Server 8.0,则输入:

    cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
    
  3. 启动MySQL守护进程
    在Windows中,直接运行mysqld.exe,但是为了能够在命令行窗口看到输出,通常需要加上一些参数,如:

    mysqld.exe --console
    

    如果需要跳过权限表检查,可以使用:

    mysqld.exe --skip-grant-tables --console
    

请注意,直接在命令行启动MySQL这种方式不建议用于生产环境,因为一旦关闭命令行窗口,MySQL服务也会随之停止。此外,这种方式启动的MySQL不会自动管理,如开机自启、错误恢复等。在调试或特殊需求场景下使用较为合适。


评论