MySQL 启动流程及配置管理
MySQL 启动关闭流程
启动数据库
# 启动数据库时,具体流程
1. systemctl start mysql
2. /etc/init.d/mysqld start
3. mysqld_safe --defaults-file=/etc/my.cnf
4. mysqld --defaults-file=/etc/my.cnf
# 最终都是 mysqld_safe 启动,mysqld 守护进程在后台
关闭数据库
# 正常关闭数据
1.systemctl stop mysql
2./etc/init.d/mysqld stop
3.mysqldadmin -uroot -p123 shutdown
# 不正常关闭数据库
1.kill -9 mysqlpid
2.killall mysqld
3.pkill mysqld
# 后果:
1.如果业务量很大,数据库不会立刻关闭,只是停止服务,pid文件和socket文件还存在
2.如果业务量很大,会丢失数据
MySQL 配置管理
预编译阶段
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.20 \
-DMYSQL_DATADIR=/usr/local/mysql-5.6.20/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.20/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=system \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0
配置文件
# 配置文件位置(按读取顺序正序排列,优先级倒序排列)
①. /etc/my.cnf # 优先级 4
②. /etc/mysql/my.cnf # 优先级 3
③. $basedir/my.cnf # 优先级 2
④. ~/my.cnf # 优先级 1
# defaults-extra-file 配置在上述的配置文件中,记录其他子配置文件路径,优先级由上述的配置文件决定 (类似 include)
vim /etc/my.cnf
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
命令行
mysqld_safe
--skip-grant-tables
--skip-networking
--datadir=/usr/local/mysql/data
--basedir=/usr/local/mysql/mysql
--defaults-file=/etc/my,cnf
--pid-file=/usr/local/mysql/data/db01.pid
--socket=/usr/local/mysql/data/mysql.sock
--user=mysql
--port=3306
--log-error=/usr/local/mysql/data/db01.err
MySQL 配置文件
配置文件的位置和优先级
①. /etc/my.cnf # 优先级 4
②. /etc/mysql/my.cnf # 优先级 3
③. $basedir/my.cnf # 优先级 2
④. ~/my.cnf # 优先级 1
# defaults-extra-file 配置在上述的配置文件中,记录其他子配置文件路径,优先级由上述的配置文件决定 (类似 include)
配置文件的优先级测试
# 配置~/.my.cnf
[root@db03 ~]# vim ~/.my.cnf
[mysqld]
server_id=1
# 配置$basedir/my.cnf
[root@db03 ~]# vim /service/mysql/my.cnf
[mysqld]
server_id=2
# 配置/etc/mysql/my.cnf
[root@db03 ~]# vim /etc/mysql/my.cnf
[mysqld]
server_id=3
# 配置/etc/my.cnf
[root@db03 ~]# vim /etc/my.cnf
server_id=4
# 重启数据库
[root@db03 ~]# /etc/init.d/mysqld start
# 查看 server_id 测试
[root@db03 ~]# mysql -uroot -p123 -e 'show variables like "server_id"'
Warning: Using a password on the command line interface can be insecure.
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 4 |
+---------------+-------+
配置文件的生效顺序
# 1.预编译制定socket文件
cmake . -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.46/tmp/mysql.sock
# 2.配置文件制定
[root@db02 ~]# vim /etc/my.cnf
[mysqld]
socket=/tmp/mysql.sock
# 3.配置a.txt
[root@db02 ~]# vim a.txt
[mysqld]
socket=/opt/mysql.sock
# 4.命令行
--socket=/tmp/commond.sock
# 5.分别使用以下命令测试生效的配置
[root@db02 ~]# mysqld_safe --defaults-file=a.txt --socket=/tmp/commond.sock &
[root@db02 ~]# mysqld_safe --defaults-file=a.txt
[root@db02 ~]# mysqld_safe
# 6.查看socket文件位置判断优先级
配置文件的优先级总结
# 优先级从高到低
--socket=/tmp/mysql.sock > --defaults-file=/xxx/my.cnf > ~/my.cnf > $basedir/my.cnf > /etc/mysql/my.cnf > /etc/my.cnf > 初始化 > 预编译
MySQL 配置文件的作用
影响客户端的连接
[root@db02 ~]# vim /etc/my.cnf
[mysqld]
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
user=root
password=123
# 不需要重启,直接 mysql 就可以连接数据库
影响服务端启动
[root@db02 ~]# vim /etc/my.cnf
[mysqld]
socket=/tmp/mysql.sock
server_id=1
# 配置 server_id,必须要重启,查看才生效
总结
1.客户端也受配置文件影响 [mysql] [client]
2.客户端配置以后可以不重启
3.服务端配置以后必须重启 [mysqld] [server]
4.企业一般配置
[root@db02 ~]# vim /etc/my.cnf
[mysqld]
socket=/tmp/mysql.sock
server_id=1
[mysql]
socket=/tmp/mysql.sock
MySQL 启动流程及配置管理的更多相关文章
- atitit.流程标准化--- mysql启动不起来的排查流程attilax总结
atitit.流程标准化--- mysql启动不起来的排查流程attilax总结 1. mysql的启动日志文件 1 2. console方式 1 3. 安装为服务 1 3.1. 使用默认配置文件 1 ...
- MyCat源码分析系列之——配置信息和启动流程
更多MyCat源码分析,请戳MyCat源码分析系列 MyCat配置信息 除了一些默认的配置参数,大多数的MyCat配置信息是通过读取若干.xml/.properties文件获取的,主要包括: 1)se ...
- broadcom代码中httpd进程启动流程介绍
Broadcom代码中包含WEB配置管理媒介, 在嵌入式WEB服务器min_httpd基础上改造实现, 其bin名称为httpd,此httpd可以由管理进程有连接后动态启动,并且当一段时间内没有连接到 ...
- mysql 执行流程
mysql 执行流程 我们可以人为的把mysql 的主要功能分为如下模块. 1.初始化模块 mysql启动的时候执行初始化工作,如读取配置文件,分配一些全局变量(sql_model,catch buf ...
- 深度解析MySQL启动时报“The server quit without updating PID file”错误的原因
很多童鞋在启动mysql的时候,碰到过这个错误, 首先,澄清一点,出现这个错误的前提是:通过服务脚本来启动mysql.通过mysqld_safe或mysqld启动mysql实例并不会报这个错误. 那么 ...
- 05、NetCore2.0依赖注入(DI)之Web应用启动流程管理
05.NetCore2.0依赖注入(DI)之Web应用启动流程管理 在一个Asp.net core 2.0 Web应用程序中,启动过程都做了些什么?NetCore2.0的依赖注入(DI)框架是如何管理 ...
- mysql -> 启动&多实例_03
常用的连接方式: 套接字: mysql -uroot -p123 -S /application/mysql/tmp/mysql.sock Tcp/Ip: mysql -uroot -p123 -h ...
- Flink 源码解析 —— Standalone Session Cluster 启动流程深度分析之 Job Manager 启动
Job Manager 启动 https://t.zsxq.com/AurR3rN 博客 1.Flink 从0到1学习 -- Apache Flink 介绍 2.Flink 从0到1学习 -- Mac ...
- Flink 源码解析 —— Standalone session 模式启动流程
Standalone session 模式启动流程 https://t.zsxq.com/EemAEIi 博客 1.Flink 从0到1学习 -- Apache Flink 介绍 2.Flink 从0 ...
随机推荐
- 【Oracle】整库导出后怎么恢复到指定用户的指定表
在导出的时候,整库导出 这里使用的是dba权限 $exp "'/ as sysdba'" file=full20180227.dmp log=exp_full20180227.lo ...
- Kafka 探险 - 生产者源码分析: 核心组件
这个 Kafka 的专题,我会从系统整体架构,设计到代码落地.和大家一起杠源码,学技巧,涨知识.希望大家持续关注一起见证成长! 我相信:技术的道路,十年如一日!十年磨一剑! 往期文章 Kafka 探险 ...
- fsutil比较有用的几个命令
Fsutil:fsinfo 主要由专业支持者使用.列出所有驱动器,查询驱动器类型,查询卷信息,查询特定的 卷信息或文件系统统计信息. 语法参数 drives 列出计算机中所有的驱动器. drivety ...
- 微信登录4-开发回调URL
一.准备 1.引入pom依赖 在要使用HttpClient的项目中加入依赖 <!--httpclient--> <dependency> <groupId>org. ...
- 全栈性能测试修炼宝典-JMeter实战笔记(三)
JMeter体系结构 简介 JMeter是一款开源桌面应用软件,可用来模拟用户负载来完成性能测试工作. JMeter体系结构 X1~X5是负载模拟的一个过程,使用这些组件来完成负载的模拟 Y1:包含的 ...
- linux Jumpserver跳板机 /堡垒机详细部署
关于跳板机/堡垒机的介绍: 跳板机的定义: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作: 跳板机缺点: 没有实现对运维人员操作行为的 ...
- TCP 延迟
https://mp.weixin.qq.com/s/fKWJrDNSAZjLsyobolIQKw 直击案发现场!TCP 10倍延迟的真相是? 原创 蛰剑 阿里技术 2019-11-01
- (转载)微软数据挖掘算法:Microsoft 时序算法之结果预测及其彩票预测(6)
前言 本篇我们将总结的算法为Microsoft时序算法的结果预测值,是上一篇文章微软数据挖掘算法:Microsoft 时序算法(5)的一个总结,上一篇我们已经基于微软案例数据库的销售历史信息表,利用M ...
- Java Socket实战之七 使用Socket通信传输文件
http://blog.csdn.net/kongxx/article/details/7319410 package com.googlecode.garbagecan.test.socket.ni ...
- FFT,NTT 笔记
FFT 简介 FFT是干啥的?它是用来加速多项式乘法的.我们平时经常求多项式乘法,比如\((x+1)(x+3)=(x^2+4x+3)\).假设两个式子都是\(n\)项(不足的补0),那朴素的算法是\( ...