Linux下Mysql数据库导入命令
linux下导入、导出mysql数据库命令
一、导出数据库用mysqldump命令
(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
1 | mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql |
敲回车后会提示输入密码
2、只导出表结构
1 | mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql |
注:/usr/local/mysql/bin/
—> mysql的data目录
3、导出特定表
1 | mysqldump -uroot -p -B 数据库名 –table 表名 > xxx.sql |
二、导入数据库
1、首先建空数据库
1 | mysql>create database abc; |
2、导入数据库
方法一:
(1)选择数据库
1 | mysql>use abc; |
(2)设置数据库编码
1 | mysql>set names utf8; |
(3)导入数据(注意sql文件的路径)
1 | mysql>source /home/abc/abc.sql; |
方法二:
1 | mysql -u用户名 -p密码 数据库名 < 数据库名.sql |
建议使用第二种方法导入。
注意:有命令行模式,有sql命令
导入速度优化
使用source
导入数据库时,速度十分缓慢。400M的数据,大概需要5个小时。
此时修改
1 | innodb_flush_log_at_trx_commit=0 |
然后重启数据库
速度会有很大的提升。
默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电池供电缓存(Battery backed up cache)时。
设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬 盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 螃蟹壳!