第一步,备份mysql数据库
/usr/bin/mysqldump -h127.0.0.1 -P3306 -uroot -ppassword --all-databases > /home/mysql/backup/xxx.sql.bak
第二步,将备份文件发送到远端服务器
scp -P 22 /home/mysql/backup/xxx.sql.bak root@192.168.40.9:/home/mysql/backup
是MySQL数据库管理系统的命令行实用程序,用于创建数据库的逻辑备份。它能够导出数据库的结构(如表结构、视图、触发器等)以及表中的数据为 SQL 格式的文本文件。
导出
# 导出demo数据库里面的users表的表数据和表结构
> mysqldump -uroot -h127.0.0.1 -proot -P3306 demo users> /tmp/user.sql
# 只导出demo数据库的表结构
> mysqldump -uroot -proot --no-data --databases test>s1.sql
# 导出包括系统数据库在内的所有数据库
> mysqldump -uroot -proot --all-databases> /tmp/all.sql
# 导出多张表
> mysqldump -uroot -proot --databases test --tables t1 t2>two.sql
# 只导出表结构不导表数据,添加“-d”命令参数
> mysqldump -uroot -h127.0.0.1 -proot -P3306 -d demo users>/tmp/user-table.sql
# 只导出表数据不导表结构,添加“-t”命令参数
> mysqldump -uroot -h127.0.0.1 -proot -P3306 -t demo users>/tmp/user-data.sql
导入
# 脚本导入
mysql -uroot -proot -h127.0.0.1 -P3306 test
# 命令行导入
mysql> use test;
mysql> source /home/test/database.sql
使用SCP将备份的sql文件,传送到远端服务器。
Linux scp命令用于Linux之间复制文件和目录。scp是secure copy的缩写,scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
从本地复制到远程
# 复制文件
scp /home/xxx/demo.zip root@211.119.10.222:/home/others/
scp /home/xxx/demo.zip root@211.119.10.222:/home/others/test.zip
# 复制文件夹
scp -r /home/xxx/ root@211.119.10.222:/home/others/
从远程复制到本地
# 复制文件
scp root@211.119.10.222:/home/others/ /home/xxx/demo.zip
# 复制文件夹
scp -r 211.119.10.222:/home/others/ /home/xxx/
以上命令,都会要求输入账户和密码,我们可以通过添加秘钥的方式,解决。
主机A文件复制到主机B
第一步、主机A生成配对秘钥
在root目录下执行:
ssh-keygen -t rsa
第二步、将主机A .ssh 目录中的 id_rsa.pub 文件内容复制到主机B 的 ~/.ssh/ 目录中文件 的末尾
类似:
这样从主机A向主机B执行SCP命令时,就不需要输入密码了。
最后提供一个备份加发送到远程的参考脚本:
#!/bin/sh
filename=`date '+%Y%m%d-%H%M%S'`
filename="${filename}bak.sql"
/usr/bin/mysqldump -h127.0.0.1 -P3306 -uroot -ppassword --all-databases > /home/mysql/backup/${filename}
scp -P 22 /home/mysql/backup/${filename} root@192.168.40.9:/home/mysql/backup
echo "success"
*请认真填写需求信息,我们会在24小时内与您取得联系。