Mysql-导出导入数据
导出
select ... into outfile导出
select 导出内容 into outfile '导出的绝对路径';
条件:
- secure_file_priv 的值未设置或包含了导出的绝对路径
secure_file_priv的值在mysql配置文件my.ini中设置,这个参数用来限制数据导入导出,默认为空(NULL)即默认禁止导入导出
- secure_file_priv值为NULL = 禁止导入导出
- secure_file_priv值无具体值/为空字符 = 无限制
- secure_file_priv值为某目录 = 仅允许在该目录下导入导出
- mysql服务拥有对导出绝对路径的写权限
mysqldump导出
mysqldump 是 mysql 用于转存储数据库的实用程序。它主要产生一个 SQL 脚本,其中包含从头重新创建数据库所必需的命令 CREATE TABLE INSERT 等。
mysqldump.exe在mysql/bin
目录下
- 导出表作为原始数据
使用 mysqldump 导出数据需要使用 --tab 选项来指定导出文件指定的目录,该目标必须是可写的。
导出dvwa库guestbook表数据
mysqldump -u root -p --no-create-info --tab=C:\\test dvwa guestbook
- 导出 SQL 格式的数据
mysqldump -u root -p database_name table_name > (filepath)filename.txt
导出dvwa库guestbook表的数据
mysqldump -u root -p dvwa guestbook > C:\\test\\dump.txt
导出dvwa库的数据
mysqldump -u root -p dvwa > C:\\test\\dumpdvwa.txt
导出所有数据库
mysqldump -u root -p --all-databases > C:\\test\\database_dump.txt
- 将数据直接导出至远程主机
- 将指定主机的数据库拷贝到本地
物理机将虚拟机192.168.146.144的dvwa库的数据导出至本机
mysqldump -h 192.168.146.144 -P 3306 -u root -p dvwa > C:\\temp\\192.168.146.144.txt
- 将本地数据库导出至指定主机数据库
物理机将本机chatroom库导出至虚拟机192.168.146.144中
mysqldump -u root -p chatroom | mysql -h 192.168.146.144 chatroom
未实现成功,需要修改权限,过程较麻烦
ODBC access denied解决办法:https://www.cnblogs.com/cx-code/p/9287274.html
导入
source命令导入
登录mysql终端
mysql> create database dvwa;
mysql> use dvwa;
mysql> set names utf8;
mysql> source C:\\phpStudy\\MySQL\\bin\\dvwa.sql
使用 LOAD DATA 导入数据
MySQL 中提供了LOAD DATA INFILE语句来插入数据。
以下实例中将从当前目录中读取文件 dump.txt ,将该文件中的数据插入到当前数据库的 mytbl 表中。
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;
如果指定LOCAL关键词,则表明从客户主机上按路径读取文件。MYSQL反向任意文件读取
如果没有指定,则文件在服务器上按路径读取文件。
使用 mysqlimport 导入数据
mysqlimport与mysqldump在同一目录mysql/bin。
从文件 test1.txt 中将数据导入到 test 库 test1表中, 可以使用以下命令:
mysqlimport -u root -p --local test test1.txt
文件名即表名