Mysql数据备份与导入

备份数据

1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名

mysqldump -u root -p student >/tmp/student.sql

2.导出一个数据库结构

mysqldump -u root -p -d --add-drop-table student >/tmp/student_structure.sql

-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

3.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

mysqldump -u root -p schoolproject student>/tmp/schoolproject_student.sql

4.根据select导出数据(使用:INTO OUTFILE)

SELECT * FROM test_db.fruits INTO OUTFILE "/fruits0.txt";

执行完上面这条命令,会有如下命令报错:
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
原因是mysql有默认目录,默认情况下,只能将文件备份到默认目录。
查看默认目录
mysql> show variables like ‘%secure%’;
±-------------------------±----------------------+
| Variable_name | Value |
±-------------------------±----------------------+
| require_secure_transport | OFF |
| secure_file_priv | /var/lib/mysql-files/ |
±-------------------------±----------------------+
2 rows in set (0.00 sec)

再次执行备份操作:
select * from students_students into outfile ‘/var/lib/mysql-files/backup_data.txt’;


恢复数据

1.导入数据库
shell> mysqladmin –u root –p create target_db_name
shell> mysql –u root –p target_db_name < backup-file.sql
就是:shell> mysql 数据库名 < 文件名

或者使用source 命令
进入mysql数据库控制台,mysql -u root –p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(.sql文件)
mysql>source /tmp/student.sql

2 导入数据到数据表里

load data local infile '/var/lib/mysql-files/backup_data.txt' into table 表明 character set utf8;

执行完毕后,报错如下:
ERROR 1148 (42000): The used command is not allowed with this MySQL version
这是因为:服务器端,local_infile默认开启;客户端,local_infile默认关闭,因此用的时候需要打开。
查看命令:

show global variables like 'local_infile';

开启命令:

set global local_infile = 'ON';

退出mysql,然后执行以下命令登入:

mysql --local-infile=1 -u root -p

最后再执行导入命令即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值