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 启动流程及配置管理的更多相关文章

  1. atitit.流程标准化--- mysql启动不起来的排查流程attilax总结

    atitit.流程标准化--- mysql启动不起来的排查流程attilax总结 1. mysql的启动日志文件 1 2. console方式 1 3. 安装为服务 1 3.1. 使用默认配置文件 1 ...

  2. MyCat源码分析系列之——配置信息和启动流程

    更多MyCat源码分析,请戳MyCat源码分析系列 MyCat配置信息 除了一些默认的配置参数,大多数的MyCat配置信息是通过读取若干.xml/.properties文件获取的,主要包括: 1)se ...

  3. broadcom代码中httpd进程启动流程介绍

    Broadcom代码中包含WEB配置管理媒介, 在嵌入式WEB服务器min_httpd基础上改造实现, 其bin名称为httpd,此httpd可以由管理进程有连接后动态启动,并且当一段时间内没有连接到 ...

  4. mysql 执行流程

    mysql 执行流程 我们可以人为的把mysql 的主要功能分为如下模块. 1.初始化模块 mysql启动的时候执行初始化工作,如读取配置文件,分配一些全局变量(sql_model,catch buf ...

  5. 深度解析MySQL启动时报“The server quit without updating PID file”错误的原因

    很多童鞋在启动mysql的时候,碰到过这个错误, 首先,澄清一点,出现这个错误的前提是:通过服务脚本来启动mysql.通过mysqld_safe或mysqld启动mysql实例并不会报这个错误. 那么 ...

  6. 05、NetCore2.0依赖注入(DI)之Web应用启动流程管理

    05.NetCore2.0依赖注入(DI)之Web应用启动流程管理 在一个Asp.net core 2.0 Web应用程序中,启动过程都做了些什么?NetCore2.0的依赖注入(DI)框架是如何管理 ...

  7. mysql -> 启动&多实例_03

    常用的连接方式: 套接字: mysql -uroot -p123 -S /application/mysql/tmp/mysql.sock Tcp/Ip: mysql -uroot -p123 -h ...

  8. Flink 源码解析 —— Standalone Session Cluster 启动流程深度分析之 Job Manager 启动

    Job Manager 启动 https://t.zsxq.com/AurR3rN 博客 1.Flink 从0到1学习 -- Apache Flink 介绍 2.Flink 从0到1学习 -- Mac ...

  9. Flink 源码解析 —— Standalone session 模式启动流程

    Standalone session 模式启动流程 https://t.zsxq.com/EemAEIi 博客 1.Flink 从0到1学习 -- Apache Flink 介绍 2.Flink 从0 ...

随机推荐

  1. Angular学习资料大全和常用语法汇总(让后端程序员轻松上手)

    前言: 首先为什么要写这样的一篇文章呢?主要是因为前段时间写过一些关于Angualr的相关实战文章,有些爱学习的小伙伴对这方面比较感兴趣,但是又不知道该怎么入手(因为认识我的大多数小伙伴都是后端的同学 ...

  2. libuv中实现tcp服务器

    目录 1.说明 2.libuv的tcp server 3.API简介 3.1.uv_tcp_init 3.2.uv_ip4_addr 3.3.uv_tcp_bind 3.4.uv_listen 3.5 ...

  3. (转载)微软数据挖掘算法:Microsoft 神经网络分析算法原理篇(9)

    前言 本篇文章继续我们的微软挖掘系列算法总结,前几篇文章已经将相关的主要算法做了详细的介绍,我为了展示方便,特地的整理了一个目录提纲篇:大数据时代:深入浅出微软数据挖掘算法总结连载,有兴趣的童鞋可以点 ...

  4. BZOJ1031

    前一段时间终于看明白了后缀数组,记录一下主要的做过的题目,主要的按照黄学长的BLOG作的,主要是为了记模板.原理还是上网自己查一下吧!代码会加简单的注释. ********************** ...

  5. Docker容器启动Mysql,Docker实现Mysql主从,读写分离

    Docker容器启动Mysql,Docker实现Mysql主从,读写分离 一.Docker文件编排 二.配置主从复制 2.1 配置master 2.2 配置slave 三.验证主从复制 3.1 mas ...

  6. JavaScript——DOM操作

    DOM-(Document Object Model)即文档对象模型. JavaScript可以动态地修改DOM,从而来修改HTML的内容. 查找HTML元素 通过 id 找到 HTML 元素 通过标 ...

  7. 提高 Kafka 吞吐量

    提高 Kafka 吞吐量 1.了解分区的数据速率,以确保提供合适的数据保存空间 2.除非您有其他架构上的需要,否则在写 Topic 时请使用随机分区 3.如果 Consumers 运行的是比 Kafk ...

  8. CentOS 安装TFTP

    1.当然是使用yum安装最直接,一共会安装3个东东tftp.i386tftp-server.i386xinetd.i386[root@localhost CentOS]# yum -y install ...

  9. Linux常用习惯和技巧

    1.如果有些命令在执行时不断地在屏幕上输出信息,影响到后续命令的输入,则可以在执行命令时在末尾添加上一个&符号,这样命令将进入系统后台来执行.

  10. dedecms织梦的安全问题解决办法

    很多新手用户在使用织梦CMS程序过程中,难免会碰到挂马中毒现象,所以事先我们要对网站及服务器安全做好预防备份处理. 织梦作为国内第一大开源免费CMS程序,无疑是很多HACK研究的对象,在本身不安全的互 ...