mysql语法相关
# 导入/导出 MySQL
# 导出数据库
# 导出完整数据:表结构+数据
Linux 下可以使用 mysqldump 命令来导出数据库,语法格式如下:
mysqldump -u用户名 -p 数据库名 > 数据库名.sql
1
以下命令可以导出 abc 数据库的数据和表结构:
# /usr/local/mysql/bin/mysqldump -uroot -p abc > abc.sql
1
按下回车键后会提示输入密码,输入即可。
**注意:**mysqldump 命令路径是根据你 MySQL 安装路径决定的。
# 只导出表结构
如果你只需要导出 MySQL 的数据表结构,可以使用 -d 选项,格式如下:
mysqldump -u用户名 -p -d 数据库名 > 数据库名.sql
1
以下命令可以导出 abc 数据库的表结构:
#/usr/local/mysql/bin/mysqldump -uroot -p -d abc > abc.sql
1
# mysqldump选项说明
参数名 | 缩写 | 含义 |
---|---|---|
--host | -h | 服务器IP地址 |
--port | -P | 服务器端口号 |
--user | -u | MySQL 用户名 |
--pasword | -p | MySQL 密码 |
--databases | 指定要备份的数据库 | |
--all-databases | 备份mysql服务器上的所有数据库 | |
--compact | 压缩模式,产生更少的输出 | |
--comments | 添加注释信息 | |
--complete-insert | 输出完成的插入语句 | |
--lock-tables | 备份前,锁定所有数据库表 | |
--no-create-db/--no-create-info | 禁止生成创建数据库语句 | |
--force | 当出现错误时仍然继续备份操作 | |
--default-character-set | 指定默认字符集 | |
--add-locks | 备份数据库表时锁定数据库表 |
# 导入数据库
# 使用 mysql 命令导入
使用 mysql 命令导入数据库格式如下:
mysql -u用户名 -p 数据库名 < 数据库名.sql
1
以下实例将备份的数据库 abc.sql 导入到数据库中:
# mysql -uroot -p123456 < abc.sql
1
涉及到密码相关的,要
# 使用 source 命令导入
使用 source 命令需要我们先登录到 mysql 中,并创建一个空的数据库:
mysql> create database abc; # 创建数据库
mysql> use abc; # 使用已创建的数据库
mysql> set names utf8; # 设置编码
mysql> source /home/abc/abc.sql # 导入备份数据库
1
2
3
4
2
3
4
注意你备份的 sql 文件路径。
# -e参数导入【特殊】
#方式二
mysql -uroot -pPxxx mysql < /srv/app/portal/dataportal.sql
#方式一
mysql -uroot -pxxxx -e "
source /srv/app/dataportal/dataportal.sql;
quit
"
1
2
3
4
5
6
7
2
3
4
5
6
7
# 使用 LOAD DATA 导入数据
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl
-> FIELDS TERMINATED BY ':'
-> LINES TERMINATED BY '\r\n';
1
2
3
2
3
# 使用 mysqlimport 导入数据
mysqlimport 客户端提供了 LOAD DATA INFILEQL 语句的一个命令行接口。mysqlimport 的大多数选项直接对应 LOAD DATA INFILE 子句。
从文件 dump.txt 中将数据导入到 mytbl 数据表中, 可以使用以下命令:
$ mysqlimport -u root -p --local mytbl dump.txt
password *****
1
2
2
# 总括
备份实例
备份所有数据库:
mysqldump -uroot -p --all-databases > /backup/mysqldump/all.db
1
备份指定数据库:
mysqldump -uroot -p test > /backup/mysqldump/test.db
1
备份指定数据库指定表(多个表以空格间隔)
mysqldump -uroot -p mysql db event > /backup/mysqldump/2table.db
1
备份指定数据库排除某些表
mysqldump -uroot -p test --ignore-table=test.t1 --ignore-table=test.t2 > /backup/mysqldump/test2.db
1
# 还原命令
系统行命令
mysqladmin -uroot -p create db_name
mysql -uroot -p db_name < /backup/mysqldump/db_name.db
注:在导入备份数据库前,db_name如果没有,是需要创建的; 而且与db_name.db中数据库名是一样的才可以导入。
1
2
3
4
2
3
4
soure 方法
mysql > use db_name
mysql > source /backup/mysqldump/db_name.db
1
2
2
# 参考链接
上次更新: 2022/04/15, 05:41:31