1. 在ubuntu下安装MySQL数据库
1.1 查看操作系统版本
操作系统版本为Ubuntu22.04. LTS
lsb_release -a;
安装成功之后,查看mysql的状态
1.2 查看mysql的状态
1.3 登录mysql
mysql -uroot -p;
1.4 退出mysql
quit;
exit;
2. mysql 程序的学习
2.1 常用的mysql程序
2.2 mysqld-MySQL服务器
mysqld也被称为MySQL服务器(服务端程序),是⼀个多线程程序,对数据⽬录(mysql的主要工作目录)进⾏访问管理(包含数据库和 表)。数据⽬录也是其他信息(如⽇志⽂件和状态⽂件)的默认存储位置。
当MySQL服务器启动时,会侦听指定的端⼝、处理来⾃客⼾端程序的⽹络连接,并管理不同客⼾ 端对数据库的访问
mysqld程序有许多选项可以在启动时指定。运⾏以下命令查看完整的选项列表:
mysqld --verbose -- help;
2.mysql-MySQL命令⾏客户端
2.1 mysql客户端简介
mysql是⼀个简单的SQLshell,可以输⼊命令和执⾏SQL语句,当执⾏SQL语句时,查询结果以 ASCII 表格式显⽰:
mysql -uroot -p;
2.2 mysql客户端选项
•在mysql后⾯的命令⾏中列出选项
• 在mysql后⾯指定配置⽂件的路径,以便在程序启动时读取配置⽂件中的选项并解析对应程序选项的值,并应用在启动参数中。
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" "--defaults-file=C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" "-uroot" "-p" "--default-character-set=utf8mb4"
defaults-file=C:\ProgramData\MySQL\MySQL Server 8.0\my.ini-->表示启动时默认前往配置文件读取数据。
• 使⽤环境变量中的选项(略)
2.2 mysql客户端命令常用选项
如果选项的值中包含空格,那么值需要包含在双引号中。
2.3 在命令⾏中使⽤选项
命令⾏中指定选项遵循以下规则:
• 选项应在程序名之后给出。
选项以单破折号" -"或双破折号"-- "号开头, -表⽰短格式,-- 表⽰⻓格式,--help 和 -? 都表⽰显⽰mysql程序显示帮助他的消息。
• 对于带值的⻓格式选项,通常⽤ = 符号分隔选项名称和值。对于带值的短选项,选项值可以紧跟在 选项之后,也可以⽤空格隔开,例如:--host= 127.0.0.1 、-h127.0.0.1 和-h 127.0.0.1 是等价的。但是对于密码选项的短格式,如果要指定密码,选项与值之间不能有空 格,如下所⽰:
在命令⾏中,第⼀个不带破折号的值被解析为要访问的数据库名,所以--database 选项⼀般可以省略;
在选项名称中,破折号(- )和下划线( _ )在⼤多数情况下可以互换使⽤,但前导破折号不能转 为下划线,例如:--skip-grant-tables 和--skip_grant_tables 是等价的。
• 对于采⽤数值的选项,该值可以带有后缀 K , M 或 G 以指⽰乘数1024、1024^2或1024^3,例 如,以下命令告诉mysqladmin对服务器执⾏1024次ping,每次ping之间休眠3秒 。
在命令⾏中包含空格的选项值必须⽤引号引起来。例如,--execute (or-e )选项与mysql⼀ 起使⽤时,表⽰将⼀个或多个SQL语句发送给服务器执⾏并显⽰结果。
2.4 选项(配置)⽂件
⼤多数MySQL程序都可以从选项⽂件(配置⽂件)中读取启动选项。可以在选项⽂件中指定常⽤选 项,这样就不⽤在每次运⾏程序时都在命令⾏中输⼊它们。⼤部分选项⽂件都是纯⽂本格式,可以使 ⽤任何⽂本编辑器创建。
2.4.1 使⽤⽅法
选项 --defaults-file 可以指定要使⽤的选项⽂件,客⼾端程序会读取并应⽤选项⽂件中的相关配置。
linux:
windows:
如果在使用nysql程序是没有指定配置文件的路径,那么就会自动读取默认路径下的培植物文件。
2.4.2 选项⽂件位置及加载顺序
MySQL按以下表格中的顺序查找并读取选项⽂件。如果⽂件不存在则需要⼿动创建。 读取顺序从上到下,后读取的⽂件中配置的选项优先级越⾼。
1、 在Windows系统读取选项⽂件
2 、在Unix和Linux系统上读取的选项⽂件
2.4.3 设置客户端全局编码格式
每一次修改配置文件之间做好备份,防止发生错误可以恢复到之前版本。
3 mysql 客户端命令
使⽤mysql客⼾端程序连接到数据库服务器之后,可以发送SQL语句到服务器执⾏,并以";"(分 号)、\g 或\G结束。
1. ;与\g结束表⽰以表格形式展⽰结果
2. \G结束表⽰以⾏形式展⽰结果
help:
指令说明:
在mysql里面执行服务器系统命令;
system xxxxxxx;
4. mysqlcheck-表维护程序
4.1 作用
mysqlcheck客⼾端⽤于执⾏表维护,可以对表进⾏:分析、检查、优化或修复操作。
• 分析的作⽤是查看表的关键字分布,能够让sql⽣成正确的执⾏计划(⽀持InnoDB,MyISAM, NDB)
• 检查的作⽤是检查表的完整性以及数据库表和索引是否损坏(⽀持InnoDB,MyISAM, ARCHIVE,CSV)
• 优化的作⽤是回收空间、减少碎⽚、提⾼I/O(⽀持InnoDB,MyISAM,ARCHIVE)
• 修复的作⽤是修复可能已经损坏的表(⽀持MyISAM,ARCHIVE,CSV)
4.2 注意事项
1. 当使⽤mysqlcheck⼯具时,MySQL服务器必须在运⾏状态
2. 执⾏过程中相应的表将会被锁定,所以其他的操作将会被挂起
3. 并不是所有的存储引擎都⽀持以上四种操作,如果遇到不⽀持的引擎会报出相应的错误
4. 执⾏表修复操作之前对表进⾏备份,在某些情况下可能会导致数据丢失。
4.3 使⽤⽅法
• ⼀般通过以下三种⽅法使⽤mysqlcheck
1 mysqlcheck [options] db_name [tbl_name ...]
2 mysqlcheck [options] --databases db_name ...
3 mysqlcheck [options] --all-databases
4.4 mysqlcheck的特殊使⽤
mysqlcheck程序的默认功能是对数据表进⾏检查操作(相当于指定选项--check ),如果想要对 表进⾏修复操作,可以通过复制原来的mysqlcheck程序,并重命名为mysqlrepair,并运⾏ mysqlrepair即可,还可以创建mysqlcheck的快捷⽅式,并把快捷⽅式命名为mysqlrepair然后直接运⾏,这时就执⾏的是修复操作,通过下表所⽰的命名⽅式可以改变mysqlcheck的默认⾏ 为;
5. Mysqldump-数据库备份程序
5.1 作⽤
• mysqldump客⼾端程序可以执⾏逻辑备份并⽣成⼀组SQL语句,其中包含原始数据库和表的定义以及表中的数据,以便实现对数据库的简单备份或复制。mysqldump命令可以⽣成CSV、或XML格 式、sql的⽂件。
5.2 注意事项
1. 转储表时必须要有 SELECT 权限
2. 转储视图时必须要有 SHOW VIEW 权限
3. 转储触发器时必须要有 TRIGGER 权限
4. 如果没有使⽤--single-transaction 选项时必须要有
5. 如果没有使⽤ LOCK TABLES 权限--no-tablespaces 选项时必须要有 PROCESS 权限
6. 重新导⼊转储⽂件时,也需要有相应的权限
7. 由于mysqldump是逐⾏转储数据,所以不适⽤于⼤数据量的转储与导⼊
5.3 使⽤⽅法
mysqldump的⽅法通常有以下使⽤,可以转储⼀个或多个表或数据库,如下所⽰: mysqldump [options] db_name [ tbl_name ...]
mysqldump [options] --databases db_name ...
mysqldump [options] --all-databases
5.4 options常⽤选项
6. mysqladmin-MySQL服务器管理程序
6.1作⽤
mysqladmin是⼀个执⾏管理操作的客⼾端,。配合使用mysqladmin的用户必须是具备管理员权限,可以⽤来检查服务器的配置和当前状态,以及创建和删 除数据库等。
6.2使⽤⽅法
mysqladmin可以使⽤以下语法:
mysqladmin [options] command [command-arg] [command [command-arg]] ...
6.3 支持的命令
显示进程列表:
默认mysql服务器可以维护150个活动连接,如果连接被使用完,就可以使用kill 指令去手动释放休眠时间最长的那个线程。
7. mysqlshow-显⽰数据库、表和列信息
7.1 作⽤
mysqlshow客⼾端可⽤于快速查看存在哪些数据库、数据库中的表以及表中的列或索引。mysqlshow为一些show语句提供了一个命令行接口。
7.2 使⽤⽅法
mysqlshow可以使⽤以下语法:
mysqlshow [options] [db_name [tbl_name [col_name]]]
• db_name tbl_name col_name 可以使⽤通配符 * 、 ? 、 % 或 _
• 如果没有指定表,则显⽰数据库中所有匹配的表。
• 如果没有指定列,则显⽰表中所有匹配的列和列类型。
• 输出仅显⽰当前权限可以访问的数据库、表或列的名称。
8. mysqldumpslow-总结慢查询⽇志⽂件
8.1 作⽤
在平时使⽤MySQL数据库时,经常进⾏查询操作,有些查询语句执⾏的时间⾮常⻓,当执⾏时间超过 设定的阈值时,我们称这个查询为慢查询,慢查询的相关信息通常需要⽤⽇志记录下来称为慢查询⽇ 志,mysqldumpslow可以解析慢查询⽇志⽂件并汇总其内容,
8.2 注意事项
通常情况下,mysqldumpslow会将相似的查询分组并显⽰摘要输出,⼀般会把数字和字符串⽤ N 和 "S" 代替,要想显⽰真实的值可以使⽤-a和-n选项。
8.3 使⽤⽅法
mysqldumpslow可以使⽤以下语法
mysqldumpslow [options] [log_file ...]
9. mysqlbinlog- 处理⼆进制⽇志⽂件
什么是⼆进制⽇志⽂件: 我们平时对数据库的修改,包括对数据的增删改,都会被描述成⼀个"事件",每个"事件"都会以⼆进 制的形式记录在⼀个⽂件⾥,这个⽂件就是服务器的⼆进制⽇志⽂件,称为BinaryLog或binlog。
关于⼆进制⽇志⽂件的具体格式与使⽤场景我们在MySQL主从复制专题讲解,简单了解一下主从复制:
9.1 作⽤
mysqlbinlog 能够以⽂本格式显⽰⼆进制⽇志⽂件中的内容。
9.2 注意事项
• binlog的默认保存路径是数据⽬录:
◦ Linux下默认⽬录:/var/lib/mysql
◦ Windows下默认⽬录:C:\ProgramData\MySQL\MySQLServer8.0\Data
• binlog是以 .00000n 结尾命名的⽂件,n不断递增。
9.3 使用语法
切记binlog的所在目录:
9.4 常用选项
10. mysqlslap- 负载仿真客⼾端
10.1 作⽤
mysqlslap是⼀个诊断程序,⽤于模拟MySQL服务器的客⼾端负载,并报告每个阶段的时间,就好⽐ 多个客⼾端正在访问服务器⼀样。
10.2 使⽤⽅法
mysqlslap可以使⽤以下语法
mysqlslap [options]
10.3 注意事项
1. 可以通过--create 或--query 选项,指定包含SQL语句的字符串或包含SQL语句的⽂件
2. 如果指定⼀个包含SQL语句的⽂件,默认情况下每⾏必须包含⼀条语句(也就是说,隐式语句分隔符 是换⾏符)
3. 如果要把⼀条语句分为多⾏书写,可以使⽤--delimiter 选项指定不同的分隔符
4. 不能在⽂件中包含注释,因为mysqlslap不能解析注释。
5. mysqlslap运⾏分为三个阶段:
a. 创建测试数据阶段:创建⽤于测试的库、表或数据,这个阶段使⽤单个客⼾端连接
b. 运⾏负载测试阶段,这个阶段可以使⽤许多客⼾端连接
c. 清理阶段:执⾏删除表,断开连接等操作,这个阶段使⽤单个客⼾端连接
ps:当前的学习就到这里了,谢谢观看!!!