• 数据库的启动流程和关闭介绍/mysql初始化配置文件


    一 启动

    数据库启动的最终结果就是实列的启动,就是守护进程mysqld启动,还有线程,预分配的内存结构

    我们说musqld不是自助启动的,他是mysqld_safe这个脚本拉起来的

    mysql.server是我们更加方便管理服务的一个脚本(sys-v),程序加上start就可以启动了,还可以设置开机自启等,方便但是不能定制额外的控制,比如分配的内存大小等

    对于单机mysql来讲,建议使用mysql.server方便管理

    对于多实例(一台机器多个实例)来讲,mysqld_safe等推荐

    二 关闭

    (这里的/etc/init.d/mysqld 是指mysql解压目录下拷贝过去的文件cp support-files/mysql.server /etc/init.dmysqld)

    启动:

    /etc/init.d/mysqld start  ----->    mysqld_dafe ----->     mysqld

    关闭:

    /etc/init.d/mysqld stop  -----> mysqladmin -uroot -pshutdown

                  servive mysql stop

                  kill -9

    # 第三种为利用系统进程管理命令关闭mysql
    -kill pid                              #<== 这里的pid 为数据库服务对应的进程号
    -killall mysqld                    # <== 这里的mysqld 是数据库服务对应的进程名字
    - pkill mysqld                      # <== 这里的mysqld 是数据库服务对应的进程名字
    野蛮kill掉数据库案例
    https://blog.51cto.com/oldboy/1431161
    https://blog.51cto.com/oldboy/1431172

    二. mysql初始化配置文件

    思考 :

      1.我要启动,我的程序在哪里

      2.我启动区哪里找数据

      3.我启动时候的状态信息系和错误信息放在哪里

      4.启动的时候给了我多少内存

      5. 等等

    针对以上问题解决方案:

      1.可通过预编译的选项 也就是cmake,硬编译到编程中

      2. 命令行选项 设置初始化配置

        1.--skip-grant-tables

        2.--skip-networking

        3.--socket                 # socket文件想要生成的位置

    # 先关闭服务
    # 列 mysql_safe --socket =  /tmp/mysql.sock
    # 启动实列的一个脚本  实列启动socket写到tmp目录下 后台运行

    如果命令行和预编译是设置了相同参数,以命令行为为准

    注意:

    更改完后登陆会报错

    启动时人为干预了某个参数,在连接时需要用到这些参数是

    mysql -eroot -p1 -s /tmp/mysql.sock

    3.初始化配置文件

      配置文件的读取顺序

    """
    /etc/my.cnf      默认第一个读取
    
    /etc/mysql/my.cnf
    
    $ MYSQL_HOME/my.cnf 前提是在环境变量中定义了MYSQL_HOME变量
    
    
    defaults-extra-file=/tmp/a.txt  除了以上的配置文件中 额外加载外部的配置
    
    ~/.my.cnf     隐藏文件 家目录
    
    从上到下读取
    """

    mysql_safe的参数 --defaults-file

    如果使用 ./bin/mysqld_safe守护进程启动 mysql数据库时,使用了 --defaults-file=< 配置文件的绝对领 >> 参数,

    这时只会使用这个参数指定的陪住文件,以上任何配置文件都不在读取了

    mysqld_safe --defaults-file=/tmp/a.txt &

    思考:

    """
    cmake: socket=/appliscation/mysql/tmp/mysql.sock
    命令行:  --socket=/tmp/mysql.sock
    配置文件: /etc/my.cnf   socket=/opt/mysql.sock
    --defaults-file=/tmp/a.txt   socket=/tmp/test.sock
    """

    问:

    socket生成在哪里

    命令行 /tmp/mysql.sock

    结论:

    命令行>配置文件(--defaults-file也是配置文件)>cmake

    用的最多的是配置文件,建议不要设置多个配置文件,一个就够了,多了乱

  • 相关阅读:
    Linux设备驱动
    Android:注册登录
    Android:ZoomControls控件
    每日英语:Some Chinese Students Stay Home to Get Ahead
    每日英语:March Remembers King's Dream
    每日英语:Hong Kong Lifestyle Strains City's Resources
    每日英语:Prosecutors Wrap Up Case Against Bo
    每日英语:He Diets, She Diets: More Weight-Loss Plans Target Men
    每日英语:First Offer: Take It Or Keep Waiting?
    每日英语:Does Evolution Want Us To Be Unhappy?
  • 原文地址:https://www.cnblogs.com/whc6/p/13959730.html
Copyright © 2020-2023  润新知