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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 本节书摘来自华章出版社《MySQL DBA修炼之道》一书中的第2章,第2.5节,作者:陈晓勇,更多章节内容可以访问云栖社区“华章计算机”公众号查看。常用命令 本节先介绍几个常用命令,如mysql、mysqladmin、mysqldump的简单用法。

本节书摘来自华章出版社《MySQL DBA修炼之道》一书中的第2章,第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客户端的提示说明


319f5f8b45cd731d0bbeb21641f2a34417c7eda6

如果输入错了,需要清除当前的输入字符,可输入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所示。


27dc23801edf34585d84ef086d03f630ed0a83a4

如下命令可得到表的引擎(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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
19天前
|
监控 关系型数据库 MySQL
Linux MySQL相关启动命令
【4月更文挑战第22天】
|
3月前
|
存储 关系型数据库 MySQL
【MySQL进阶之路丨第十三篇】一文带你精通MySQL之ALTER命令及序列使用
【MySQL进阶之路丨第十三篇】一文带你精通MySQL之ALTER命令及序列使用
42 0
|
4月前
|
关系型数据库 MySQL 数据库
Python tk dos命令备份mysql数据库
Python tk dos命令备份mysql数据库
29 0
|
4月前
|
机器学习/深度学习 SQL 关系型数据库
MySql基础命令(MySql学习——四)
MySql基础命令(MySql学习——四)
20 1
|
2月前
|
SQL 关系型数据库 MySQL
|
4月前
|
SQL 关系型数据库 MySQL
Mycat【Mycat部署安装(核心配置及目录结构、安装以及管理命令详解)Mycat高级特性(读写分离概述、搭建读写分离、MySQL双主双从原理)】(三)-全面详解(学习总结---从入门到深化)
Mycat【Mycat部署安装(核心配置及目录结构、安装以及管理命令详解)Mycat高级特性(读写分离概述、搭建读写分离、MySQL双主双从原理)】(三)-全面详解(学习总结---从入门到深化)
91 0
|
1月前
|
SQL 关系型数据库 MySQL
MySQL中主从复制的原理和配置命令
要原因包括提高性能、实现高可用性、数据备份和灾难恢复。了解两大线程( I/O 和 SQL)I/O线程:目的:I/O线程主要负责与MySQL服务器之外的其他MySQL服务器进行通信,以便复制(replication)数据。 功能: 当一个MySQL服务器作为主服务器(master)时,I/O线程会将变更日志(binary log)中的事件传输给从服务器(slave)。从服务器上的I/O线程负责接收主服务器的二进制日志,并将这些事件写入本地的中继日志(relay log)。 配置: 在MySQL配置文件中,你可以通过配置参数如和来启用二进制日志和指定服务器ID。log-bin server
MySQL中主从复制的原理和配置命令
|
3天前
|
SQL 关系型数据库 MySQL
mysql命令语句大全
mysql命令语句大全
7 0
|
5天前
|
关系型数据库 MySQL 数据库
MySQL集群 双主架构(配置命令)
MySQL集群 双主架构(配置命令)
|
5天前
|
Oracle 关系型数据库 MySQL
mysql相关命令
使用`mysql -u [username] -p`登录MySQL,例如`mysql -u root -p`,随后输入密码。连接成功后,显示MySQL欢迎信息、版本号和版权详情。要查看所有数据库,运行`SHOW DATABASES;`,列出包括`catbase`, `information_schema`, `mysql`, `performance_schema`, `publiccms`和`sys`在内的8个数据库。