MySQL程序简介

Linux下MySQL程序的路径

普通程序:/usr/bin⽬录下

超级程序:/usr/sbin目录下

常见的MySQL程序

除了mysqld是服务器程序,其他的都是客户端程序

mysqld---MySQL服务器

mysqld也被称为MySQL服务器,是⼀个多线程程序,对数据⽬录进⾏访问管理(包含数据库和

表)。数据⽬录也是其他信息(如⽇志⽂件和状态⽂件)的默认存储位置。

mysql - MySQL 命令⾏客⼾端

mysql是⼀个简单的 SQL shell, 可以输⼊命令和执⾏SQL语句,查询结果以ASCII 表格式显⽰

mysql客户端指定选项的方式

1、在mysql后⾯的命令⾏中列出选项

2、依靠mysql的配置⽂件,在程序启动时按顺序读取不同配置⽂件中的选项

mysql客户端常用选项

TIPS:

1、如果选项的值中包含空格,那么值需要包含在双引号中

2、一般不显式使用 -D选项,而是直接写数据库名,也就是-D可以省略

命令行中使用选项的规则

1、选项以单破折号" - "或双破折号" -- "号开头, - 表⽰短格式, -- 表⽰⻓格式,例如:-?和 -

-help 都表⽰MySQL 程序显⽰他的帮助消息

2、对于带值的⻓格式选项,通常⽤ = 符号分隔选项名称和值。对于带值的短选项,值可以紧跟在选项之后,也可以⽤空格隔开,例如: --host=127.0.0.1 、 -h127.0.0.1 和 -h 127.0.0.1 是等价的。 但是对于密码选项的短格式-p,如果要指定密码,选项与值之间不能有空格,否则密码会被解析成省略的-D的值

3、在长选项中,破折号 ( - ) 和下划线 ( _ ) 在⼤多数情况下可以互换使⽤,但前导破折号不能转

为下划线,例如: --skip-grant-tables 和 --skip_grant_tables 是等价的。

4、在命令⾏中包含空格的选项值必须⽤引号引起来。例如, --execute (or -e ) 选项与mysql⼀

起使⽤时,表⽰将⼀个或多个 SQL 语句发送给服务器执⾏并显⽰结果

选项(配置)文件

多数MySQL 程序都可以从选项⽂件(配置⽂件)中读取启动选项。可以在选项⽂件中指定常⽤选

项,这样就不⽤在每次运⾏程序时都在命令⾏中输⼊它们

选项⽂件位置及加载顺序

MySQL 按以下表格中的顺序从上到下查找并读取选项⽂件,如果⽂件不存在则需要⼿动创建,后面的配置文件有相同选项会覆盖前面的选项

ubuntu系统上读取的选项⽂件

1、~ 表⽰⽤⼾的家⽬录

2、MYSQL_HOME 是设置的环境变量路径

3、DATADIR 代表MySQL数据⽬录

选项文件语法

1、选项⽂件中指定选项时,省略两个前导破折号,并且每⼀⾏表⽰⼀个选项,例如: --quick 和 --host=127.0.0.1 在选项⽂件中应表⽰成 quick 和 host=127.0.0.1

2、#comment , ;comment

注释⾏以 # 或 ; 开,注释可以从⼀⾏的中间开始

3、 [ group ]

group\]可以设置一个**配置组**,给对应的应用程序设置选项。例如, \[mysqld\] 和 \[mysql\] 组分别适⽤于mysqld服务端程序和mysql客⼾端程序 ![](https://i-blog.csdnimg.cn/direct/a625da3c6c2b4988b30ee6309aad1cab.png) 4、opt_name 相当于命令⾏上的选项名 5、opt_name = value 选项名对应的值,可以使⽤转义序列 \\b , \\t , \\n , \\r , \\\\ 和 \\s 来表⽰退格符、制表 符、换⾏符、回⻋符、反斜杠和空格字符 6、\[client

MySQL发⾏版中所有客⼾端程序都会读取并应⽤这个组下的选项,在这个组下可以指定适⽤于所有客⼾端程序的通⽤选项

7、可以通过 [客⼾端程序名] 的形式为不同的客⼾端程序设置配置组,例如 [mysql] ,当运⾏mysql程序时会读取并应⽤该组下的配置,如果选项名与 [client] 重复, [client] 中的选项将会被覆盖

8、在选项⽂件中使⽤ !includedir 指令来搜索指定⽬录中的其他选项⽂件.cnf,例如: !include /home/mydir ,但不保证⽬录中选项⽂件的读取顺序

9、在选项⽂件中使⽤ !include 指令来包含其他选项⽂件,例如: !include /home/mydir/myopt.cnf

查看mysql应用程序可用选项

使用--help,简写-?来查看应用程序可用选项

下面还有很多,不一一截图了

辨析--defaults-file 选项和 --defaults-extra-file选项

在mysql -?显示的选项中,我们可以看到

使用--defaults-file 选项的话,就不会再去按顺序读取配置文件了,而是只读取--defaults-file中设置的选项

使用--defaults-extra-file 选项的话,相当于就是多了一个配置文件的选项,如下

按从上往下的顺序、覆盖已有选项的形式来读取配置

MySQL客户端命令行

使⽤mysql客⼾端程序连接到数据库服务器之后,可以发送SQL语句到服务器执⾏,并以 ";"(分

号)、\g 或 \G结束

TIPS:

  1. ; 与 \g 结束表⽰以表格形式展⽰结果

  2. \G 结束表⽰以⾏形式展⽰结果

  1. 如果当前已经输⼊了⼀部分SQL 语句想重新输⼊可以输⼊ctrl+C中断当前输⼊

--help选项和help命令

1、在bash命令行中,我们可以在mysql程序中加入选项--help或-?,来获得mysql客户端程序的选项的帮助信息。

2、在mysql客户端命令行中可以使用help或\h命令来获得各种命令的信息

案例:

?、\?--------help、\h

delimiter、\d

exit、\q ------ quit、\q

prompt 修改命令行提示符

system、\! 使用系统命令

还有很常用的\! clear清屏

3、使⽤help contents命令可以查看关于MySQL数据库使⽤的具体帮助

mysql客户端命令行执行.sql文件sql语句----source命令使用

dump.sql的内容

执行dump.sql里的sql语句

得到新数据库

利用mysql客户端程序执行.sql文件中的sql语句

bash 复制代码
mysql db_name < text_file # 在指定的数据库下执⾏SQL,前提是数据库必须提前建⽴好
mysql < text_file # 不指定数据库.sql中必须有USE [database_name],来指定要操作的数据库

其他客户端程序

mysqlcheck

mysqlcheck客⼾端程序可以对表进⾏:分析、检查、优化或修复操作

1、分析的作⽤是查看表的关键字分布,能够让 sql ⽣成正确的执⾏计划(⽀持 InnoDB,MyISAM,NDB)

2、 检查的作⽤是检查表的完整性以及数据库表和索引是否损坏(⽀持 InnoDB,MyISAM,

ARCHIVE,CSV)

3、优化的作⽤是回收空间、减少碎⽚、提⾼I/O(⽀持 InnoDB,MyISAM,ARCHIVE)

4、 修复的作⽤是修复可能已经损坏的表(⽀持 MyISAM,ARCHIVE,CSV)

注意事项

  1. 当使⽤mysqlcheck⼯具时,MySQL服务器必须在运⾏状态

  2. 执⾏过程中相应的表将会被锁定,所以其他的操作将会被挂起

  3. 并不是所有的存储引擎都⽀持以上四种操作,如果遇到不⽀持的引擎会报出相应的错误

  4. 执⾏表修复操作之前对表进⾏备份,因为某些情况下可能会导致数据丢失。

使⽤⽅法

⼀般通过以下三种⽅法使⽤mysqlcheck

1 、mysqlcheck [options] db_name [tbl_name ...]

2、mysqlcheck [options] --databases db_name ...

3、mysqlcheck [options] --all-databases

常用选项

mysqldump--数据库备份程序

mysqldump客⼾端程序可以执⾏逻辑备份并⽣成⼀组SQL语句,其中包含原始数据库和表的定义

以及表中的数据,以便实现对数据库的简单备份或复制

注意事项

  1. 转储表时必须要有 SELECT 权限

  2. 转储视图时必须要有 SHOW VIEW 权限

  3. 转储触发器时必须要有 TRIGGER 权限

  4. 如果没有使⽤ --single-transaction 选项时必须要有 LOCK TABLES 权限

  5. 如果没有使⽤ --no-tablespaces 选项时必须要有 PROCESS 权限

  6. 重新导⼊转储⽂件时,也需要有相应的权限

  7. 由于mysqldump是逐⾏转储数据,所以不适⽤于⼤数据量的转储与导⼊

使⽤⽅法

mysqldump的⽅法通常有以下使⽤,可以转储⼀个或多个表或数据库,如下所⽰:

bash 复制代码
mysqldump [options]  db_name [tbl_name ...] > .sql文件 
mysqldump [options]  --databases db_name ... > .sql文件 
mysqldump [options]  --all-databases > .sql文件 

常⽤选项

备份数据库test_db

mysqladmin - MySQL 服务器管理程序

作⽤:

mysqladmin 是⼀个执⾏管理操作的客⼾端。可以⽤来检查服务器的配置和状态,以及创建和删除数据库等。

使⽤⽅法:

sql 复制代码
mysqladmin [options] command [command-arg] [command [command-arg]] ...

mysqladmin支持的命令:

1. version

显⽰来⾃服务器的版本信息。

  1. create db_name

创建⼀个数据库名为 db_name 。

  1. drop db_name

删除名为 db_name 的数据库及其所有表。

  1. extended-status

显⽰服务器状态变量的值。

  1. flush-hosts

刷新主机缓存中的所有信息。

  1. flush-logs [log_type ...]

刷新所有⽇志。 log_type 中可以提供以下⼀种或多种⽇志类型binary, engine, error, general,

relay, slow,多个类型之间⽤空格分隔。

  1. flush-privileges

重新加载授权表

  1. flush-status

清除状态变量。

  1. flush-tables

刷新所有表。

  1. flush-threads

刷新线程缓存。

  1. password new_password

设置新密码

12、ping

检查服务器是否可⽤

  1. processlist

显⽰活动服务器线程的列表

  1. kill id , id ,...

终⽌服务器线程。如果给出了多个线程ID值,则列表中不能有空格。

杀死连接后断线重连

  1. reload

重新加载授权表。

  1. refresh

刷新所有表。

  1. shutdown

停⽌服务器。

  1. start-replica

在副本服务器上开始复制。MySQL 8.0.26及以后的版本使⽤此命令。

  1. start-slave

在副本服务器上开始复制。MySQL 8.0.26 之前使⽤此命令。

  1. status

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

  1. stop-replica

停⽌副本服务器上的复制。MySQL 8.0.26及以后的版本使⽤此命令。

  1. stop-slave

停⽌副本服务器上的复制。MySQL 8.0.26 之前使⽤此命令。

  1. variables

显⽰服务器系统变量及其值

mysqlshow - 显⽰数据库、表和列信息

作⽤:

mysqlshow 客⼾端可⽤于快速查看存在哪些数据库、数据库中的表以及表中的列或索引**。**

使⽤⽅法:

mysqlshow 可以使⽤以下语法:

sql 复制代码
mysqlshow [options] [db_name [tbl_name [col_name]]]

案例:

数据库、表、列

查看数据库

查看表

查看列

mysqldumpslow - 总结慢查询⽇志⽂件

作⽤:

在平时使⽤MySQL数据库时,经常进⾏查询操作,有些查询语句执⾏的时间⾮常⻓,当执⾏时间超过设定的阈值时,我们称这个查询为慢查询,慢查询的相关信息通常需要⽤⽇志记录下来称为慢查询⽇志,mysqldumpslow可以解析慢查询⽇志⽂件并汇总其内容

注意事项:

通常情况下,mysqldumpslow 会将相似的查询分组,并显⽰摘要输出,⼀般会把数字和字符串⽤ N和 "S" 代替,要想显⽰真实的值可以使⽤ -a 选项。

使⽤⽅法:

mysqldumpslow 可以使⽤以下语法

sql 复制代码
 mysqldumpslow [options] [log_file ...]

常⽤选项:

mysqlbinlog - 处理⼆进制⽇志⽂件

什么是⼆进制⽇志⽂件:

我们平时对数据库的修改,包括对数据的增删改,都会被描述成⼀个"事件",每个"事件"都会以⼆进制的形式记录在⼀个⽂件⾥,这个⽂件就是服务器的⼆进制⽇志⽂件,称为Binary Log或binlog

作⽤:

mysqlbinlog 能够以**⽂本格式**显⽰⼆进制⽇志⽂件中的内容

注意事项

binlog的默认保存路径是数据⽬录: /var/lib/mysql

使⽤⽅法:

mysqlbinlog 可以使⽤以下语法

bash 复制代码
mysqlbinlog [options] log_file ...

常⽤选项:

mysqlbinlog 有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 [mysqlbinlog]

和 [client] 组进⾏指定

mysqlslap--负载仿真客户端

作⽤:

mysqlslap是⼀个诊断程序,⽤于模拟MySQL服务器的客⼾端负载,并报告每个阶段的时间,就好⽐多个客⼾端正在访问服务器⼀样

使⽤⽅法:

mysqlslap可以使⽤以下语法

bash 复制代码
mysqlslap [options]

注意事项:

  1. 可以通过 --create 或 --query 选项,指定包含SQL语句的字符串或包含SQL语句的⽂件

  2. ​如果直接传入 SQL 字符串​ ​(如 --create="CREATE TABLE t1; INSERT..."),默认分隔符是 ​;​(分号)。​

3、​如果传入的是文件​ ​(如 --create=file.sql),默认分隔符是 ​​换行符 (\n)​ ​,即 ​​每行一条 SQL 语句​ ​。如果要把⼀条语句分为多⾏书写,可以使⽤ --delimiter 选项指定不同的分隔符

  1. 不能在⽂件中包含注释,因为mysqlslap不能解析注释。

  2. mysqlslap运⾏分为三个阶段:

a. 创建测试数据阶段:创建⽤于测试的库、表或数据,这个阶段使⽤单个客⼾端连接

b. 运⾏负载测试阶段,这个阶段可以使⽤许多客⼾端连接

c. 清理阶段:执⾏删除表,断开连接等操作,这个阶段使⽤单个客⼾端连接

案例:

让mysqlslap⽤包含两个 INT 列和三个 VARCHAR 列的表⾃动构建查询的SQL语句。使⽤5个客⼾端,每个客⼾端查询20次

常⽤选项:

相关推荐
一 乐2 小时前
社区互助养老系统|基于java和小程序的社区互助养老系统小程序设计与实现(源码+数据库+文档)
java·数据库·spring boot·小程序·论文·毕设·社区互助养老系统小程序
Java水解3 小时前
MySQL 表约束实战指南:从概念到落地,守护数据完整性
后端·mysql
tingting01194 小时前
mysql 8.4.2 备份脚本
android·数据库·mysql
铜峰叠翠4 小时前
Redis安装配置
数据库·redis·缓存
William_cl5 小时前
【连载1】《假装自己是个小白 —— 重新认识 MySQL》实践指南
android·mysql·oracle
Lbwnb丶5 小时前
JUnit 4 + Spring Boot 测试依赖
数据库·spring boot·junit
大筒木老辈子5 小时前
MySQL笔记---表的约束
数据库·笔记·mysql
涤生大数据5 小时前
从MR迁移到Spark3:数据倾斜与膨胀问题的实战优化
数据库·数据仓库·spark·mapreduce·大数据开发·数据倾斜·spark3
加洛斯6 小时前
MySQL 函数篇(3):常用的时间日期函数
数据库·mysql