数据库备份与恢复
1. 使用 mysqldump 进行数据库导出
使用 mysqldump 可以进行数据库中数据的导出,可以生成 sql 文件,在 shell 中执行以下命令。
命令:
mysqldump -h[xxx.xxx.xxx.xxx] -u[username] -P[port] -p[password] [databasename] --where='true limit 1000' > dump.sql
- 【 username 】: 数据库登陆用户名
- 【 password 】: 数据库登陆密码
- 【 port 】: 登陆端口
- 【 database 】: 你要备份的那个数据库
- 【 xxx.xxx.xxx.xxx 】: 你要备份的那个数据库服务器的 ip 地址
自行将括号中的信息进行替换,–where 可以限制导出数据表的条件,例如,这里限制导出 1000 条数据表中的数据,导出为 sql 文件。
2. 数据恢复
进入 mysql shell,输入以下命令。
命令:
mysql>source [存放 sql 文件的路径]
可能最后你看到的数据库表中可能有乱码问题,这时检查下数据库的编码:
mysql>show variables like 'character%';
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
--如果是这样的,需要修改下编码--
mysql>set names 'utf8';
-- 这个命令,相当于以下三个命令 --
-- SET character_set_client = utf8; --
-- SET character_set_results = utf8; --
-- SET character_set_connection = utf8; --