typecho mysql 数据库 迁移的一些坑

起因:之前电脑重装之后,只是备份了文件,由于之前是双系统,恢复之后好像还是不能用,不知道启动引导那里怎么设置。
很多东西重新安装了之后,有一些东西是存在本地的typecho中,下面就开始了漫长的程序安装和数据恢复之旅。
安装好了Apache+PHP+Mysql之后,发现typecho安装时出现了500错误,猜测可能是数据库的问题,后来一看原来php的mysql没有安装,好像是新版本的php默认不安装mysql扩展了。

坑1:php 7.4 的mysql扩展安装

网上很多方法都比较老了,不怎么适用。
首先安装以下组件:

sudo apt-get install php7.4-mysql
sudo apt-get install php7.4-gd

然后在php.ini中修改配置:

sudo vi /etc/php/7.4/apache2/php.ini
extension=/usr/lib/php/20190902/mysqli.so
extension=/usr/lib/php/20190902/pdo_mysql.so

上面*.so的位置通过下面的命令查询:

dpkg -L php7.4-mysql

之后重启apache和php服务

/etc/init.d/apache2 start
sudo service php7.4* restart

这时通过phpinfo()应该就可以看到mysql扩展了。
上面这个坑前前后后花了好多时间才填上。。。。。。。
通过上面的步骤后typecho就可以正常安装了,安装完之后都是空的,同时按照官方给出的升级方法把原来的网站配置文件都复制过来,这时由于没有数据,因此可能只是主题之类的变了,仍然没有内容,内容是存在数据库里的,下面就开始数据库恢复。

坑2:mysql数据库从文件恢复

很多时候数据库是要单独备份的,和文件的备份方法有所不同,我之前只是备份了文件,没有对数据库进行单独备份,现在又抓瞎了。。。。。
网上查资料后的之,数据库位置:/var/lib/mysql
首先直接复制typecho的数据库文件夹到上面的目录中
这时访问该数据库中的表出现以下错误

ERROR 1036 Table 'typecho_comments' is read only

解决方法如下:
首先更改用户和用户组以及读写权限:

sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 700 /var/lib/mysql

然后找到mysqladmin所在位置,查询后得知在以下位置:

cd /user/bin

最后运行下面的命令:

./mysqladmin -u root -p flush-tables 

再次启动mysql服务,并查询typechp中的数据表selsect * from typecho_comments,成功!
最后重新登陆typecho页面,发现之前的资料都回来了。

数据库备份:

  1. 关闭mysql服务 service mysql stop

  2. 备份

    mysqldump -u root -h host -p --all-databases > backdb.sql
    mysqldump -u root -h host -p dbname > backdb.sql

总结:

不同情况遇到的问题总是不同的,关键是要找到正确的解决方法。

参考:
1、https://blog.csdn.net/username666/article/details/105122763/
2、https://blog.csdn.net/z15818264727/article/details/52252184

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值