前言
最近,重置了 ArxivDay,但是我想把之前收集到的20w+文章摘要的数据库迁移到新的ArxivDay服务器上,但是期间遇到了几个坑,于是记录一下:
Windows电脑mysql数据库的UTF-8,GBK问题
通过网页上传大数据库到阿里云数据库会无响应
正文
1. Windows电脑mysql数据库 字符编码问题
这个我是真没搞明白,明明网页上显示好好的中文字符串,一打开mysql数据库和mysqldump就是一堆乱码。
只能说很神奇,总之学到了,mysql或者什么其他的数据库,不要用windows,这个编码问题太麻烦了,linux/unix就不会有这样的问题。
总结:mysql数据库不要用windows系统起。
2. mysql大数据迁移
因为重置了ArxivDay,准备把上面的数据库全部迁移下来,直接mysqldump确实没什么问题,但是得到的数据库有450M左右,虽然我并不觉得这个很大,而且scp下来也就花了10秒不到?但是可能是由于是DigitalOcean的,本来地理位置就在荷兰,我在比利时,下来可能就是很快,但是当我想上传到阿里云的新加坡数据库的时候,发现真的是贼慢啊,我450M试过了好几次,都是在40-50%的时候直接卡死了,丝毫不动。
想了半天,想到了一个办法,那么就不mysqldump全部好了,问了一下GPT,发现mysqldump还能带命令的,并不是只能一次性全部出来,于是乎有了下面这个命令:
mysqldump -u root -p arxiv arxiv_daily \
--where="id >= 1 AND id < 10001" \
--no-create-info \
--skip-triggers \
--skip-add-drop-table \
--insert-ignore \
> arxiv_daily_000001_010000.sql因为我本身就有主键,所以直接把20w个文件,分成1w一小份,然后上传就可以了,然后需要加一些额外的参数"skip-add-drop-table",这些避免新的sql插入覆盖掉已有的数据库的数据。
总结
总结,很简单!
Windows系统不要起mysql数据库,尽量用没有编码问题的系统。
mysql大数据库迁移的时候可以分成一小段一小段的,也记得不要覆盖掉之前的数据库数据,很重要!
参考
[1] ChatGPT
[2] 自己