连接远程数据库
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
最后修改:2024 年 03 月 31 日
如果觉得我的文章对你有用,请随意赞赏