mysql数据库的备份与恢复
mysqldump工具备份
1、备份指定数据库
mysqldump -uroot -h host -p dbname > backdb.sql
2、备份多个数据库
mysqldump -u root -h host -p --databases dbname1 dbname2 > backdb.sql
3、备份系统中的所有数据库
mysqldump -u root -h host -p --all-databases > backdb.sql
4、备份某个数据库的某个表
mysqldump -uroot -h host -p dbname tablename1 > backdb.sql
5、备份某个数据库的某几个表
mysqldump -uroot -h host -p dbname tablename1 tablename2 > backdb.sql
导出满足条件的记录
./mysqldump -uroot -p1qaz2wsx risk yd_black_list_validate_record --where 'yd_verified_date >"2022-03-01"' >xx.sql
使用 SELECT ... INTO OUTFILE 语句导出数据
查看官方文档,secure_file_priv参数用于限制LOAD DATA, SELECT …OUTFILE, LOAD_FILE()传到哪个指定目录。
secure_file_priv 为 NULL 时,表示限制mysqld不允许导入或导出。
secure_file_priv 为 /tmp 时,表示限制mysqld只能在/tmp目录中执行导入导出,其他目录不能执行。
secure_file_priv 没有值时,表示不限制mysqld在任意目录的导入导出。
因为 secure_file_priv 参数是只读参数,不能使用set global命令修改。
mysql 命令导入
1、在导入数据前,先创建指定的数据库
2、使用mysql命令导入
mysql -u用户名 -p密码 dbname< 要导入的数据库数据
source 命令导入
source 命令导入数据库需要先登录到数库终端:
mysql> create database dbname character set utf8; # 创建数据库 mysql> use dbname; # 使用已创建的数据库 mysql> source /home/abc/abc.sql # 导入备份数据库
load data file
服务端数据导入方式:
CREATE DATABASE `load_test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';