mysql启动

来源:互联网 发布:app录像软件 编辑:程序博客网 时间:2024/05/13 17:22
Mysql启动配置文件夹在路径
Mysql启动方式
Mysql启动的内部流程
常见启动故障及分析过程


Mysql启动配置文件加载路径
    Mysql可以读取到的配置文件
        /etc/my.cnf
        /etc/mysql/my.cnf
        /usr/local/mysql/etc/my.cnf
        ~/.my.cnf
(mysqld --verbose --help | grep my.cnf可以看到)

--defaults-file指定读取配置文件,不再读取其他配置文件
--defaults-extra-file指定mysqld在读取完指定配置文件后,还需要读取用户指定的特殊配置文件(比如把密码写在一个别的地方)
--print-defaults输出“现在(?根据我的实验,应该不是现在,而是按照读取顺序读取到的)”mysqld指定的参数
  1. [root@slave lib]# /usr/local/mysql/bin/mysqld --print-defaults
  2. /usr/local/mysql/bin/mysqld would have been started with the following arguments:
  3. --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --user=mysql --symbolic-links=0
mysqld --defaults-file=/data/mysqldata/3306/my.cnf --print-defaults
  1. [root@slave lib]# /usr/local/mysql/bin/mysqld --defaults-file=/data/mysqldata/3306/my.cnf --print-defaults
  2. /usr/local/mysql/bin/mysqld would have been started with the following arguments:
  3. --port=3306 --user=mysql --socket=/data/mysqldata/3306/mysql.sock --pid-file=/data/mysqldata/3306/mysql.pid --basedir=/usr/local/mysql --datadir=/data/mysqldata/3306/data --tmpdir=/data/mysqldata/3306/tmp --open_files_limit=10240 --explicit_defaults_for_timestamp --sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES --max_allowed_packet=256M --max_heap_table_size=256M --net_buffer_length=8k --sort_buffer_size=2M --join_buffer_size=4M --read_buffer_size=2M --read_rnd_buffer_size=16M --log-bin=/data/mysqldata/3306/binlog/mysql-bin --binlog_cache_size=32M --max_binlog_cache_size=512M --max_binlog_size=512M --binlog_format=mixed --log_output=FILE --log-error=../mysql-error.log --slow_query_log=1 --slow_query_log_file=../slow_query.log --general_log=0 --general_log_file=../general_query.log --expire-logs-days=14 --innodb_data_file_path=ibdata1:2048M:autoextend --innodb_log_file_size=256M --innodb_log_files_in_group=3 --innodb_buffer_pool_size=1024M

Mysql启动方式
标准方式【这两种相等】
service mysqld start
/etc/init.d/mysqld start
说明mysqld来自:
cp /usr/local/mysql/support-file/mysql.server   /etc/init.d/mysqld

以下三种方式,可用于启动多实例:
mysqld_safe --defaults-file=  &
mysqld --defaults-file=  &
mysqld_multi start 3306

几种启动方式的关系
service mysqld start  调用 ---> mysqld_safe 调用 ---> mysqld    

mysqld_multi可以调用mysqld_safe再调用mysqld,或者只用调用mysqld
         mysqld_multi  
          |                 | 
mysqld_safe    mysqld
          |
mysqld

Mysqld是Mysql的一个核心程序,用于管理Mysql的数据库文件及用户的请求,同时也是参数最多的
Mysqld可以读取配置文件中的“[mysqld]”部分

Mysqld_safe
可以读取的配置文件部分[mysqld],[server],[mysqld_safe]
调用的mysqld是可以在[mysqld_safe]中用--mysqld,--mysqld-version指定

[mysqld_safe]比较有用的参数:
--mysqld --myqld-version
--open-file-limit
--nice=prority
--malloc-lib
    Malloc-lib=/path/libtcmalloc.so
启动方式
/path/mysqld_safe --defaults-file=  &


Mysql.server
用于启动和关闭mysqld(单实力环境)
    在support-file目录里,如果使用二进制安装:/etc/init.d/mysql[d]
    可以读取的配置文件中 [mysqld.server] , [mysqld] 这两部分
    默认使用--use-mysqld-safe 调用 mysqld_safe 启动 mysqld
调用方式
 /usr/local/mysql/support-file/mysql.server stop | start | restart


Mysqld_multi
用于管理多实例启动的一个脚本
    读取配置文件中的 [mysqld_multi] , [mysqldN]  N需要是一个整数,建议使用端口号表示,该部分配置会覆盖 [mysqld] 部分中的配置
    [mysqld_multi]参考
        [mysqld_multi]
        mysqld=/usr/local/bin/mysqld_safe
        mysqladmin=/usr/lcoal/bin/mysqladmin
        user= multi_admin用户名
        password= multipassword密码

Mysqld_multi
    [mysqld3306]
    port=3306
    datadir=/data/mysql/mysql_3306/data
    socket=/tmp/mysql_3306.sock
    server-id=203306
    log-bin=/data/mysql/mysql_3306/logs/myql-bin
 
调用方式   
Mysqld_multi {start | stop | reload | report | [ GNR [,GNR] ...]

假如
[mysqld]
innodb_buffer_pool_size=100M
[mysqld3308]
innodb_buffer_pool_size=1G
那么启动后是1G,反过来[mysql3308]在前,[mysqld]在后,也是1G

mysqld_multi start 1,2,3 或 1-3


Mysql5.6新特性之一
Easy Change innodb log file(5.6.8 later)
    关闭Mysql并确认没有报错
    更改配置文件innodb_log_file_size或是更改log文件个数:innodb_log_file_in_group
    启动Mysql即可

要不就得innodbackupex 备份,回复prepare前把log大小改了
0 0