Docker & MySQL Manual

数据库的备份一定要指定字符集,不必要的错误

1. 备份数据库

docker exec mysql_ope mysqldump -uroot -pABCD 
--single-transaction 
--quick 
--hex-blob 
openerp > /opt/wor/p20260605.sql

加上编码

 docker exec mysql_docker mysqldump -uroot -pOpABC 
--single-transaction 
--quick 
--hex-blob 
--default-character-set=utf8mb4 
openerp > /opt/w0260605.sql

或者压缩

docker exec mysql_ope mysqldump -uroot -pOp12212 
--single-transaction --quick --hex-blob opeewe | gzip > /opt/rp20260605.sql.gz

排除几个表格

docker exec mysql_ope mysqldump -uroot -pOp12212 
--single-transaction --quick --hex-blob 
--ignore-table=opeewe.c_note 
--ignore-table=opeewe.c_a
opeewe | gzip > /opt/rp20260605.sql.gz

2. 本地恢复

mysql -u root -p openerp < D:\workspace\DB\data_back\openerp20260605.sql

指定字符集導入

mysql -u root -p 
--default-character-set=utf8mb4 
--binary-mode=1 opeDB < D:\worp20260605-2.sql

3. Ubuntu 創建自動備份腳本

## create script

sudo mkdir -p opt/workspace/script
sudo nano /opt/workspace/script/mysql_auto_backup.sh

## add execute right
sudo chmod +x /opt/workspace/script/mysql_auto_backup.sh

或者
sudo -u root /opt/workspace/script/mysql_auto_backup.sh

## create system service
sudo nano /etc/systemd/system/mysql_auto_backup.service

[Unit]
Description=MySQL database openerp Backup

[Service]
Type=oneshot
ExecStart=/opt/workspace/script/mysql_auto_backup.sh


## check && create system timer
systemctl cat mysql_auto_backup.timer
sudo nano /etc/systemd/system/mysql_auto_backup.timer

[Unit]
Description=Run MySQL database openerp Backup Daily

[Timer]
OnCalendar=*-*-* 00:00:00
Persistent=true
Unit=mysql_auto_backup.service

[Install]
WantedBy=timers.target


##Enable timer & start
sudo systemctl daemon-reload

sudo systemctl enable mysql_auto_backup.timer
sudo systemctl start  mysql_auto_backup.timer

##Verify
systemctl status mysql_auto_backup.timer

## Run manually for testing
sudo systemctl start mysql_auto_backup.service

4. 常用命令

查看所有的定時器

systemctl list-unit-files | grep timer

or

systemctl list-unit-files | grep mysql

重新設定時間後,需要重啟

sudo systemctl daemon-reload
sudo systemctl restart mysql-backup.timer

監測service的運行

journalctl -fu mysql-backup.service

附件

导出没有指定字符集,造成的问题

Unknown command '\'' ERROR 1064 (42000) at line 7980:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''lily@whitw.com.hk' at line 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值