重装了windows server 操作系统之后,怎么使用之前的mysql数据?

简介 我没有重装windows操作系统时候mysql如下:我的mysql路径:D:\project_environment\mysql-5.7.44-winx64。my.ini配置如下:[mysqld]#这里设置3307端口port=3307#设置mysql的安装目录basedir=D:\project_environment\mysql-5.7.44-winx64#设置mysql数据库的数据的存放目录

🔔🔔🔔好消息!好消息!🔔🔔🔔

有需要的朋友👉:联系凯哥 微信号 kaigejava2022

我没有重装windows操作系统时候mysql如下:

我的mysql路径:D:\project_environment\mysql-5.7.44-winx64。

my.ini配置如下:

[mysqld]

# 这里设置3307端口

port=3307

# 设置mysql的安装目录

basedir=D:\project_environment\mysql-5.7.44-winx64

# 设置mysql数据库的数据的存放目录

datadir=E:\Mysql\data

# 允许最大连接数

max_connections=1000

# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统

max_connect_errors=10

# 服务端使用的字符集默认为UTF8

character-set-server=utf8mb4

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

# 默认使用“mysql_native_password”插件认证

default_authentication_plugin=mysql_native_password

#忽略密码

#skip-grant-tables

#解决分组问题

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION



[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8mb4

[client]

# 设置mysql客户端连接服务端时默认使用的端口

port=3307

default-character-set=utf8mb4



我在重装系统之前把myql的数据都放在了:E:\Mysql 


现在我重装系统了。D:\project_environment\mysql-5.7.44-winx64,这个文件夹还在,E:\Mysql  这个文件夹也还在。

我想要使用root用户,密码:kaigejava2025

现在重装系统了,我怎么配置mysql,才可以让mysql直接使用之前的数据信息?我的数据不能丢失啊

别担心,你的数据都安全地存放在 E:\Mysql\data 目录里,只要按照正确的步骤操作,完全可以恢复。重装系统只是丢失了 Windows 注册表中的 MySQL 服务信息和可能存在的系统环境变量。

请按照以下步骤操作,这将重新安装 MySQL 服务并指向你原有的数据目录。

完整恢复步骤

第一步:以管理员身份打开命令提示符 (CMD)

  1. 在 Windows 搜索框输入 cmd

  2. 在“命令提示符”上右键,选择 以管理员身份运行。这一步至关重要。

第二步:清理旧的服务(如果存在)

在命令提示符中,输入以下命令来移除可能已残留的旧 MySQL 服务(假设服务名是 mysql):

sc delete mysql

如果原来的服务名不是 mysql,请将命令中的 mysql 替换成你的服务名。执行成功后,它会提示 [SC] DeleteService 成功

第三步:进入 MySQL 的 bin 目录

在命令提示符中,使用 cd 命令切换到你的 MySQL 的 bin 目录下:

cd /d D:\project_environment\mysql-5.7.44-winx64\bin

第四步:重新初始化并安装服务(关键步骤)

非常重要: 即使你有旧的数据,也需要执行这一步来生成初始的系统表结构(如 mysqlperformance_schemasys 等库),但绝对不能使用 --initialize,因为它会生成一个新的随机 root 密码并可能破坏你的旧数据。

我们应该使用 --initialize-insecure,它不会影响已有的数据文件,只是确保必要的系统表存在。

  1. 执行初始化命令:

mysqld --defaults-file="D:\project_environment\mysql-5.7.44-winx64\my.ini" --initialize-insecure --console
  1. 运行这个命令会非常快,因为它发现数据目录 (E:\Mysql\data) 已经存在,它只会检查并创建必要的系统文件(如果它们缺失的话),而不会触碰你自己的数据库数据。

    • --defaults-file: 指定你的 my.ini 配置文件路径。必须放在第一个参数的位置。

    • --initialize-insecure: 初始化但不生成随机 root 密码,root 用户密码为空。这不会覆盖你已有的 mysql.user 表。

    • --console: 将输出信息打印在控制台,方便查看。

  2. 安装 MySQL 服务:
    继续在 bin 目录下,执行以下命令来安装 Windows 服务:

mysqld --install MySQL57 --defaults-file="D:\project_environment\mysql-5.7.44-winx64\my.ini"
  1. 如果成功,你会看到 Service successfully installed. 的提示。

    • --install MySQL57: 将服务安装到系统,并命名为 MySQL57(你可以自定义服务名,例如 MySQL 或 MySQL3307)。

    • --defaults-file: 同样,指定你的配置文件路径。

第五步:启动服务并重置密码

  1. 启动 MySQL 服务:

net start MySQL57
  1. (请将 MySQL57 替换为你上一步骤中指定的服务名)

  2. 登录 MySQL(此时 root 密码为原来的密码):

mysql -u root -P 3307 -p

输入密码后,修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'kaigejava2022';
FLUSH PRIVILEGES;

如果你的 root 用户还允许其他主机访问(如 'root'@'%'),你可能也需要修改它:

ALTER USER 'root'@'%' IDENTIFIED BY 'kaigejava2022';
FLUSH PRIVILEGES;


退出 MySQL:

exit;

第六步:测试新密码登录

现在使用你的新密码来测试登录,确认一切正常:

cmd

mysql -u root -P 3307 -p

输入密码 kaigejava2022,你应该能成功登录并看到你的所有数据库。

总结

整个过程的核心是:

  1. 清理旧服务

  2. 使用 --initialize-insecure(而不是 --initialize)来避免覆盖现有数据

  3. 重新安装服务指定正确的配置文件

  4. 启动服务后,重设密码

你的用户数据库(在 E:\Mysql\data 里)在整个过程中都没有被触碰,所以数据是绝对安全的。现在你的 MySQL 服务应该已经恢复如初了。


如果需要先设置忽略密码验证:

1.先停止mysql服务

net stop MySQL57

步骤二:使用skip-grant-tables模式启动

这种方式允许无密码登录,用于修复权限问题。

  1. 在my.ini中启用跳过权限表
    用记事本打开 D:\project_environment\mysql-5.7.44-winx64\my.ini 文件
    找到 [mysqld] 部分,取消注释或添加一行:

    text

    skip-grant-tables

    保存文件。

  2. 重新启动MySQL服务

    cmd

    net start MySQL57

步骤三:无密码登录并彻底修复root用户

现在可以无密码登录了:

cmd

mysql -u root -P 3307

在 MySQL 命令行中重置 root 密码:
成功登录后,你会看到 mysql> 提示符。执行以下命令来将 root 用户的密码设置为你想要的 kaige2025

ALTER USER 'root'@'localhost' IDENTIFIED BY 'kaige2025';
FLUSH PRIVILEGES;
    • 如果你的 root 用户还允许其他主机访问(如 'root'@'%'),你可能也需要修改它:

    • ALTER USER 'root'@'%' IDENTIFIED BY 'kaige2025';
    • FLUSH PRIVILEGES;


退出 MySQL:

exit;

步骤四:恢复正常模式

  1. 编辑my.ini文件,注释掉或删除 skip-grant-tables 这一行:

    text

    #skip-grant-tables
  2. 保存文件。

  3. 重启MySQL服务


    net stop MySQL57


TopTop