《MySQL DBA修炼之道》——2.5 常用命令

2.5 常用命令

本节先介绍几个常用命令,如mysql、mysqladmin、mysqldump的简单用法。后续章节还会再详述这些命令的使用。
2.5.1 使用mysql命令
首先,需要留意区分MySQL的大小写。标准的说法是,MySQL指MySQL服务器,mysql指客户端。
从Unix/Linux系统下发展出来的MySQL有着优良的设计,客户工具的所有选项都可以保存到一个“~/.my.cnf”的用户级配置文件里的[client]部分中,而且它把适用于MySQL的选项集中在了[MySQL]部分。可以先把默认的用户名、密码、端口等在“.my.cnf”文件中配置好,以便简化登录。
另外,要说明一下,本章阐述的一些命令,为了显示方便,可能会省略用户名、密码、socket文件的功能连接参数。
首先给出连接并登录数据库时会涉及的命令,分别如下。
通过IP、端口远程连接的命令。
mysql -h ip_address -P your_port -u username -p
通过TCP/IP协议进行本地连接的命令。
mysql -u username -h 127.0.0.1 -P your_port
通过socket文件进行本地连接的命令。
mysql -u username -S /path/to/mysql.sock
阅读在线帮助的命令。
mysql> help contents
退出的命令。
mysql > exit
简单查询的命令。

mysql> SELECT VERSION(), CURRENT_DATE;
mysql> SELECT SIN(PI()/4), (4+1)*5;

MySQL客户端还提供了一些简写命令,这些简写命令只能出现在命令行的中间或末尾,具体如下。

mysql> help
                    List of all MySQL commands:
                    Note that all text commands must be first on line and end with ';'
ego        (\G) Send command to MySQL server, display result vertically.
system  (\!) Execute a system shell command.
tee         (\T) Set outfile [to_outfile]. Append everything into given outfile.
pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
edit        (\e) Edit command with $EDITOR.

下面来看一个示例。

mysql> pager cat > /tmp/log.txt
mysql> pager less -n -i -S -F

命令less的“-S”选项可以让你用方向键进行浏览,这对于长行的显示很有用。其中的参数说明分别如下。
-i:搜索时忽略大小写,但如果搜索的字符串中包含大写字母,那么这个选项不起作用。
-n:禁用行号功能,加速浏览大文件。
-F:如果屏幕可以显示的话,就直接退出。
使用以下命令,不仅可以将结果输出到屏幕上,还可以通过tee命令记录到文件中。

mysql> pager cat | tee /dr1/tmp/res.txt \
        | tee /dr2/tmp/res2.txt | less -n -i -S

使用如下命令,会列出所有可见的数据库。
mysql> SHOW DATABASES;
切换到test数据库时的命令如下。
mysql> USE test #如果有许多表,使用use db_name可能会比较慢,可以使用mysql –A进行加速
显示当前数据库的命令如下。
mysql> SELECT DATABASE();
创建数据库menagerie的命令如下。
MySQL > CREATE DATABASE menagerie;
删除数据库的命令如下。
mysql> DROP DATABASE IF EXISTS menagerie;
创建用户,并赋予其对menagerie库的权限的命令如下。
mysql> GRANT select,insert,update,delete ON menagerie.* TO 'your_name' @ 'your_client_host';
列出当前数据库下所有表的命令如下。
mysql> SHOW TABLES;
查看表结构的命令如下。
mysql>DESC pet;
mysql>SHOW FULL TABLES;
#多了第二列,用于显示Table_type
输入表名、列名等信息时,可以按TAB键补全,“-A”可关闭这个功能。
创建表的命令如下。

CREATE TABLE shop (
         article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
         dealer  CHAR(20)                                DEFAULT ''     NOT NULL,
         price   DOUBLE(16,2)                         DEFAULT '0.00' NOT NULL,
         PRIMARY KEY(article, dealer));

插入初始化数据的命令如下。

INSERT INTO shop VALUES
         (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
         (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);

查询数据的命令如下。
SELECT * FROM shop;
执行SQL文件的3种方式如下。

mysql -e "source batch-file"
mysql -h host -u user -p < batch-file

mysql> source /path/filename;

如果有长的屏幕输出,可以转储到文本或使用more进行查看。

mysql < batch-file | more
mysql < batch-file > mysql.out

表2-1针对mysql客户端的提示给出了解释。
表2-1 mysql客户端的提示说明

如果输入错了,需要清除当前的输入字符,可输入\c来实现。在如下示例中,少输入了单引号,我们使用\c清除所有的输入字符,回到提示符下。

mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
          '> '\c                                                             #注意在\c前还需要输入单引号'
mysql>

修改用户密码的命令如下。
mysql> SET PASSWORD FOR user_name@ip_address = password('1234');
显示当前连接、客户端、数据库字符集等信息的命令如下。
mysql> STATUS
显示MySQL支持的排序方式的命令如下。
mysql> SHOW COLLATION;
下面的命令将展示前一条命令的警告信息。
mysql> SHOW WARNINGS;
展示可用引擎的命令如下。
mysql> SHOW ENGINES;
还可以使用下面的语句代替SHOW ENGINES,并检查你感兴趣的存储引擎的变量值。

mysql> SHOW VARIABLES LIKE 'have%';
+---------------------------+-----------+
| Variable_name         | Value    |
+---------------------------+-----------+
| have_archive            | YES       |
| have_bdb                  | NO         |

SHOW命令的精确输出将随所使用的MySQL版本(和启用的特性)的不同而有变化。第2列的值表示各特性支持的级别,如表2-2所示。

如下命令可得到表的引擎(engine)。

mysql> USE information_schema;
mysql> SELECT table_name,engine FROM information_schema.tables WHERE table_schema = 'Your Database Name';

如下命令可查看当前连接和服务器的事务隔离模式。
SELECT @@tx_isolation,@@global.tx_isolation;
如下命令可查询是否自动提交事务,
SELECT @@autocommit;
如下命令可用于查询sql_mode。

SELECT ROUTINE_SCHEMA, ROUTINE_NAME, SQL_MODE FROM INFORMATION_SCHEMA.ROUTINES;
SELECT EVENT_OBJECT_SCHEMA, EVENT_OBJECT_TABLE, TRIGGER_NAME, SQL_MODE FROM INFORMATION_SCHEMA.TRIGGERS;

也可以通过设置OS环境变量的方式来改变连接的socket文件和TCP端口,命令如下。

shell> MYSQL_UNIX_PORT=/tmp/mysqld-new.sock
shell> MYSQL_TCP_PORT=3307
shell> export MYSQL_UNIX_PORT MYSQL_TCP_PORT

2.5.2 使用mysqladmin命令
在使用mysqladmin命令时,如下命令可显示参数设置。
mysqladmin -p variables |grep log_queries_not_using_indexes
设置root密码的命令如下。
myaqladmin -u root -p password "new password"
如下命令可显示状态变量,一般使用-r参数显示两次命令执行期间的增量值。
mysqladmin extended-status -uroot -r -i 10
其中,“extended-status”显示的是服务器状态变量和值。
-r:显示当前状态变量和上一次运行命令状态变量的差值。
-i:重复执行命令的间隔时间。
如下命令可显示当前连接的线程。
mysqladmin -uroot -pnemo1234admin processlist
如下命令可用于关闭数据库。
mysqladmin shutdown
2.5.3 使用mysqldump命令
在使用mysqldump命令时,如下命令可用于备份数据库。
mysqldump -uroot --hex-blob db_name > db_name.sql
增加压缩功能的命令如下。
mysqldump -uroot --hex-blob db_name |gzip > db_name.sql.gz
也可以使用如下mysql命令恢复数据。
mysql < db_name.sql

时间: 2024-10-03 07:19:46

《MySQL DBA修炼之道》——2.5 常用命令的相关文章

《MySQL DBA修炼之道》——3.5 索引

3.5 索引 3.5.1 索引介绍 数据库索引,是数据库管理系统中一个排序的数据结构,用于协助快速查询.更新数据库表中的数据.它类似于书本上的索引,通过索引可以更便捷地找到书里面的内容而不需要查阅整本书.对于海量数据的检索,索引往往是最有效的. 目前MySQL主要支持的几种索引有:B树索引(B-tree).散列索引(hash).空间索引(R-tree)和全文索引(full-text).如果没有特别指明,本书指的就是B-Tree索引.由于索引是在存储引擎层实现的,所以不同的存储引擎的索引实现会有一

《MySQL DBA修炼之道》——导读

前言 为什么要写本书 本书主要讲述MySQL DBA的必备技能,包括MySQL的安装部署.开发.测试.监控和运维,此外,读者还可从中学习到系统架构的一些知识. 我从业10多年,先是在传统行业做开发工程师.系统管理员.Oracle DBA,2008年因为机缘巧合投身互联网,开始从事MySQL运维工作.相对于成熟的商业数据库,MySQL缺乏高质量的技术文档和图书,我在接触MySQL的过程中,也感觉市面上的相关图书还存在一些不足,难以系统化地学习MySQL. 从一名Oracle DBA转型为一名MyS

《MySQL DBA修炼之道》——3.4 PHP开发

3.4 PHP开发 3.4.1 概述 一般的流行语言,如PHP.C.Perl.Java都对MySQL提供了完善支持,这其中PHP是最常用的使用MySQL数据库的语言,互联网普遍使用的是LAMP/LNMP架构,这里的P可以理解为就是PHP,可以说PHP的应用范围相当广泛,尤其是在Web程序的开发上,比如,我们熟知的Facebook,就是PHP.MySQL的重度使用者.作为互联网开发者,我们有必要熟悉MySQL在各种语言环境下的使用,尤其是PHP. 以下简要介绍PHP与MySQL开发,PHP(全称为

《MySQL DBA修炼之道》——第3章 开发基础 3.1相关基础概念

第二部分 开发篇 本篇首先讲述数据库开发的一些基础知识,如关系数据模型.常用的SQL语法.范式.索引.事务等,然后介绍编程开发将会涉及的数据库的一些技巧,最后结合生产实际,提供一份开发规范供大家参考. 第3章开发基础 本章将为读者介绍 MySQL 数据库相关的开发基础,首先,介绍一些基础概念,然后讲解关系数据模型和 SQL 基础.由于在互联网开发者中,PHP 开发者占据了相当大的比重,因此这里也将简要介绍下 PHP 开发者应该掌握的一些基础知识和开发注意事项.最后,要接触的是 MySQL 数据库

《MySQL DBA修炼之道》——1.5 长连接、短连接、连接池

1.5 长连接.短连接.连接池 当数据库服务器和客户端位于不同的主机时,就需要建立网络连接来进行通信.客户端必须使用数据库连接来发送命令和接收应答.数据.通过提供给客户端数据库的驱动指定连接字符串后,客户端就可以和数据库建立连接了.可以查阅程序语言手册来获知通过何种方式使用短连接.长连接.1.5.1 短连接 短连接是指程序和数据库通信时需要建立连接,执行操作后,连接关闭.短连接简单来说就是每一次操作数据库,都要打开和关闭数据库连接,基本步骤是:连接→数据传 输→关闭连接. 在慢速网络下使用短连接

《MySQL DBA修炼之道》——3.7 字符集和国际化支持

3.7 字符集和国际化支持 3.7.1 什么是字符集 字符集(character set)是一套符号和编码.校对规则(collation)是在字符集内用于比较字符的一套规则,即字符集的排序规则. 假设我们有一个字母表使用了4个字母:'A'.'B'.'a'.'b'.现在为每个字母赋予一个数值:'A'=0,'B'= 1,'a'= 2,'b'= 3,字母'A'是一个符号,数字0是'A'的编码,那么这4个字母和它们的编码组合在一起就是一个字符集.我们可以认为字符集是字符的二进制的编码方式,即二进制编码到

《MySQL DBA修炼之道》——3.2 数据模型

3.2 数据模型 3.2.1 关系数据模型介绍     目前数据库领域使用最广泛的就是关系数据模型,业内主流的数据库产品都是建立在关系数据模型之上的,如Oracle.MS SQLServer.MySQL.PostgreSQL.DB2.关系型数据库系统的技术发展了几十年,已经相当成熟,在数据库中也得到了高效的实现.关系型数据库管理系统的标准语言--结构化查询语言(SQL),是一种高级的非过程化编程语言,它已经成为事实上的工业标准而被广泛使用,而且也变成了一项必须被程序员掌握的标准技能.     下

《MySQL DBA修炼之道》——3.3 SQL基础

3.3 SQL基础 SQL是一种高级查询语言,它是声明式的,也就是说,只需要描述希望怎么获取数据,而不用考虑具体的算法实现.3.3.1 变量 MySQL里的变量可分为用户变量和系统变量.1.用户变量 用户变量与连接有关.也就是说,一个客户端定义的变量不能被其他客户端看到或使用.当客户端退出时,该客户端连接的所有变量将自动释放.这点不同于在函数或存储过程中通过DECLARE语句声明的局部变量,局部变量的生存周期在它被声明的"BEGIN-END"块内.对于用户变量的值,可以先保存在用户变量

《MySQL DBA修炼之道》——1.6 存储引擎简介

1.6 存储引擎简介 运行如下命令可查看表的引擎. mysql> show table status like 'sys_accont' \G 1. row ** Name: sys_accont Engine: InnoDB 其中,Engine栏位表示使用的是何种引擎. MySQL不同于其他数据库,它的存储引擎是"可插拔"的,意思就是MySQL Server的核心基础代码和存储引擎是分离的,你可以使用最适合应用的引擎,也就是说MySQL支持不同的表使用不同的引擎.MySQL拥有