面对大数据量,大文件的sql操作,我们需要借助mysql强大的命令操作:
1. 数据库导入命令
代码如下 | 复制代码 |
mysql -h localhost -u root -p use dbname source backup.sql |
说明:需要使用命令连接上数据库并选择相应数据库才能使用。
2. 数据库备份命令
MySQL的导出命令mysqldump,基本用法是:
代码如下 | 复制代码 |
mysqldump [OPTIONS] database [tables] |
说明:不能先连接数据库,是直接连接数据库导出
简单实例:
代码如下 | 复制代码 |
mysqldump -h localhost -u root -p dbname > backup.sql |
MySQL的mysqldump命令,基本用法是:
mysqldump [OPTIONS] database [tables]说明:
1. 通过执行mysqldump –help,你能得到你mysqldump的版本支持的使用帮助信息。
2.如果端口为默认的3306时,可省略 -P {端口号} 这一项。
3.命令行格式中 { } 中的内容都是变量
主机名 : {hostname}
端 口:{port} (一般默认3306,可缺省)
用户名:{user} {username} (如root)
密 码:{password}
数据库名 :{database}
表 名:{table} {table1} {table2}
文件名:{backup.sql}
.常用操作:
备份MySQL整个数据库:
代码如下 | 复制代码 |
mysqldump -h主机名 -P端口 -u用户名 -p密码 (–database) 数据库名 > 文件名.sql mysqldump -h{hostname} -P{port} -u{username} -p{password} {database} > {backup.sql} |
说明:参数及值可以分开如-P3306可以写成-P 3306,密码可以先不填写,以确保安全。
MySQL数据库压缩备份:
代码如下 | 复制代码 |
mysqldump -h{hostname} -u{username} -p{password} {database} | gzip > {backup.sql.gz} |
备份MySQL数据库某个(些)表:
mysqldump -h主机名 -P端口 -u用户名 -p密码 (–tables | –quick) 数据库名 表名1 (表名2 …) > 文件名.sql (括号中的可缺省)。
#实例:
代码如下 | 复制代码 |
mysqldump -u root -p myadmindb admin_group admin_group_right admin_logs admin_user_right admin_users > tmp.sql |
同时备份多个MySQL数据库:
代码如下 | 复制代码 |
mysqldump -h{hostname} -P{port} -u{username} -p{password} –databases {database1} {database2} {database3} > multibackfile.sql |
还原MySQL数据库的命令:
代码如下 | 复制代码 |
mysql -h{hostname} -u{username} -p{password} {database} < {backup.sql} |
还原压缩的MySQL数据库:
代码如下 | 复制代码 |
gunzip < {backup.sql.gz} | mysql –u{username} –p{password} {database} |
将数据库转移到新服务器:
代码如下 | 复制代码 |
mysqldump –u{username} –p{password} {database} | mysql –host={hostname} –C {database} |