MySQL命令执行过程和基本管理

MySQL命令执行过程

客户端如何连接MySQ L服务端?

  1. TCP/IP:指定IP,端口号,用户名,密码进行连接。
  2. 命名管道和共享内存:WINDOWS客户端,服务端连接方式。
  3. Unix套接字:类Unix客户端,服务端连接方式。

语句在服务端如何处理?

MySQL命令执行过程

MySQL的基本管理

如何启动MySQL?

UNIX中

  • mysqld:直接启动MySQL服务器程序
  • mysql_sage:同时启动另外一个监控进程,在MySQL服务器程序挂了的时候,可以帮助重启它。另外会将服务器程序的出错信息和其他诊断信息重定向到某个文件中,产生出错日志。
  • mysql.server:mysql.server只是对mysql_safe的一个封装,在调用mysql.server时需要在后边指定start参数。
  • mysql_multi:运行多个MySQL服务器程序

关闭:mysql.server stop

WINDOWS中

  • 手动启动:双击mysqld文件

WINDOWS中可以自动启动?

可以,采用服务的方式,把某个程序程序注册为Windows服务。

1
2
3
4
注册:"完整的可执行文件路径" --install[-manual] [服务名]//加manual表示不要开机自动启动
启动:net start MySQL
关闭:net stop MySQL
删除:"完整的可执行文件路径" --remove [服务名]

在服务端启动时服务的一些属性如何配置?

启动选项

这些属性称为启动选项。

  1. 可以在启动的命令行中配置,如果不写会有默认启动选项。
  2. 可以在配置文件修改。

配置文件有多个,存在优先级。
命令行中的配置优先配置文件中的配置。

配置文件中的配置有优先级吗?
有,我们先了解一下配置文件。

配置文件中的内容

内容如下:

1
2
3
4
5
6
7
8
9
10
[mysqld]
(具体的配置内容...)
[server]
(具体的配置内容...)
[mysql_safe]
(具体的配置内容...)
[mysql.server]
(具体的配置内容...)
[client]
(具体的配置内容...)

不同的启动命令读取不同分组中的内容

启动命令的读取

如果不同分组有同样的配置,按后出现的为准。

如何表示服务端已经启动后的属性信息?进一步,我如果需要修改这些属性?

系统变量

除了我们的自定义变量,其实MySQL服务器程序自身就维护了非常多的变量,这些变量也被称为系统变量。每个系统变量都代表服务器程序的一个设置项。
这些系统变量都可以在运行中查看,大部分都是在作为启动选项被赋值,有些可以在运行时被修改值。

一个用户修改了系统变量会不会对另一个用户造成影响?
会,因此需要有作用域。

系统变量的作用域

  • GLOBAL:对所有客户端都有效。
  • SESSION:只对本客户端有效。
1
2
3
SET [GLOBAL|SESSION] 系统变量名 = 值;
SET [@@(GLOBAL|SESSION).]var_name = XXX;
SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式];

不写默认是SESSION

注意:

  1. 并不是所有系统变量都具有GLOBAL和SESSION的作用范围。
  2. 有些系统变量是只读的,并不能设置值,比如版本号。

启动选项和系统变量有区别也有联系

为了让我们更好的了解服务器程序的运行情况,MySQL服务器程序中维护了好多关于程序运行状态的变量,它们被称为状态变量