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

目录

  • MySQL 备份数据
  • MySQL 恢复数据
  • docker 启动 MySQL 脚本

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

你可能感兴趣的:(MySQL,mysql,数据库,docker)