一次个人mysql数据库导出导入遇到的问题

本文记录了一次MySQL数据库出现故障后的恢复过程,包括备份、初始化、密码重置及数据导入等步骤,解决了因数据库频繁崩溃导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人博客好久不访问了,最近整理一个微信小程序想访问博客的一些数据,突然发现mysql数据挂掉了,重新启动后没有过多久就又挂掉了,懒得检查原因,打算直接导出一份数据重新初始化数据库,没想到过程还挺坎坷,花了一个多小时,这里记录一下过程,方便其他同学遇到类似的情况参考:

  • 第一步备份数据库:mysqldump -uroot -p --default-character-set=utf8 --databases xxx > xxx20180321.sql

这一步比较顺利,一次成功,直接生成了备份文件

  • 第二步初始化数据库:/data/mysql/bin/mysqld --defaults-file=/data/mysql/my.cnf --initialize --basedir=/data/mysql --datadir=/data/mysql/data --user=mysql &

            注意,执行这一步之前先要停止数据库,并且把%mysql%/data目录和log目录以及tmp目录内的数据文件全部清空。

  • 第三步修改密码,在上一步执行过程的日志查询初始化密码,如下面所示,mysql会初始化一个密码,使用这个密码登录:mysql -uroot -pyTjgtY<j<0CT,然后修改root密码或创建自己的账户,修改密码: grant all on *.* to root@'192.168.0.1' identified by '123456';
  [Note] A temporary password is generated for root@localhost: yTjgtY<j<0CT
  • 第四步导入备份的数据文件:mysql -uroot -p --default-character-set=utf8 < xue20180321.sql

        这一步比较纠结,出现了多次问题,首先提示:Access denied for user 'root'@'localhost' (using password: YES),分析是user表中的的root用户的host设置的是ip,不是localhost,所以加了-h参数,即mysql -uroot -h192.168.0.1 -p --default-character-set=utf8 < xue20180321.sql,结果还是不行,提示hostname异常什么的,所以打算直接update user,把host改成%。

        mysql>update user set host='%' where user='root';

        之后导入备份文件,一次成功。

    附:如果找不到日志中的初始化密码,可以让mysql开启免密码模式:skip-grant-tables,开启免密码模式有两种方式

方式一:修改my.conf配置文件,增加skip-grant-tables参数,重启mysql,执行mysql -uroot -p输入密码时直接回车进入mysql命令行,注意这种方式当操作完成后需要重新恢复my.conf配置文件

方式二:直接在mysql的启动命令中增加--skip-grant-tables参数,注意这里有俩个“-”

/data/mysql/bin/mysqld --defaults-file=/data/mysql/my.cnf --skip-grant-tables --basedir=/data/mysql --datadir=/data/mysql/data --user=mysql 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值