数据备份

使用MySQLdump命令备份

  1. mysqldump -u user -p database > d:/backup.sql
  2. mysqldump -u user -p database table > d:/backup.sql

直接复制整个数据库目录

使用MySQLhotcopy工具快速备份

数据恢复

使用MySQL命令恢复

mysql -u user -p database < /path/backup.sql
# 必须use数据库
use database;
source /path/backup.sql

直接复制到数据库目录

MySQLhotcopy快速恢复

停止MySQL服务
指定数据库文件所有者

chown -R msyql.mysql /path

将备份文件复制到原数据路径下
启动MySQL服务

数据库迁移

相同版本数据库之间的迁移

迁移过程就是将源数据库备份和目标数据库恢复的过程组合。

# 全库迁移可使用 --all-databses
mysqldump -h host -u user -p password database | msyql -h host -u user -p password

不同版本数据库之间的迁移

不同数据库之间的迁移

可使用myODBC实现MySQL和SQL server之间的迁移。
官方工具MySQL migration toolkit

表的导入和导出

使用select into outlife导出文本文件

mysql> select * from test.person into outfile “d:/per.txt”;
ERROR 1290 (HY000): The MySQL server is running with the —secure-file-priv option so it cannot execute this statement
mysql> show variables like ‘%secure%’;
+—————————————+————————————————————————+
| Variable_name | Value |
+—————————————+————————————————————————+
| require_secure_transport | OFF |
| secure_file_priv | C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\ |
+—————————————+————————————————————————+
2 rows in set, 1 warning (0.00 sec)
百度了一下,解决问题。

使用mysqldump命令导出文本文件

使用load data infile方式导入文本文件

使用MySQLimport命令导入文本文件

综合案例

经典习题