mysql命令导出导入数据

一、导出

一、使用mysqldump命令

例如:

1、要导出远程服务器mysql的testdb数据库

mysqldump -h192.168.1.100 -uroot -proot --databases testdb

2、要导出远程服务器mysql的testdb数据库并压缩sql文件

mysqldump  [-d -t] -R --single-transaction -h192.168.1.100  -uroot -proot --databases testdb [--ignore-table]  | gzip > /root/testdb.sql.gz

常用参数如下:

  • --routines,-R         : 导出存储过程以及自定义函数。
  • --single-transaction   : 该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB 和 BDB。
  • --ignore-table=数据库名.表名1(排除大表,该选项可重复出现排除多张表
  • -d 只导出表结构
  • -t 只导出表数据
  • --skip-extended-insert 一行一行导出

 3.只导出单独表的数据及结构

    mysqldump  -uroot -proot testdb table_name1  > /root/table_name1.sql

二、导出select查询结果
     Select语句 into outfile '保存路径+文件名';

二、导入

一、导入select查询结果:

     load data local infile '保存路径+文件名' into table 表明 character set utf8;

二、第一种方法:

命令导入sql文件:mysql -uroot -proot 数据库名 > c:/qwe.sql(文件名)


三、第二种方法:

使用source命令

先创建数据库
在命令登入 mysql -uroot -proot
进入该数据库后
source 123.sql(不能加分号)

注意:

问题1:当导入失败时注意一下数据库编码问题

使用如下命令查看一下是否时utf8编码,刚搭建完的mysql数据库,导入数据特别容易忽略字符集

先修改my.ini文件,设置字符集,重启mysql

 

再执行set names ‘utf8mb4’;设置字符集

问题2:

当导入sql文件时,服务器提示:Lost connection to MySQL server during query或server has gone away 
说明导入文件太大,或是导入超时,需要设置允许sql文件的大小
在my.ini文件的mysqld子节点下添加max_allowed_packet = 500M(大小随便设置)

不存在my.ini文件,则设置过程如下:

1、执行mysql --help命令查看配置文件读取顺序

2、执行sudo vim /etc/my.cnf 添加配置文件

注意:mysql的my.ini中是分模块配置的client、mysqld、mysql,可以直接复制下面的配置

[client]

[mysqld]
character-set-server=utf8
max_allowed_packet = 5000M

[mysql]
default-character-set=utf8

3、重启mysql

4、执行mysql --print-defaults查看mysql参数

会打印mysql模块下的配置,只要出现则表示刚才的配置文件生效了

5、再次导入文件就可以了 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值