您的位置:首页 > 数据库 > MySQL

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

2018-01-10 16:01 381 查看
格式为:

  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的配置项值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐