宝塔中mysql 拷贝data目录下的数据库文件还原数据库: Ubuntu+宝塔9.0,一次重启服务器之后所有的端口被关闭,由于服务商没有webshell服务无法连接远程操作,无奈之下联系客服。技术给新挂了一块系统盘,重做系统之后将整个www目录备份了出来,包括mysql数据库的data目录。 重新搭环境,但数据库数据忘记导出备份,只有MySQL的data目录打包备份文件。 操作: 首先要在新的系统内创建数据库,如果是网站迁移,最好是对应的数据库名,用户名和密码都是一样的。 1、复制对应数据库的整个文件夹内文件,在宝塔中一般以网站域名命名(包含.frm .ibd等文件) 2、重启mysql,通过宝塔自带phpmyadmin查看数据库表,结果显示“表’xxx 不存在 ” 3、查资料后发现innodb的表直接复制文件是无法使用的,会提示表不存在,在复制的时候,应将数据目录下的ibdata1文件一并复制过去,并且删除ib_logfile0,ib_logfile1等文件 mysql通过拷贝数据文件方式迁移数据库: 1、关闭服务 以管理员身份运行cmd,执行以下命令: net stop mysql 在宝塔中直接点开数据库,找到MySQL5.7.44,然后点击停止即可。启动也是在这个位置。 将data文件的数据库文件拷贝(不需要拷贝mysql、performance_schema、sys),一定要拷贝ibdata1文 2、拷贝数据文件 将本地数据打包,通过宝塔面板文件管理依次找到/www/server/data里找到对应的数据库 将本地打包的数据库文件直接拖拽到文件夹内,右键解压即可,也可以直接拖拽文件夹上传,速度相对来说会慢很多。 3、设置权限 将对应的数据库文件夹权限设置为755所有者mysql。 具体方法右键点击对应的文件夹——权限,然后修改即可。注意修改完点应用即可。 这是最关键的一步,否则mysql数据库将无法启动 4、启动MySQL 在关闭数据库的位置点击启动,如果成功启动,即可正常使用,否则有可能数据库损坏。 最后,使用宝塔备份数据库,然后下载保存即可。 这次因为是新的项目,做完之后忘记备份数据库,本地数据库有没有及时更新,服务器崩溃导致手忙脚乱,好在最后恢复了数据,没有给客户造成更大的损失。 数据安全重中之重,一定要注意及时备份! |