欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MySQL 5.5/5.6——概述 MySQL 客户端程序_MySQL

程序员文章站 2022-05-15 14:37:49
...
bitsCN.com

MySql 客户端程序

  • mysql
  • mysqladmin
  • mysqlcheck
  • mysqldump
  • mysqlimport
  • mysqlshow
  • mysqlslap
  • 参考资料

 

mysql


mysql 是一个可以输入行的 SQL 外壳,输入行可以编辑。它支持交互和非交互。当使用交互式,查询结果以一个 ASCII 表格式来显示。当使用非交互时(例如,作为过滤),查询结果以 tab 分隔格式显示。输出格式可以通过命令行选项来改变。如下所示:

shell> mysql db_name;

shell> mysql --user=user_name --password=your_password db_name;

键入 ;/g/G,按回车,语句就会执行。

也可以执行一个脚本文件的语句,如下所示:

shell> mysql db_name  output.tab
在 Unix 系统上,mysql 客户端会向历史文件写入执行语句记录。

 

mysqladmin


mysqladmin 是在客户端执行管理性的操作。可以使用该命令检查服务配置和当前状态,以及创建和删除数据库等等。如下所示:

shell> mysqladmin [options] command [command-arg] [command [command-arg]] ...

 

mysqlcheck


mysqlcheck 执行表的维护:检查、修复、优化,或分析。

当执行该命令时,表会被锁定(只读),因此,对其他会话来说不可用。表维护操作很耗时,特别是对大表来说。如果你使用  --databases--all-databases 选项来处理一个或多个数据库的所有表,mysqlcheck 可能会花很长时间。

mysqlcheckmyisamchk,但是运行不同。主要的不同是,mysqlcheck 只有当 mysqld 服务运行时才能使用,而 myisamchk 不需要。使用 mysqlcheck 的好处是不用停止服务就可以执行表维护。

mysqlcheck 以方便的方式使用 SQL 语句 CHECK TABLEREPAIR TABLEANALYZE TABLEOPTIMIZE TABLE。确定你想执行哪个语句,之后,该语句发送给服务器来执行。

MyISAM 存储引擎支持所有四种维护操作,因此,mysqlcheck 可以被用于在 MyISAM 表上执行任何的一个。其他存储引擎不能全支持。此时,会显示错误信息。例如,若 test.t 是一个 MEMORY 表,检查会产生如下结果:

shell> mysqlcheck test t
test.t
note : The storage engine for the table doesn't support check

调用 mysqlcheck 一般有三个方式:

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

如果没有在 db_name 后指定任何表名,或使用 --databases--all-databases 选项,那么将检查整个数据库。

与其他客户端程序相比,mysqlcheck 有一个的特别功能。通过重新命名为二进制可以改变检查表的默认行为。如果你期望你有个默认修复表的工具,那么你只需复制 mysqlcheck,并重新命名为 mysqlrepair,或用符号连接。如果调用 mysqlrepair,它就会修复表。

 

mysqldump


mysqldump 最初是 Igor Romanenko 编写的备份程序。为了备份来转储(dump)一个数据库或数据库集合,传输到另一个 SQL 服务(不必是 MySQL 服务)。转储典型地包含创建表,填充表的 SQL 语句,或两者同时。mysqldump 也用来产生 CSV 文件,其他分隔文本,或 XML 格式。

将MySQL数据库转储到一个文件(例如SQL语句或tab分隔符文本文件)的客户程序。

mysqldump 要求至少 SELECT 权限(用来转储表),SHOW VIEW 权限(用来转储视图),以及 LOCK TABLES 权限(如果没有使用 --single-transaction 选项)。

如果备份,但所有表都是 MyISAM 表,可以考虑 mysqlhotcopy,因为,它可以更快地完成备份和恢复。

调用 mysqldump 有三个方式:

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

如果没有在 db_name 后指定任何表名,或使用 --databases--all-databases 选项,那么将转储整个数据库。

默认情况下,mysqldump 不会转储 INFORMATION_SCHEMA 数据库。但可以在命令行显式指定。在 MySQL 5.5 之前,mysqldump 会忽略 INFORMATION_SCHEMA 数据库,即便你在命令行显式指定。

mysqldump 不会转储 performance_schema 数据库。

MySQL 5.5.25 之前的版本,mysqldump 不会转储 general_logslow_query_log 表。MySQL 5.5.25 的转储包含重新创建这些表的语句,这样,重新加载转储文件后,它们不会丢失。日志表的内容不会被转储。

mysqldump 也不会转储 MySQL Cluster ndbinfo 信息数据库。

mysqldump 选项列表,请执行 "mysqldump --help"

 

mysqlimport


mysqlimport 为 LOAD DATA INFILE SQL 语句提供一个命令行接口。如下所示:

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

在命令行上指定的每个 textfile,mysqlimport 从文件名去掉扩展名,并使用该结果来确定表名,将其导入到文件内容。例如,名为 patient.txt、patient.text,所有的 patient 将被导入到一个名为 patient 的表。

 

mysqlshow


mysqlshow 用来快速查看已存在的数据库,及其表,列或索引。

mysqlshow 为很多 SQL SHOW 语句提供了一个命令行接口。如下所示:

shell> mysqlshow [options] [db_name [tbl_name [col_name]]]
  • 若没指定数据库,则显示所有数据库。
  • 若没指定表,则显示数据库中所有的表。
  • 若没指定列,则显示表的所有列和类型。

可以在参数中使用通配符(*、?、%、_)。

 

mysqlslap


mysqlslap 是诊断程序,用于模拟客户端加载,并报告每个阶段的时间。如果是多客户端正在访问服务,那么该命令很有用。如下所示:

shell> mysqlslap [options]

 

参考资料


  • MySQL dev http://dev.mysql.com/doc/

MySQL 5.5/5.6——概述 MySQL 客户端程序_MySQL

bitsCN.com