一、阶段一:连接管理
1.1、MySQL服务器在连接管理工作
- 1、
客户端进程
可以采用TCP/IP、命名管道或共享内存、Unix域套接字
这几种方式之一来与服务器进程
建立连接,每当有一个客户端进程连接到服务器进程时,服务器进程都会创建一个线程
来专门处理与这个客户端的交互。 - 2、当该
客户端退出
时会与服务器断开连接,服务器并不会立即把与该客户端交互的线程销毁掉
,而是把它缓存起来 - 3、当另一个新的客户端再进行连接时,把这个
缓存的线程分配给该新客户端
- 4、这样就起到了
不频繁创建和销毁线程
的效果,从而节省开销
。 - 5、从这一点可以看出,MySQL服务器会为每一个连接进来的客户端分配一个线程,但是线程分配的太多了会严重影响系统性能,所以我们也需要限制一下可以同时连接到服务器的客户端数量
二、MySQL启动选项
2.1、禁止客户端使用TCP/IP网络进行通信
在命令行中指定启动选项时需要在选项名前加上
--
前缀。另外,如果选项名是由多个单词构成的,它们之间可以由短划线-
连接起来,也可以使用下划线_
连接起来,也就是说skip-networking
和skip_networking
表示的含义是相同的。所以上面的写法与下面的写法是等价的
- 禁止命令
mysqld --skip_networking
- 登录命令
mysql -h127.0.0.1 -uroot -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61)
2.2、修改表的默认存储引擎的话,可以这样写启动服务器的命令行
mysqld --default-storage-engine=MyISAM
2.3、在启动服务器程序的命令行后边指定启动选项的通用格式
--启动选项1[=值1] --启动选项2[=值2] ... --启动选项n[=值n]
-
选项名、=、选项值之间不可以有空白字符
,比如写成下面这样就是不正确的
mysqld --default-storage-engine = MyISAM
2.4、配置文件
与在命令行中指定启动选项不同的是,配置文件中的启动选项被划分为若干个组,每个组有一个组名,用中括号[]扩起来。
[server]
option1 #这是option1,该选项不需要选项值
option2 = value2 #这是option2,该选项需要选项值
...
[mysqld]
(具体的启动选项...)
[mysqld_safe]
(具体的启动选项...)
[client]
(具体的启动选项...)
[mysql]
(具体的启动选项...)
[mysqladmin]
(具体的启动选项...)
-
1、在配置文件中指定启动选项的语法类似于命令行语法,但是配置文件中只能使用
长形式的选项
。在配置文件中指定的启动选项不允许加--前缀,并且每行只指定一个选项
,而且=周围可以有空白字符(命令行中选项名、=、选项值之间不允许有空白字符) -
2、配置文件中不同的
选项组
是给不同的启动命令
使用的,如果选项组名称
与程序名称相同
,则组中的选项将专门应用于该程序 -
3、
[mysqld]
应用于mysqld服务器程序
-
4、
[mysql]
应用于mysql客户端程序
-
5、
[server]
组下面的启动选项将作用于所有的服务器程序
-
6、
命令及适用配置.png[client]
组下面的启动选项将作用于所有的客户端程序
网友评论