MySQL备份和恢复数据以及docker启动脚本

MySQL 备份数据

################## 只导出表结构不导出数据 ##################
# 加上这个就行 --opt -d
mysqldump --opt -d -hlocalhost -uroot -p123456 school > D:/a.sql
# docker导出表结构
docker exec -i site-mariadb-10.3 sh -c 'exec mysqldump --opt -d -uroot -p"123456" lu_tale' > lu_tale.sql


################## 手动导出数据 ##################
# 单表 mysqldump -h 主机 -u 用户名 -p 密码 库名 表名 > 要保存的路径/xxx.sql
mysqldump -hlocalhost -uroot -p123456 school user > D:/a.sql

# 多张表 mysqldump -h 主机 -u 用户名 -p 密码 school 表1 表2 > 要保存的路径/xxx.sql
mysqldump -hlocalhost -uroot -p123456 school user result > D:/double.sql

# 导出一个数据库
# mysqldump -h 主机 -u 用户名 -p 密码 school > 要保存的路径/xxx.sql
mysqldump -hlocalhost -uroot -p123456 school > D:/all.sql

# 导出整个数据库的数据
mysqldump --all-databases -uroot -p123456 > /home/all-databases.sql


################## docker 容器导出数据 ##################
# 导出一个表数据: docker exec -i 容器名/id sh -c 'exec mysqldump -uroot -p"密码" 数据库名 表名' > 导出路径
docker exec -i site-mariadb-10.3 sh -c 'exec mysqldump -uroot -p"123456" lu_tale t_users' > lu_tale.sql

# 导出数据: docker exec -i 容器名/id sh -c 'exec mysqldump -uroot -p"密码" 数据库名' > 导出路径
docker exec -i site-mariadb-10.3 sh -c 'exec mysqldump -uroot -p"123456" lu_tale' > lu_tale.sql

# 导出所有数据: docker exec -i 容器名/id sh -c 'exec mysqldump --all-databases -uroot -p"密码" 数据库名' > 导出路径
docker exec site-mariadb-10.3 sh -c 'exec mysqldump --all-databases -uroot -p"123456"' > /home/all-databases.sql

MySQL 恢复数据

################## 手动恢复数据 ##################
# 在登陆的情况下, 切换到指定数据库
# source 文件路径
source C:\Users\admin\Desktop\shop.sql

# 未登录情况下: mysql -u用户名 -p密码 库名 < 文件路径
mysql -uroot -p123456 < /home/root/mysql/lu_table.sql
mysql -uroot -p123456 < C:\Users\admin\Desktop\shop.sql


################## docker 容器恢复数据 ##################
# 从sql文件中恢复数据: docker exec -i 容器名/id sh -c 'exec mysql -uroot -p"123456"' < SQL文件路径
docker exec -i site-mysql-5.7 sh -c 'exec mysql -uroot -p"123456"' < /home/root/mysql/lu_table.sql

docker 启动 MySQL 脚本

# MySQL 5.7
docker run -itd --name site-mysql-5.7 --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -v /home/root/mysql/data:/var/lib/mysql -v /home/root/mysql/logs:/var/log/mysql mysql:5.7
# MySQL 5.7 自定义配置文件
# docker run -itd --name site-mysql-5.7 --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -v /home/root/mysql/data:/var/lib/mysql -v /home/root/mysql/logs:/var/log/mysql -v /home/root/mysql/conf/my.cnf:/etc/mysql/my.cnf mysql:5.7

# Mariadb 10.3
# docker run -itd --name site-mariadb-10.3 --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -v /home/root/mysql/data:/var/lib/mysql -v /home/root/mysql/logs:/var/log/mysql mariadb:10.3
# Mariadb 10.3 自定义配置文件
# docker run -itd --name site-mariadb-10.3 --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -v /home/root/mysql/data:/var/lib/mysql -v /home/root/mysql/logs:/var/log/mysql -v /home/root/mysql/conf/my.cnf:/etc/mysql/my.cnf mariadb:10.3


# 从sql文件中恢复数据
# docker exec -i site-mariadb-10.3 sh -c 'exec mysql -uroot -p"123456"' < /home/root/mysql/lu_table.sql

# 导出数据: docker exec -i 容器名/id sh -c 'exec mysqldump -uroot -p"密码" 数据库名' > 导出路径
# docker exec -i site-mariadb-10.3 sh -c 'exec mysqldump -uroot -p"123456" lu_tale' > lu_tale.sql

# 导出所有数据: docker exec -i 容器名/id sh -c 'exec mysqldump --all-databases -uroot -p"密码" 数据库名' > 导出路径
# docker exec site-mariadb-10.3 sh -c 'exec mysqldump --all-databases -uroot -p"123456"' > /home/all-databases.sql
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值