当前位置: 首页 > news >正文

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客⼾端程序


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 结束表⽰以⾏形式展⽰结果


3. 如果当前已经输⼊了⼀部分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语句

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的⽅法通常有以下使⽤,可以转储⼀个或多个表或数据库,如下所⽰:

mysqldump [options]  db_name [tbl_name ...] > .sql文件 
mysqldump [options]  --databases db_name ... > .sql文件 
mysqldump [options]  --all-databases > .sql文件 

常⽤选项

备份数据库test_db

mysqladmin - MySQL 服务器管理程序

作⽤:

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

使⽤⽅法:

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

mysqladmin支持的命令:

1. version

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

2. create db_name
创建⼀个数据库名为 db_name 。


3. drop db_name
删除名为 db_name 的数据库及其所有表。
4. extended-status

显⽰服务器状态变量的值。
5. flush-hosts
刷新主机缓存中的所有信息。
6. flush-logs [log_type ...]
刷新所有⽇志。 log_type 中可以提供以下⼀种或多种⽇志类型binary, engine, error, general,
relay, slow,多个类型之间⽤空格分隔。
7. flush-privileges
重新加载授权表
8. flush-status
清除状态变量。
9. flush-tables
刷新所有表。
10. flush-threads
刷新线程缓存。
11. password new_password
设置新密码

12、ping

检查服务器是否可⽤


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

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

杀死连接后断线重连


15. reload
重新加载授权表。
16. refresh
刷新所有表。
17. shutdown
停⽌服务器。
18. start-replica
在副本服务器上开始复制。MySQL 8.0.26及以后的版本使⽤此命令。
19. start-slave
在副本服务器上开始复制。MySQL 8.0.26 之前使⽤此命令。
20. status
显⽰简短的服务器状态消息。
21. stop-replica
停⽌副本服务器上的复制。MySQL 8.0.26及以后的版本使⽤此命令。
22. stop-slave
停⽌副本服务器上的复制。MySQL 8.0.26 之前使⽤此命令。
23. variables
显⽰服务器系统变量及其值

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

作⽤:

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

使⽤⽅法:
mysqlshow 可以使⽤以下语法:

mysqlshow [options] [db_name [tbl_name [col_name]]]

案例:

数据库、表、列

查看数据库

查看表

查看列

mysqldumpslow - 总结慢查询⽇志⽂件

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

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

使⽤⽅法:
mysqldumpslow 可以使⽤以下语法

 mysqldumpslow [options] [log_file ...]

常⽤选项:

mysqlbinlog - 处理⼆进制⽇志⽂件

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

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

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

使⽤⽅法:

mysqlbinlog 可以使⽤以下语法

mysqlbinlog [options] log_file ...

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

mysqlslap--负载仿真客户端

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

使⽤⽅法:
mysqlslap可以使⽤以下语法

mysqlslap [options]

注意事项:

1. 可以通过 --create 或 --query 选项,指定包含SQL语句的字符串或包含SQL语句的⽂件
2. ​​如果直接传入 SQL 字符串​​(如 --create="CREATE TABLE t1; INSERT..."),默认分隔符是 ​;​(分号)。​

3、​如果传入的是文件​​(如 --create=file.sql),默认分隔符是 ​​换行符 (\n)​​,即 ​​每行一条 SQL 语句​​。如果要把⼀条语句分为多⾏书写,可以使⽤ --delimiter 选项指定不同的分隔符
4. 不能在⽂件中包含注释,因为mysqlslap不能解析注释。
5. mysqlslap运⾏分为三个阶段:
a. 创建测试数据阶段:创建⽤于测试的库、表或数据,这个阶段使⽤单个客⼾端连接
b. 运⾏负载测试阶段,这个阶段可以使⽤许多客⼾端连接
c. 清理阶段:执⾏删除表,断开连接等操作,这个阶段使⽤单个客⼾端连接

案例:

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

常⽤选项:

http://www.dtcms.com/a/419944.html

相关文章:

  • 创新的赣州网站建设网站建设与维护是什么
  • 湖北省市政工程建设网站网站开发框架的工具
  • sdio的切换I/O电压的详细流程
  • 浮梁网站推广房产网站建设价格
  • Java基础-面向对象复习知识5
  • GitHub 官宣 GitHub Copilot CLI 开发公测:AI CLI 大战
  • 哪些网站可以进行域名注册设计制作一个 个人主页网站
  • OSS-对象存储服务
  • cpa自己做网站高端品牌洗发水
  • 职业教育专业建设验收网站海南做网站的公司有哪些
  • 马云归来,“新零售”不死
  • 湖南省建设厅网站官网镇江网站制作案例
  • 哪些网站是做免费推广的wordpress函数手册 pdf
  • 网站网站做维护犯罪赣州酒店网站设计
  • 洛阳网站建设汉狮报价怎么查域名的注册人
  • 插座配线工程量-连续测量快速计量
  • 软考中级-软件设计师(七)
  • CDN 网站是否需要重新备案链爱交易平台
  • 高端网站建设大概多少费用商城网站建设哪个公司好
  • C++ 多返回值的几种实现方式
  • 徐州网站建设的特点做企业网站用什么
  • 东莞营销网站网站虚拟主机 会计处理
  • CSS定位布局
  • 织梦首饰网站模板茶楼 网站
  • 怎样建设微网站课程推广
  • 网站建设前的ER图重庆怎样网站推广
  • 虹膜边缘预测函数
  • day82—数组 | 哈希桶—找到所有数组中消失的数字(LeetCode-448)
  • 人该怎样活着呢?版本61
  • 天纪标注平台TLP:用大模型赋能高质量数据标注