vielhuber / syncdb
在两个服务器(可选通过ssh隧道)之间同步数据库(mysql, pgsql)。
1.8.4
2024-04-23 12:28 UTC
Requires
- php: >=5.6
- vielhuber/magicreplace: *
- dev-master
- 1.8.4
- 1.8.3
- 1.8.2
- 1.8.1
- 1.8.0
- 1.7.9
- 1.7.8
- 1.7.7
- 1.7.6
- 1.7.5
- 1.7.4
- 1.7.3
- 1.7.2
- 1.7.1
- 1.7.0
- 1.6.9
- 1.6.8
- 1.6.7
- 1.6.6
- 1.6.5
- 1.6.4
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.9
- 1.5.8
- 1.5.7
- 1.5.6
- 1.5.5
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.9
- 1.4.8
- 1.4.7
- 1.4.6
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.9
- 1.3.8
- 1.3.7
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
This package is auto-updated.
Last update: 2024-09-23 13:26:17 UTC
README
syncdb 在两个服务器之间同步数据库。
功能
- 最常见用例:将生产数据库同步到本地环境
- 您还可以在任何服务器之间同步,甚至从远程到远程(无需本地)
- 支持直接数据库连接或通过ssh隧道
- 目前支持mysql,将很快添加对postgresql的支持
- 还有一个快速模式,其中sql文件被压缩(您还可以选择压缩级别)
- 还包括一个名为magicreplace的搜索/替换机制
- (远程)命令如mysqldump、mysql、zip等可以手动重写以适应任何环境
- 在Linux、Mac和Windows(带有WSL)上运行
- 支持多个同步的并行执行
- 使用优化技术以实现更快的恢复
- 还支持不支持公钥的ssh连接到服务器
- 显示实时恢复进度
要求
Mac
brew install coreutils
Windows
选择以下两个选项之一
安装
Mac / Windows(WSL2)/ Linux
mkdir ~/.syncdb cd ~/.syncdb composer require vielhuber/syncdb chmod +x vendor/vielhuber/syncdb/src/syncdb
现在将 ~/.syncdb/vendor/vielhuber/syncdb/src/
添加到您的路径环境。
Windows(CMD)
mkdir "%USERPROFILE%/.syncdb" cd "%USERPROFILE%/.syncdb" composer require vielhuber/syncdb
现在将 C:\Users\xxx\.syncdb\vendor\vielhuber\syncdb\src\
添加到您的路径环境。
更新
Mac / Windows(WSL2)/ Linux
cd ~/.syncdb composer update chmod +x vendor/vielhuber/syncdb/src/syncdb
Windows(CMD)
cd "%USERPROFILE%/.syncdb" composer update
用法
syncdb profile-name
配置
只需将您的所需配置文件放入 ~/.syncdb/profiles/profile-name.json
mkdir ~/.syncdb/profiles cd ~/.syncdb/profiles nano example.json
{ "engine": "mysql", "source": { "host": "200.10.10.10", "port": "3307", "database": "EXAMPLE", "username": "EXAMPLE", "password": "EXAMPLE", "cmd": "mysqldump", "ssh": false }, "target": { "host": "localhost", "port": "3306", "database": "EXAMPLE", "username": "EXAMPLE", "password": "EXAMPLE", "cmd": "mysql", "ssh": false }, "replace": { "https://www.example.com": "http://www.example.local", "www.example.com": "www.example.local" } }
您可以在本git仓库的配置文件夹中找到更多示例。
权限
由于MySQL 5.7和MySQL 8.0.21访问INFORMATION_SCHEMA.FILES表现在需要PROCESS权限。大多数提供商都没有此选项可用。这导致错误消息
错误:'访问被拒绝;您需要(至少一个)PROCESS权限才能执行此操作',当尝试转储表空间时
syncdb会自动将--no-tablespaces
添加到您的mysqldump命令中。您可以通过将"tablespaces": true
添加到您的配置中关闭此行为。