mysql导出库和表相关的操作和问题

格式为:

  mysqldump -u用户名 -p密码 数据库名 表名 --where="筛选条件" > 导出文件路径

下面按不同场景分别说明:

导出:

导整个库(表结构和数据): mysqldump -hxx -uxx -pxx db_name > db_name.sql

导整个库(仅表结构): mysqldump -hxx -uxx -pxx-ddb_name > db_name.sql

导整个库(仅数据): mysqldump -hxx -uxx -pxx -t db_name > db_name.sql

导库中表(表结构和数据): mysqldump -hxx -uxx -pxx db_nametable_name> db_name-table_name.sql

导库中表(仅表结构): mysqldump -hxx -uxx -pxx -d db_name table_name> db_name-table_name.sql

导库中多个表(表结构和数据): mysqldump -hxx -uxx -pxx db_name table_name1 table_name2 table_namex > db_name-table_namex.sql

导库中多个表(仅表结构): mysqldump -hxx -uxx -pxx -d db_nametable_name1 table_name2 table_namex  > db_name-table_name.sql


如果报错:mysqldump: Got error: 1044: Access denied for user 'xxx'@'10.%.%.%' to database 'xxx' when using LOCK TABLES,

可加上不锁表的参数 --skip-lock-tables  


where 条件仅对单表起作用,如 --where="Column_a='abc' and Column_b<100" 


导入:

因为mysqldump导出的是完整的sql语句,所以用mysql客户端很容易就可以把数据导入了,如

mysql -hxx -uxx -pxx db_name < db_name.sql

或登录进数据库后 show databases; use db_x; source path_to_xx.sql


Mysql Workbench 导出过程中遇到的问题及解决方法:

1. mysqldump: [ERROR] unknown variable 'delayed-insert=FALSE'

原因: Mysql Workbench 6.0以后的版本中会报这个错,可能是兼容性问题。这个变量'delayed-insert=FALSE'不被识别,workbench默认配置中会开启,且默认值是false。我们使用不到这具变量,可以在配置文件中注掉这个变量来解决。

解决方法:

  • 找到配置文件目录:__InstallPath__/modules
  • 打开python格式的输出配置文件:wb_admin_export_options.py
  • 找到所在行:"delayed-insert":["Write INSERT DELAYED statements rather than ...
  • 在行开头插入#号注释改行
  • 保存文件,重启Workbench
Windows中路径:C:\Program Files\MySQL\MySQL Workbench 6.3 CE\modules

Ubuntu中路径:/usr/lib/mysql-workbench/modules/wb_admin_export_options.py


2. mysqldump: Got error: 1045: Access denied for user 'xxx'@'10.xx.xx.xx' (using password: NO) when trying to connect

原因:锁表失败

解决办法:同命令行中加--skip-lock-tables选项,workbench中打开数据导出右上角的"高级选项",不勾选“loxk-tables  -- Lock tables for read. Disable if user has no LOCK TABLES privilege”


3. "Not enough memory to allocate insert buffer of size 1073741824

 可能是配置项不合适,导致内存不足,这里有个公式参考https://stackoverflow.com/questions/24501432/migration-issues-ms-sql-mysql-insert-buffer-memory,但调整参数好像也没把问题解决。换了个workbench版本(先前是6.3.5 32bit,换成6.3.6 64bit),居然没再出现这个问题了,可能是workbench的bug或workbench与mysql 5.5兼容性的问题所致。

 注: SHOW VARIABLES LIKE ‘%buffer%’  各个带buffer的配置项值


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值