Mysql-导出导入数据

导出

select ... into outfile导出

select 导出内容 into outfile '导出的绝对路径';
条件:

  1. secure_file_priv 的值未设置或包含了导出的绝对路径
    secure_file_priv的值在mysql配置文件my.ini中设置,这个参数用来限制数据导入导出,默认为空(NULL)即默认禁止导入导出
  • secure_file_priv值为NULL = 禁止导入导出

  • secure_file_priv值无具体值/为空字符 = 无限制

  • secure_file_priv值为某目录 = 仅允许在该目录下导入导出

  1. mysql服务拥有对导出绝对路径的写权限

mysqldump导出

mysqldump 是 mysql 用于转存储数据库的实用程序。它主要产生一个 SQL 脚本,其中包含从头重新创建数据库所必需的命令 CREATE TABLE INSERT 等。
mysqldump.exe在mysql/bin目录下

  1. 导出表作为原始数据
    使用 mysqldump 导出数据需要使用 --tab 选项来指定导出文件指定的目录,该目标必须是可写的。
    导出dvwa库guestbook表数据
    mysqldump -u root -p --no-create-info --tab=C:\\test dvwa guestbook
  2. 导出 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
  3. 将数据直接导出至远程主机
  • 将指定主机的数据库拷贝到本地
    物理机将虚拟机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

文件名即表名

posted @ 2020-07-11 19:16  雨九九  阅读(385)  评论(0编辑  收藏  举报