烂泥:mysql帮助命令使用说明

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
日志服务 SLS,月写入数据量 50GB 1个月
简介:

在安装、管理和使用mysql过程中,你是不是需要记忆很多的mysql命令。而且对于新手来说,很不多的命令不知道该如何应用,对于老手来说很多命令时间长了忘记具体的用法。

其实mysql的帮助信息,已经给我们提供很全面的使用方法。

下面我就大致介绍下,如何使用mysql的帮助信息。

说明:在此我只是为学习mysql提供一个思路,本篇文章不会过多讲解每一个命令的使用方法。

一、mysql数据库初始化

在安装mysql进行初始化时,我们要使用mysql_install_db脚本进行初始化mysql数据库,此时我们就可通过帮助命令实现。如下:

/usr/local/mysql/scripts/mysql_install_db --help

clip_image001

图中的1、2、3表示初始化时mysql安装的bin路径、mysql数据目录,以及运行mysql所使用的用户。

现在我们进行初始化数据库,如下:

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql

clip_image002

通过上图,我们也可以看到mysql数据库已经初始化成功。同时系统也给出如何启动mysql,图中5标记出来。图中6标记出来的是如何修改root用户的密码。

二、 mysql数据库管理

2.1 启动mysql使用mysqld_safe

mysql数据库安装完毕后,我们就要启动mysql。启动mysql时,我们可以通过mysql提供的脚本,也可以通过mysqld_safe命令来启动。

其实mysql的脚本也是通过该命令来实现的,如下:

cat /etc/init.d/mysqld

clip_image003

有关mysqld_safe命令的使用,我们也可以查看帮助文档。如下:

/usr/local/mysql/bin/mysqld_safe --help

clip_image004

我们需要关注defaults-file这个参数,这个参数加载的就是mysql的配置文件my.cnf。mysql的多实例部署就是根据加载不同的my.cnf文件来达到目的的。

现在我们来启动mysql,如下:

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

clip_image005

注意有一个参数在帮助文档中我们是查不到的,就是跳过密码验证启动mysql,这个参数为skip-grant-table。使用该参数启动mysql,如下:

/usr/local/mysql/bin/mysqld_safe --skip-grant-table &

clip_image006

2.2 修改root用户密码使用mysqladmin

刚刚新安装的mysql数据库,root用户密码是空的。我们可以通过mysqladmin来查看如何修改root用户密码,如下:

/usr/local/mysql/bin/mysqladmin --help

clip_image007

修改root密码,如下:

/usr/local/mysql/bin/mysqladmin -uroot password 123456

clip_image008

第一次修改root密码,因为此时root密码为空,我们可以这样操作。如果root已经有密码了,我们就要使用以下命令进行修改,如下:

/usr/local/mysql/bin/mysqladmin -uroot -p123456 password 456789

使用新密码登录mysql,如下:

/usr/local/mysql/bin/mysql -uroot –p456789

clip_image009

其中还要注意-S参数,这个在mysql多实例时会使用到,详见《烂泥:mysql5.5多实例部署》。

2.3 备份mysql使用mysqldump

在备份mysql数据库时,我们一般使用mysqldunmp命令,有关mysqldump命令的使用方法查看帮助文档。如下:

/usr/local/mysql/bin/mysqldump --help

clip_image010

clip_image011

由于mysqldump的参数比较多,所以我们不一一介绍。但是有几个参数需要重点介绍下。

-A表示备份整个数据库

-F表示在执行导出之前将会刷新MySQL服务器的binlog

-e表示使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)

--single-transaction 这个是当mysql是innodb引擎时,使用mysqldump备份建议要加上。

-S这个是mysql多实例使用的,详见《烂泥:mysql5.5多实例部署》。

mysqldump一个备份实例,如下:

mysqldump -uilanni1 -p'ilanni1' ilanni>ilanni.sql

如果需要导入备份的sql文件的话,使用mysql命令。如下:

mysql -uilanni1 -p'ilanni1' ilanni<ilanni.sql

2.4 登录mysql使用mysql

登录或者连接mysql我们可以使用mysql命令,有关mysql命令的使用,查看帮助文档。如下:

/usr/local/mysql/bin/mysql --help

clip_image012

在此我主要介绍下-e和-S这个参数。-e参数在mysql进行主从配置查看master库的binlog文件名及pos位置节点时使用。-S参数mysql多实例使用,详见《烂泥:mysql5.5多实例部署》。如下:

mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show master status"

clip_image013

注意以上命令都可以通过man进行查询其使用方法。比如mysql命令:

man mysql

clip_image014

三、mysql数据库使用

3.1 查看mysql数据库版本

登录mysql数据库后,我们可以看到系统的提示命令,如下:

/usr/local/mysql/bin/mysql -uroot -p456789

clip_image015

通过上述截图,我们可以看到目前mysql的版本是5.5.39。同时我们也注意到系统的提示:输入help可以查看帮助信息,\c可以清空输入。

3.2 查看help命令

查看help命令相关信息,如下:

help

clip_image016

通过上图我们可以看到help命令很简单的,在这我就不详细的介绍了。只介绍system命令,该参数可以在mysql命令中直接执行系统的相关命令。如下:

system ifconfig eth0

clip_image017

3.3 查看mysql帮助索引

如果你一个mysql的使用命令都不知道,也没有关系的。mysql给我提供了一个帮助索引。现在我们随便输入一个命令,看看mysql的提示如:

help eth0;

clip_image018

通过上图,我们可以看到。当我们输入一个不存在的命令时,系统会提示的。注意图中标记出来的***部分“help contents”。

我们通过help contents就可以查看到所有的mysql命令,这个就是mysql帮助索引。如下:

help contents;

clip_image019

注意图中标记出来的都是各个mysql总命令的总目录。比如Account Management是负责管理mysql用户有关的目录、Administration是mysql管理员管理mysql有关的目录。

我们所有的mysql命令,都是可以在这个索引下找的。

3.4 查看mysql如何创建用户

我们要创建一个新的数据库用户,但是我们又不知道使用什么命令进行创建,那我们就可以使用help contents查看所有的mysql命令目录,根据目录提示的信息我们猜想该命令应该在Account Management这个目录下。那我们就可以先查看该命令的帮助,如下:

help Account Management;

clip_image020

通过上图,我们可以看到创建用户的命令确实在该目录下,为create user命令。

有关create user命令的具体使用方法,我们可以在进一步通过help命令进行查看。如下:

help create user;

clip_image021

clip_image022

通过上图,我们可以很明显看到create user的具体使用方法,并且帮助信息中也给出相应的例子。

这样我们知道,如何使用create user命令创建数据用户了。

同理我们也可以查看如何删除一个用户,使用help drop user命令,如下:

help drop user;

clip_image023

3.5如何给用户授权

我们在创建完毕数据库用户后,就要给该用户授权。那么如何授权,该使用什么命令呢?

其实我们也可以在help Account Management命令中查看到,如下:

clip_image024

通过上图我们可以看到grant就是授权命令。

我们再来查看grant命令的使用方法,如下:

help grant;

clip_image025

clip_image026

上图就是grant的使用方法以及实例。同时系统也给出了如何查看用户的权限使用show grants和如何删除用户的权限使用revoke。

同理我们也可以删除一个用户权限,使用help revoke命令进行查看,如下:

help revoke;

clip_image027

在这有一点需要说明下,我们在给用户进行授权时,有时候不知道数据库对用户的权限都是什么,其实我们也是可以通过系统给出的数据库进行查询到的。该数据库为information_schema,如下:

use information_schema;

desc user_privileges;

select privilege_type from user_privileges;

clip_image028

表user_privileges的privilege_type字段存储的就是mysql数据库用户的所有权限。

除此之外,我们也可以通过Administration下的privileges查看所有权限,这个方法是最简单的。如下:

show privileges;

clip_image029

3.6 修改用户密码

修改数据库用户的密码,我们也可以在help Account Management下进行查看。如下:

help Account Management;

clip_image030

通过上图,我们可以知道修改用户密码的命令是set password。

下面我们来查看set password的具体用法,如下:

help set password;

clip_image031

clip_image032

通过上图,我们可以知道set password的使用方法以及使用实例。

3.7如何新建mysql数据库

如何新建一个mysql数据库,我们可以通过help contents查看应该是在data definition。如下:

help contents;

help data definition;

clip_image033

clip_image034

通过上图,我们可以看到创建数据库的命令是create database。现在我们来具体查看下有关create database命令的使用方法,如下:

help create database;

clip_image035

上图就是有关create database命令的详细使用方法。

同时还要注意我们在查看help data definition命令时,标记出来的部分,如下:

clip_image036

我们可以看到这里面还有创建表、创建表空间,删除数据库、删除表、删除表空间等命令,这个些命令我们就不一一介绍了。我们只需按照create database命令进行查询其使用方法即可。

3.8如何更新数据库的一个记录

现在我们要更新数据库中一张表的某一个字段的记录,我们知道可以使用update命令。但是update命令的具体用法,我们忘记了。

嘿嘿,没事,我们也可以通过help信息查看update命令的使用方法。

通过查看相关的信息,我们知道update命令在data manipulation目录下面。如下:

help data manipulation;

clip_image037

clip_image038

现在我们来查看update的使用方法,如下:

help update;

clip_image039

通过上图,我们就可以知道update命令的使用方法。

同时需要注意的是,我们在查看data manipulation时,也可以查看有关表的其他操作,查询命令select、删除命令delete、插入命令insert。

如下:

help data manipulation;

clip_image040

有关这些命令的使用方法,在此就不一一介绍了。我们只需按照update命令进行查询其使用方法即可。

3.9如何刷新mysql日志

现在我们来查看如何在命令行下,刷新mysql日志。这个我们可以在help contents下的Administration进行查看。如下:

help Administration;

clip_image041

通过上图,我们可以知道刷新mysql日志的命令为flush。现在查看该命令的具体使用方法。如下:

help flush;

clip_image042

通过上图,我们可以看到刷新日志使用flush logs命令即可。如下:

show master status\G;

flush logs;

clip_image043

同时该帮助信息中,还给出了如何重置日志,使用reset命令。如下:

help reset;

clip_image044

其实在help Administration中,我们也能看到reset命令。如下:

clip_image045

3.10 刷新权限

有时候我们在使用update命令进行更新后,会发现相关权限没有生效。这个时候我们就需要使用flush privileges命令进行刷新。

如下命令:

flush privileges;

其实flush帮助信息中,已经给我们进行说明了。如下:

clip_image046

3.11 查看show命令

通过3.9我们知道在Administration中有一个比较特别的命令show。

我们可以看到很多show相关的命令,如下:

help Administration;

clip_image047

clip_image048

这个show命令可以查看,我们在用户授权、创建数据库、创建表等执行时所使用的SQL语句。还可以查看数据库引擎、数据库状态、表状态等信息。

查看数据库ilanni创建时执行的sql语句,如下:

show create database ilanni;

clip_image049

注意我们在创建数据库ilanni时,是没有指定数据库使用的语言编码的。但是系统会在执行sql语句时,自动加上语言编码,并且使用默认的语言编码latin1。

如果你记不清楚如何加上语言编码的话,我们就可以创建一个数据库。然后通过show create database命令进行查看,系统是是如何加上语言编码的。然后我们再次删除该数据库,再次按照系统创建时的sql语言执行即可。

如下:

create database ilanni default character set utf8;

clip_image050

查看系统中的数据库,如下:

show databases;

clip_image051

查看master库binlog相关信息,如下:

show master status;

clip_image052

查看ilanni用户授权sql语句,如下:

show grants for ilanni;

clip_image053

查看mysql数据库的表,如下:

show tables;

clip_image054

3.12 查看主从相关的命令

我们在进行mysql主从配置时,会使用到很多很多的命令。这些命令,我们也可以通过帮助信息获得。如下:

help contents;

help transactions;

clip_image055

clip_image056

注意上图中,我们***标记出来的部分。主库授予从库的命令、锁表命令、主库master重置数据库、开启与关闭同步等命令。

我们在从库上执行主库的授权命令时,使用change master to命令。有关change master to命令的具体使用方法,查看帮助。如下:

help change master to;

clip_image057

clip_image058

通过上述两张图,我们就能很容易的知道change master to使用方法,并且帮助信息中也给出实际的例子。

我们在进行导出mysql数据库时,为了保持主从数据库的一致性,此时我们会通过lock命令进行锁表。有关lock命令的使用,我们也可以通过帮助信息进行查看,如下:

help lock;

clip_image059

重置主库master日志,如下:

help reset master;

clip_image060

reset master;

clip_image061

在从库slave上开启同步,如下:

help start slave;

clip_image062

start slave;

show slave status\G

clip_image063

在从库slave上关闭同步,如下:

help stop slave;

clip_image064

stop slave;

show slave status\G

clip_image065

有关mysql主从同步的具体配置方法详见《烂泥:mysql5.5主从同步复制配置》。


本文转自 烂泥行天下 51CTO博客,原文链接:http://blog.51cto.com/ilanni/1585796

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
23天前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
4月前
|
存储 关系型数据库 MySQL
初步了解MySQL数据库的基本命令
初步了解MySQL数据库的基本命令
49 0
|
2月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
3月前
|
存储 关系型数据库 MySQL
MySQL基础命令及使用示例
这些基础命令构成了与MySQL数据库交互的核心,理解并掌握它们对于进行有效的数据库操作至关重要。在实际使用中,建议结合实际案例和需求来练习这些命令,以加深理解和提高效率。
39 3
|
3月前
|
存储 关系型数据库 MySQL
MySQL基础命令及使用示例
这些基础命令构成了与MySQL数据库交互的核心,理解并掌握它们对于进行有效的数据库操作至关重要。在实际使用中,建议结合实际案例和需求来练习这些命令,以加深理解和提高效率。
82 4
|
2月前
|
关系型数据库 MySQL 数据库
Mysql 常用命令
Mysql 常用命令
27 0
|
5月前
|
存储 关系型数据库 MySQL
(十五)MySQL命令大全:以后再也不用担心忘记SQL该怎么写啦~
相信大家在编写SQL时一定有一个困扰,就是明明记得数据库中有个命令/函数,可以实现自己需要的功能,但偏偏不记得哪个命令该怎么写了,这时只能靠盲目的去百度,以此来寻找自己需要的命令。
181 28
|
5月前
|
SQL 关系型数据库 MySQL
MySQL删除表数据、清空表命令(truncate、drop、delete 区别)
MySQL删除表数据、清空表命令(truncate、drop、delete区别) 使用原则总结如下: 当你不需要该表时(删除数据和结构),用drop; 当你仍要保留该表、仅删除所有数据表内容时,用truncate; 当你要删除部分记录、且希望能回滚的话,用delete;
|
5月前
|
SQL 关系型数据库 MySQL
mysql性能调优:EXPLAIN命令21
【7月更文挑战第21天】掌握SQL性能调优:深入解析EXPLAIN命令的神奇用法!
65 1
|
5月前
|
存储 SQL Cloud Native
云原生数据仓库使用问题之运行MySQL命令发现中文内容变成了问号,该如何解决
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。