连接远程数据库
mysql -h 主机地址 -P 3306 -u 用户名 -p
#按照提示输入密码即可
导出远程主机的指定数据库全部数据表(数据+结构)
mysqldump -u 用户名 -p --host=主机地址 数据库名 > 文件名.sql
#按照提示输入密码即可
尝试转储 MySQL 数据库时,可能会收到“拒绝访问”错误:
mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces
#使用--no-tablespaces选项
mysqldump --no-tablespaces -u 用户名 -p --host=主机地址 数据库名 > 文件名.sql
只导出表结构(-d 选项)
mysqldump -u 用户名 -p -d 数据库名 > 文件名.sql
使用 mysql 命令导入备份的数据库
mysql -u 用户名 -p 数据库名 < 文件名.sql
使用 source 命令导入,使用 source 命令需要先登录到数据库
mysql> create database test; # 创建数据库
mysql> use test; # 使用已创建的数据库
mysql> set names utf8; # 设置编码
mysql> source /root/test.sql # 导入备份数据库
自用的远程导出并导入到本地mysql脚本(供参考)可自动输入密码
#!/bin/sh
/usr/bin/expect<<EOF
set timeout 300
spawn sh -c "/usr/bin/mysqldump --no-tablespaces -u 数据库名 -p --host=主机地址 数据库名 > 文件名.sql"
expect "Enter password:"
send "密码\n"
expect EOF
EOF
/usr/bin/expect<<EOF
set timeout 300
spawn sh -c "/usr/bin/mysql -u 用户名 -p 数据库名 < 文件名.sql"
expect "Enter password:"
send "密码\n"
expect EOF
EOF
exit