之前没有仔细研究过my.cnf文件,今天有时间研究了一下my.cnf中的一些概念,这里简单整理如下,如果有什么问题,还请大家指出。

按照教程安装好MySQL之后,打开etc目录下的my.cnf文件,大概可看到下面这样的参数列表,可能不同版本的mysql参数多少会有一些不一致,但是并不妨碍我们理解。

首先,我们可以看到这个文件里面有mysqld和mysql_safe两类参数,我们知道mysqld和mysql_safe都可以启动mysql服务,那么mysqld和mysql_safe这两个类之间有什么不同呢?要讨论这个问题,我们需要引入第三个类别mysql.server,并同时讨论这三种启动方式的区别。

问题1.mysql.server,mysqld,mysqld_safe的区别

mysql.server

它是一个服务器启动的shell脚本,主要作用就是为了方便启动和关闭mysql服务,它使用mysql_safe来启动mysql服务器,在mysql.server启动服务器之前,它将目录转换到mysql安装目录里面去,然后调用mysqld_safe。mysql.server通过向服务器发送一个信号来停止它,也可以使用mysqladmin shutdown命令来停止服务器,如果你使用源码或者二进制格式安装mysql(没有自动安装mysql.server这个脚本),你可以手动安装; 这个脚本在mysql安装目录下的support-files目录里边或者在源码包里边;为了能使用service mysqld start命令启动mysql服务,此时需要做的是将mysql.server的脚本复制到/etc/init.d目录下,然后重命名为mysqld,最后给予执行权限。mysqld.server会从配置文件的[mysqld] [mysql.server] 区域读取配置选项;

可以在全局配置文件/etc/my.cnf中配置mysql.server,mysql.server脚本支持下面这些选项;一旦指定,它们必须放在配置文件中,不能放到命令行中(mysql.server支持的命令行参数只有start和stop);

–basedir mysql安装目录;

–datadir 数据文件的路径;

–pid-file 服务器写自己的进程号的文件;如果这个不指定,mysql使用默认的hostname.pid;

The PID file value被传递给mysqld_safe,覆盖了[mysqld_safe]下面指定的值;因为mysql.server读取[mysqld]选项组而不读取[mysqld_safe]选项组,所以为了在使用mysql.server 调用mysqld_safe的时候, mysqld_safe能够获得一样的pid,我们可以让[mysqld]选项组和[mysqld_safe]选项组使用同一个pid-file;

mysql_safe

这是mysql服务启动脚本,它是mysqld的父进程,它调用mysqld启动数据库服务,并在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它,当我们开启mysqld_safe命令的时候,可以防止mysql服务的意外终止,这里做一个小小的测试。

首先查看当前的mysql服务:

然后发现服务中有一个mysql_safe和一个mysqld,其中mysqld_safe的端口号是1929,mysqld的端口号是2228,这个时候,我们把2228的进程杀掉:

我们发现,进程号为2228的mysqld进程已经被杀掉,进程号为1929的mysqld_safe进程还在,又重新生成了一个进程号为2288的mysqld进程,接下来,我们杀掉mysqld_safe的进程,kill -9 1929,得到的结果如下:

我们发现杀掉mysqld_safe之后,只剩下进程号为2288的mysqld进程了,并没有生成新的mysqld_safe进程,这个时候,在再次杀掉mysqld进程2288,结果如下:

此时,所有的进程都被关闭掉了,综合上述操作,我们可以发现,当mysqld_safe进程存在时,我们无法直接杀掉mysqld进程,当我们杀掉mysqld_safe进程的时候,此时才可以杀掉mysqld进程,这便是mysqld_safe的守护进程作用,它可以防止mysqld进程被意外终止。

mysqld

mysqld是关于服务器端的程序,要想使用客户端程序,该程序必须运行,因为客户端通过连接服务器来访问数据库。

问题2.mysql的三种启动方式:

1、mysqld

启动mysql服务器:

客户端连接:

2、mysqld_safe

启动mysql服务器:

客户端连接:

3、mysql.server

启动mysql服务器:

客户端连接:同1、2

问题3.socket文件mysql.sock详解

mysql有两种连接方式,一种是TCP/IP的方式,另外一种是socket的方式,mysql.sock主要用户程序与mysqlserver在同一机器上,发起本地连接的时候使用,即无需再连接服务时使用host和IP,mysql.sock是随着每一次mysql server的启动而生成的,当服务重启时,mysql.sock也会重新生成。利用mysql.sock连接服务的样例如下:

linux下安装mysql连接的时候经常回提示说找不到mysql.sock文件,解决办法很简单:
1.如果是新安装的mysql,提示找不到文件,就搜索下,指定正确的位置。
2.如果mysql.sock文件误删的话,就需要重启mysql服务,如果重启成功的话会在datadir目录下面生成mysql.sock 到时候指定即可。

问题4.查看mysql的配置文件调用顺序

mysql --help|grep “my.cnf”,当启动mysql服务的时候,会从当前目录的my.cnf中去读对应的参数,优先级顺序和输出顺序保持一致。

问题5.MySQL的pid文件介绍

MySQL pid 文件记录的是当前 mysqld 进程的 pid,pid 亦即 Process ID。

1、未指定
pid 文件时,pid 文件默认名为 主机名.pid,存放的路径在默认 MySQL 的数据目录。通过 mysqld_safe 启动 MySQL
时,mysqld_safe 会检查 pid 文件,如果 pid 文件不存在,不做处理;如果文件存在,且 pid 已占用则报错 “A
mysqld process already exists”,如果文件存在,但 pid 未占用,则删除 pid 文件。
2、查看 MySQL 的源码可以知道,mysqld 启动后会通过 create_pid_file 函数新建 pid 文件,通过 getpid() 获取当前进程 pid 并将 pid 写入 pid 文件。
3、因此,通过 mysqld_safe 启动时, MySQL pid 文件的作用是:在数据文件是同一份,但端口不同的情况下,防止同一个数据库被启动多次。

,通过 mysqld_safe 启动时, MySQL pid 文件的作用是:在数据文件是同一份,但端口不同的情况下,防止同一个数据库被启动多次。
关于MySQL之my.cnf配置文件,你学废了么?


真诚地邀请您加入我们的大家庭.
在这里不仅有技术知识分享,还有博主们之间的互帮互助
不定期发红包,每月更有抽奖环节,游戏机和实体书相赠(包邮)
让我们抱团取暖,抱团内卷.打造美好C站.期待您的加入.
备注 : CSDN-xxxxxx (xxxxxx代表你csdn的昵称)

MySQL之my.cnf配置文件相关推荐

  1. 关于Mac版Mysql的my.cnf配置文件

    首先MAC下默认没有my.cnf配置文件,需要自己创建 看结果是找不到my.cnf这个文件,不然会显示出相关路径的 那么就自己创建my.cnf配置文件 先进入etc文件夹 cd etc/ 在 etc文 ...

  2. Mysql的my.cnf配置文件详情

    # 以下选项会被MySQL客户端应用读取.       # 注意只有MySQL附带的客户端应用程序保证可以读取这段内容.       # 如果你想你自己的MySQL应用程序获取这些值.       # ...

  3. mysql 8 my.cnf 配置文件_mysql之my.cnf配置文件详解

    # 以下选项会被MySQL客户端应用读取. # 注意只有MySQL附带的客户端应用程序保证可以读取这段内容. # 如果你想你自己的MySQL应用程序获取这些值. # 需要在MySQL客户端库初始化的时 ...

  4. Centos 7 上 查看MySQL当前使用的配置文件my.cnf的方法

    my.cnf是mysql启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载.总的来说,my.cnf类似与window中my.ini 使用locate my.cnf命令可 ...

  5. mysql性能优化:my.cnf配置文件

    前言 mysql:5.6.23 my.cnf配置文件 [mysqld] port=3306#server-id = 2 #log-bin = mysql-bin #log_bin_trust_func ...

  6. mysql目录下没有配置文件_MySQL没有my.cnf配置文件如何解决

    安装了mysql却没有my.cnf配置文件是个很多新手都会遇到的问题.想必很多新手都经历到过这样的情景:准备修改mysql存储空间(datadir)等情况时,按着网上的教学去做,突然发现居然没有my. ...

  7. mysql my.cnf在哪里_my.cnf配置文件在哪

    my.cnf配置文件在linux上是位于路径"/etc/my.cnf"下,在window上则位于安装目录的根目录下:可以使用命令"mysql --help"查看 ...

  8. MySQL--My.cnf配置文件模板 MYSQL AND MARIADB CONFIGURATION FILE TEMPLATE (MY.CNF/MY.INI)

    MySQL--My.cnf配置文件模板 Introduce The MySQL and MariaDB default configuration is not very great for prod ...

  9. 50-000-040-配置-MAC 安装MySQL my.cnf配置文件

    文章目录 1.概述 2. 查了MYSQL 配置文件 3.Mac下添加配置文件 4.window下 ini文件 1.概述 注意区分mac版mysql与Windows版的mysql配置文件扩展名不同: m ...

  10. Linux中安装的mysql查不到配置文件my.cnf

    linux中找不到my.cnf 解决方法: MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于rpm包安装的MySQL, 至此找到配置文件

最新文章

  1. jquery autocomplete实现solr查询字段自动填充并执行查询
  2. C语言实现修改文本文件中的特定行
  3. VIJOS-P1192
  4. 函数计算 【题目描述】
  5. C++modular exponentiation模幂运算的实现算法(附完整源码)
  6. 导入功能 php,php Excel 导入功能
  7. 数据库 ogm_带有Hibernate OGM的NoSQL –第二部分:查询数据
  8. 谈谈一些有趣的CSS题目(十五)-- 谈谈 CSS 关键字 initial、inherit 和 unset
  9. 一文详解微服务架构的数据设计
  10. 身份证识别开发_成为您的身份永远不会太晚-在36岁时成为一名开发人员
  11. ❤️力扣线性枚举算法第二题数组中连续为一的最大个数
  12. Excel 2007 Open XML文件结构~~~1
  13. 瑞银报告:Waymo在2030年占据全球60%无人出租车市场
  14. 关于浏览器Ajax请求Type为Request Payload而不是Form Data
  15. VMware下安装ubuntu,桥接上网配置静态IP
  16. android 视频转码需要权限,android 使用 ffmpeg 进行视频转码(一)
  17. 居家学习python自制闹铃小助手
  18. 计算机ei期刊最新版2018,2018年EI收录中文期刊目录
  19. android+单机button+设置背景图片,button设置点击更改背景图片
  20. 关于数据库加密你不能不知道的秘密

热门文章

  1. 《当我们谈论爱情时,我们谈论机器》感悟一二
  2. 【BIT云计算大作业】基于Spark的K近邻(KNN)查询以及K-mer计数
  3. 电信光纤猫虚拟服务器设置方法,电信光纤猫与无线路由器连接的设置方法
  4. 雪花屏幕保护程序(VB.ENT)
  5. 华为鸿蒙鲲鹏麒麟凌霄,华为麒麟、凌霄、鸿鹄三大芯片有什么区别?
  6. 常见对称加密、解密、破解
  7. 多线程开发之AsyncTask
  8. 如何确立人生目标?100个人生目标清单总汇
  9. mysql不区分英文字母大小写模糊查询
  10. 单片机学习(三)8位数码管显示8个字符的程序及详解