【MySQL附录】A2:客户端工具使用详解(中):mysqladmin、mysqldump、mysqlpump、mysqlimport

注意:这些工具如同mysql客户工具一样,默认的选项会从/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf文件中读取对于节的配置(如有)。(通过这些工具--help可以看到:Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf )

 

mysqladmin工具

mysqladmin是用于执行管理服务端的客户端(工具)。您可以使用它来检查服务器的配置和当前状态,创建和删除数据库等等。使用该工具的命令格式为:

mysqladmin [options] command [command-arg] [command [command-arg]] 

command内容很多,可以通过该命令的联机帮助查看。常用的列如下:

  • create db_name

创建一个名为的新数据库 db_name (schema)

[zyplanke@tester ~]$ mysqladmin -h 192.168.43.201 -u root -p create abcde
Enter password: 
[zyplanke@tester ~]$ 
  • drop db_name

 删除命名数据库db_name(schema) 及其所有表

  • debug

 告诉服务器将debug信息写入error日志。连接的用户必须具有 SUPER特权。

  • status

 显示简短的服务器状态消息。

  • extended-status

 显示服务器状态变量及其值

  • flush-logs [log_type ...]

 刷新所有日志

  • flush-privileges   或 reload 

 重新加载授权表(与reload相同)

  • flush-tables

 刷新所有表

  • processlist

 显示在服务器上连接线程的列表。这就像该SHOW PROCESSLIST语句的输出

  • shutdown

 停止MySQL服务端

  • variables

 显示服务器系统变量及其值。

  • version

 显示来自服务器的版本信息。​​​​​​

 

mysqldump工具

    将MySQL数据库以SQL,文本或XML格式转储到文件中 的客户端工具。该工具进行 逻辑备份,产生可以被重新执行以恢复原数据库对象定义及表数据的SQL语句。它经常被用于从一台MySQL数据库服务器,转移/备份到另一台SQL服务器。该工具也可以输出CSV,其他分隔符的文本或XML格式的文件。

有三种使用 mysqldump命令形式:分别用于dump一个或多个表,一个或多个database(schema)或整个MySQL服务器上的所有database(schema),如下所示:

shell> mysqldump [options] db_name [tbl_name ...]
shell> mysqldump [options] --databases db_name ...
shell> mysqldump [options] --all-databases

其中选项有很多,建议通过--help查看具体使用。

提升:如果使用版本8.0以上的mysqldump去导出低版本的数据库库,会报:mysqldump: Couldn't execute 'SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTICS                WHERE SCHEMA_NAME = 'test' AND TABLE_NAME = 'TB';': Unknown table 'COLUMN_STATISTICS' in information_schema (1109) 之类的错误。是因为早期版本的MySQL数据库的information_schema数据库中没有名为COLUMN_STATISTICS的数据表。 可以对mysqldump指定选项:“--column-statistics=false” 就可以解决此问题。
[zyplanke@tester ~]$ mysqldump -h 192.168.43.201 -u root -p --databases test > backup_of_test.sql        
Enter password: 


#可以看到backup_of_test.sql文件中有DDL语句,还有DML数据语句。

 导入的sql语句,可以直接使用mysql执行。

 

[zyplanke@tester ~]$ mysqldump -h 192.168.43.201 -u root -p  -xml  test articles > backup_of_articles.sql
Enter password: 


#可以看到backup_of_articles.sql文件是XML,包含表结构和数据。

 

mysqlpump工具

将MySQL数据库作为SQL转储到文件中 的客户端工具。它的功能和选项与mysqldump类似,它时并行处理数据库以及数据库中的对象,以加快备份过程。可以视为mysqldump的加强版。

 

mysqlimport工具

使用将文本文件的数据导入到表,文件名(不含前缀)必须等于表名。其大多数选项直接与LOAD DATA语句对应。是“load data infile”命令的一个包装实现。

本命令的格式为:

shell> mysqlimport [options] db_name textfile1 [textfile2 ...]

为了演示mysqlimport工具的使用,我们先导出一个表的数据(不是SQL语句,而是纯数据的文本文件)

#将select结果集数据放存放到文本文件中(指定了字段分割符,字符串加双引号)
#注意:结果文件是在存放MySQL服务器上,不是运行mysql客户端的机器。文件路径应符合:secure_file_priv的配置。
mysql> select * from test.articles into outfile '/var/lib/mysql-files/articles.data' fields terminated by ','  optionally enclosed by '"' ;
Query OK, 7 rows affected (0.00 sec)


#导出后,清空表中的数据
mysql> delete from test.articles;
Query OK, 7 rows affected (0.00 sec)

导出后的articles.data文件内容(存放在MySQL服务端机器上)为:

1,"MySQL Tutorial","DBMS stands for DataBase ..."
2,"How To Use MySQL Well","After you went through a ..."
3,"Optimizing MySQL","In this tutorial we will show ..."
4,"1001 MySQL Tricks","1. Never run mysqld as root. 2. ..."
5,"MySQL vs. YourSQL","In the following database comparison ..."
6,"MySQL Security","When configured properly, MySQL ..."
7,"中文标题","中文内容:MySQL教程学习等等"

 

 将存放在MySQL服务器机器上的文件中的数据,导入到表中:

[zyplanke@centosa ~]$ mysqlimport -h 192.168.43.201 -u root -p test /var/lib/mysql-files/articles.data --fields-terminated-by=',' --fields-optionally-enclosed-by='"'  
Enter password: 
test.articles: Records: 7  Deleted: 0  Skipped: 0  Warnings: 0

 然后,再select该表,可以发现已经有数据了。

 

如果不是从MySQL服务器机器上的文件导入,而是从执行mysql客户端机器上导入(比如将该文件传输至客户端机器上),则需要使用--local选项。如下:

[zyplanke@otherhost ~]$ mysqlimport -h 192.168.43.201 -u root -p test --local  /home/zyplanke/articles.data --fields-terminated-by=',' --fields-optionally-enclosed-by='"'  
Enter password: 
test.articles: Records: 7  Deleted: 0  Skipped: 7  Warnings: 7

#因为主键冲突,所以提示:Skipped: 7  Warnings: 7

 

mysqlcheck工具

     该工具是对表维护,用于检查,修复,分析和优化表 的客户端工具。选项较多,建议直接参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/mysqlcheck.html

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值