首页 > 数据库 >记录一次mysql数据库修复过程

记录一次mysql数据库修复过程

时间:2024-07-29 15:42:13浏览次数:12  
标签:07 启动 数据库 mysql 修复过程 password root

1. 场景

最近在使用小皮面板进行靶场搭建的时候,发现数据库一直无法启动,而在虚拟机里是可以启动了,这就很奇怪了。意识到我的本地已经安装了mysql,可能产生了冲突,但是当我兴冲冲启动本地mysql的时候服务却无法启动了。

尝试启动了几次mysql重新删除添加服务后发现问题没有得到解决。

最后在gpt的帮助下终于恢复了数据。

2. 修复步骤

2.1 保留数据

由于mysql服务没法启动,所以只能重新安装一下mysql,但是原问题mysql的datamy.ini需要保留。

2.2 重新安装mysql

安装mysql也很简单,我使用的是zip安装包进行的安装,https://downloads.mysql.com/archives/community/,下载后解压到你需要的目录即可。

初始化mysql,启动mysql服务,登录后修改密码。

E:\mysql>mysqld --initialize --console
2024-07-29T06:07:30.628809Z 0 [System] [MY-013169] [Server] E:\mysql\bin\mysqld.exe (mysqld 8.0.36) initializing of server in progress as process 12032
2024-07-29T06:07:30.666329Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-07-29T06:07:31.123514Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-07-29T06:07:33.725250Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: !p_T,uepg5dz

E:\mysql>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。


E:\mysql>mysql -u root -p
Enter password: ************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.36

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye

文件复制,修改配置

首先停止mysql服务,复制ibdata1mysql.ibd以及数据库对应的文件到Data目录下,并且修改my.ini

my.ini配置添加innodb_force_recovery = 1,恢复过数据库后记得删掉,其他配置是我以前数据库配置的。

[mysqld]
innodb_force_recovery = 1
#设置3306端口
port=3306
#设置mysql的安装目录
basedir=E:\mysql
#设置mysql数据库的数据的存放目录
datadir=E:\mysql\Data
#允许最大连接数
max_connections=200
#允许连接失败的次数。
max_connect_errors=10
#服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“mysql_native_password”插件认证
#mysql_native_password
#default_authentication_plugin=mysql_native_password
#拒绝或允许客户端加载本地数据,默认OFF
local_infile=ON
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

启动mysql服务。

导出备份文件

使用mysqldump导出数据库。

E:\mysql>mysqldump -u root -p gpt > backup.sql
Enter password: ******

停止服务,修改回my.ini后再启动服务

备份文件

E:\mysql>mysql -u root -p gpt < backup.sql
Enter password: ******

这时如果登录数据库后发现gpt库的数据以及恢复了,其他数据库可以看到名字,但是表中没有数据,可以直接将事故数据库中的Data中的数据库目录复制到新的数据库Data目录中。

至此数据库恢复完毕。

标签:07,启动,数据库,mysql,修复过程,password,root
From: https://www.cnblogs.com/zjw-blog/p/18330204

相关文章

  • 无法使用 Psycopg2 从 jupyter Notebook 连接到 Postgres 数据库
    我正在尝试连接到Postgres中的数据库以将数据插入到我的表中。来自Jupyter笔记本。我正在使用这些命令连接到数据库#url=postgresql+psycopg2://postgres@localhost:5432/citibike'fromsqlalchemyimportcreate_engineengine=create_engine('postgresql://......
  • MySQL文件my.ini配置
    [mysql]#设置mysql客户端默认字符集default-character-set=utf8[mysqld]#设置3306端口port=3306#设置mysql的安装目录basedir=E:\\mysql-5.7.38-winx64#设置mysql数据库的数据的存放目录datadir=E:\\mysql-5.7.38-winx64\\data#允许最大连接数max_connectio......
  • 树莓派4b的Mysql数据库操作
    卸载树莓派中的MySQL。停止MySQL服务:sudosystemctlstopmysql卸载MySQL服务器和客户端:sudoapt-getremove--purgemysql-servermysql-clientmysql-common删除MySQL数据库和配置文件:sudorm-rf/etc/mysql/var/lib/mysql自动删除未使用的依赖:s......
  • Mysql表结构同步存储过程(适用于模版表)
    Mysql表结构同步流水模版表新增字段需要同步到所有区域年份的流水表CREATEDEFINER=`root`@`%`PROCEDURE`SyncTableStructure`(INsourceTableVARCHAR(255),INtargetTableVARCHAR(255))BEGINDECLAREdoneINTDEFAULT0;DECLAREcolumnNameVARCHAR(255);......
  • mysql操作线上数据时建议用事务
    事务管理是数据库操作中的一个重要概念,特别是当涉及到需要保证数据完整性和一致性的场景。事务是一系列操作,它们作为一个整体被执行,这意味着事务中的所有操作要么全部成功,要么全部失败。在关系型数据库中,事务通常遵循ACID原则,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isol......
  • 从零搭建MySQL主从复制-一主二从
    从零搭建MySQL主从复制-一主二从文章目录从零搭建MySQL主从复制-一主二从1.服务器准备2.Docker安装2.1、安装需要的软件包2.2、设置docker下载镜像2.3、更新yum软件包索引2.4、安装dockerce2.5、启动docker2.6、版本验证2.7、设置开机启动3.MySQL主从部署3.1部署MySQL......
  • 数据库第四天笔记
    命令行客户端windows:方式1:在电脑左下角搜索mysqlcommandclineclient点击进入输入密码按下回车即可方式2:进入到mysql的bin目录中C:\ProgramFiles(x86)\MySQL\MySQLServer5.1\bin在当前路径下输入cmd打开黑窗口输入:mysql-uroot-p按下回车输入......
  • CentOS安装MySQL
    参考文章【CentOS安装mysql简单教程】https://blog.csdn.net/qq_50523945/article/details/131069683【运维系列:centos7yum安装使用时提示cannotfindavalidbaseurlforrepo:base/7/x86_64的解决方法(亲测有效☆)】https://blog.csdn.net/weixin_54626591/article/detai......
  • MySQL基础篇(一)
    1.事物的四大特性事务是逻辑上的一组操作,要么都执行,要么都不执行原子性(Atomicity):事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;一致性(Consistency):执行事务前后,数据保持一致,例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不......
  • chsap连接Mysql
    前置操作打开MySql服务 添加引用MySql.Data.dll 数据库查询数据读取一条数据,直接运行就能看到打印台输出。1usingMysql.Data.MyAqlClient;2staticvoidMain(string[]args)3{4stringconnStr="Database=test007;DataSource=127.0.0.1;port=3306;User......