前言
此方案只是针对,个人项目,然后你有多台电脑,不同电脑之间的数据库同步方案。尤其是指家中电脑和公司电脑二者之间的数据库同步问题。
- 有人可能会说,买个服务器,在服务器搭建个数据库,远程调用不就可以了。
如果是多人合作,远程调用肯定是首先。但如果只有你一个人,又不想买服务器,搭建数据库。当然,使用本地同步的方案,不是因为没钱买服务器搭建,而是效率问题!远程连接数据库,http请求,请求响应,网络延迟,请求超时,是远程连接影响开发效率的主要原因!尤其是经常出现当一段时间不连接mysql,再次连接时就会报连接时间小于某某的错误!
自从 从远程连接数据库,改成了本地数据库之后,数据请求速度,开发速度都提高了,心情都好多了。
一、使用docker快速安装mysql
原因:docker安装可以不污染本机环境,安装简单,卸载也简单!而且各种各样的软件都有docker安装方案,一键安装!并且可以同时安装多个mysql,redis等!环境统一,不存在mac,windows差异问题!
docker pull mysql:5.6
创建自动启动的mysql
docker run --restart=always --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=PASSWORD -d mysql:5.6
二、导出项目数据库,并上传到远程
导出数据sql、本地备份、远程上传的脚本
echo '开始导出数据库'
echo -n '#' > ./yjd.sql
docker exec -it mysql mysqldump -uroot -pxxxx yjd >> ./yjd.sql
echo '开始上传数据库'
ossutilmac64 cp -f ./yjd.sql oss://xxxx/yjd.sql
today=`date +"%Y-%m-%d"`
cp -f ./yjd.sql ~/Documents/code/temp/yjd-database-bak/${today}"-yjd.sql"
rm -f ./yjd.sql
echo '成功上传数据库'
其中远程上传使用了oss工具,并上传到了oss服务器,原因是带宽足上传速度快。慢点的方式就是采用scp上传到自己的服务器。
可以设置git push的勾子,每当push的时候,自动执行脚本, 上传数据库。
三、从远程下载数据,并覆盖式导入项目数据
echo '开始下载数据库'
ossutilmac64 cp oss://xxxx/yjd.sql ./yjd.sql
docker exec -i mysql mysql -uroot -pxxx yjd < ./yjd.sql
rm -f ./yjd.sql
echo '成功导入数据库'
可以设置git pull的勾子,每当pull的时候,自动 执行脚本,同步数据库数据。