MySQL配置文件分组及几种启动方式
对于MySQL的基础学习,有一些配置文件、启动相关的知识点是我们需要了解的,今天我们就来简单了解一下配置文件分组相关的内容,以及启动工具之间的区别。
配置文件分组
MySQL的配置文件中可以配置的东西非常多,相信大家都会有一些体会。而且相信很多刚开始使用的同学也会像我一样,直接把网上的配置复制一份放到配置文件中。相信很多同学都见过这样的东西。
[mysqld]
xxx
xxx
[mysql]
xxx
xxx
这个配置中,[ ] 里的内容是什么意思呢?其实你大概也能猜到,[ ] 里的内容其实是服务端的一些配置。而 [mysql] 是客户端的一些配置。
在命令行中,我们可以通过命令行参数来指定一些配置。例如下面两个命令。
~ mysqld --bind-address=127.0.0.1
~ mysql --compress
如果每次都要输入类似上面的参数信息的话,那么输入到配置文件中会更加方便,这时候我们可以将它们配置到对应的配置组中。
[mysqld]
bind-address=127.0.0.1
[mysql]
compress
现在我们需要重启MySQL服务,当然我们还需要使用mysql命令重新连接服务器,然后查看配置信息。
很明显我们的配置已经生效了,好了,现在大概的功能说完了,我们再来看看上面的[ ]里面都包含了哪些内容,既然都说了,肯定不止[ ]和[mysql]这几个相关的配置。
程序名称 类别 可读组
服务器
[]、[]
服务器
[]、[]、[]
mysql。
服务器
[],[],[mysql.]
mysql
客户
[mysql],[]
客户
[]、[]
客户
[]、[]
既然有这么多的组,那么在不同的组中配置相同的参数时,是否存在优先级的问题呢?在 MySQL 的配置中,组的优先级很简单,即最后配置的优先级最高。例如如下所示。
[mysqld]
bind-address=127.0.0.1
[server]
bind-address=*
那么最后生效的配置是*,如果我们同时写两个[]会怎么样呢?最后一个才会生效。
另外,最高优先级就是我们在上面的命令行中直接指定的参数,该参数始终具有最高优先级。
启动方法
接下来就要学会如何启动了。大家都知道MySQL服务器程序是用的,但是很多人会发现还有,mysql。这两种启动方式也是很常见的。那么它们之间有什么区别呢?
最基础的就是真正的 MySQL 服务器可执行文件,它会启动 MySQL 服务进程,监听端口或者文件来运行服务器。不过一般情况下我们不会直接用命令行来操作它,比如在 中我们一般会用 来操作这个服务的启动。
systemctl [start|stop|restart] mysqld
它是一个安全的启动脚本,会间接调用并持续监控服务器的运行,如果出现错误,可以帮助重启服务器程序,并记录错误日志。
mysql。也是启动服务,间接调用,使用很方便。
mysql.server [start|stop|restart]
在我的 Mac 上,我使用 brew 安装,其中包含了 mysql. 命令。启动 mysql. 命令时,实际上启动了一个进程及其子进程。就像我们之前学习的进程运行模式一样,它就像一个进程,管理和监控实际运行的子进程,当出现问题时可以重新启动并拉起新的子进程。你可以尝试杀死子进程,你会发现马上就会出现一个新的子进程。
另外还有一个可以同时运行多个服务器实例,用的不多,就不详细介绍了。
启动方式有好几种,但是你的系统中不一定都有,比如我用rpm安装,就没有mysql的启动方式,这是为什么呢?官方文档里有专门的说明。
在某些Linux平台下,使用RPM或者软件包安装并没有什么实际作用,所以没必要。因为系统直接运行来管理MySQL服务,也就是我们上面用到的工具,它属于这个系统组件。同样,这个工具也可以直接实现相关功能(你也可以尝试kill掉它),而且不需要主进程再创建子进程进行管理,性能更佳。
同样,mysql.也是间接调用的,所以我的虚拟测试机环境中是没有mysql.命令的。
总结
今天的内容很基础,但是越是基础的东西越容易被忽略。就拿我来说吧,在学之前我真的只知道[]、[mysql]、[]这三个配置,其他的真的没什么印象了。而且这些配置并不是全部都是原来就有的,现代系统用过之后就不用了。好吧,学习如此,成长亦如此,惊喜常常在你不知情的情况下出现在你面前。
参考文献:
MySQL 的工作原理 - 从根本上理解 MySQL
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。