设为首页 收藏本站
查看: 349|回复: 0

[经验分享] Mysql的启动分析

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-8 08:53:23 | 显示全部楼层 |阅读模式
一、Mysql启动配置文件的加载路径

# mysqldump --help| egrep -B2  "/etc/my.cnf" 或者
# mysqld --verbose --help |grep my.cnf


Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

--后面的变量覆盖前面的变量

参数指定:
--defaults-file: 指定只读取该配置文件,不在读取其他的配置文件
--print-defaults 输出现在mysqld指定的参数
--defaults-extra-file :指定myqld读取完指定的配置文件之后,还需要读取用户指定的特殊的配置文件


# mysqld --print-defaults
mysqld would have been started with the following arguments:
--user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql_3306 --port=3306 --socket=/tmp/mysql_3306.sock --event_scheduler=0 --interactive_timeout=300 --wait_timeout=300 --character-set-server=utf8 --open_files_limit=65535 --max_connections=100 --max_connect_errors=100000 --skip-name-resolve=1 --log-output=file --slow_query_log=1 --slow_query_log_file=slow.log --log-error=error.log --log_warnings=2 --pid-file=mysql.pid --long_query_time=1 --log-slow-slave-statements=1 --binlog_format=row --server-id=883306 --log-bin=mysql-bin --binlog_cache_size=4M --max_binlog_size=1G --max_binlog_cache_size=2G --sync_binlog=0 --expire_logs_days=10 --skip_slave_start=1 --max_relay_log_size=1G --relay_log_purge=1 --relay_log_recovery=1 --log_slave_updates --explicit_defaults_for_timestamp=true --table_open_cache=2048 --table_definition_cache=2048 --table_open_cache=2048 --max_heap_table_size=96M --sort_buffer_size=2M --join_buffer_size=2M --thread_cache_size=256 --query_cache_size=0 --query_cache_type=0 --query_cache_limit=256K --query_cache_min_res_unit=512 --thread_stack=192K --tmp_table_size=96M --key_buffer_size=8M --read_buffer_size=2M --read_rnd_buffer_size=16M --bulk_insert_buffer_size=32M --myisam_sort_buffer_size=128M --myisam_max_sort_file_size=100M --myisam_repair_threads=1 --innodb_buffer_pool_size=100M --innodb_buffer_pool_instances=1 --innodb_data_file_path=ibdata1:1G:autoextend --innodb_flush_log_at_trx_commit=2 --innodb_log_buffer_size=64M --innodb_log_file_size=500M --innodb_log_files_in_group=3 --innodb_max_dirty_pages_pct=50 --innodb_file_per_table=1 --innodb_rollback_on_timeout --innodb_status_file=1 --innodb_io_capacity=2000 --transaction_isolation=READ-COMMITTED --innodb_flush_method=O_DIRECT



二、Mysql的启动方式
1、标准方式
service mysqld start|stop|restart|status
或者/etc/init.d/mysqld  start|stop|restart|status
2、mysqld_safe --defaults-file=/path/my.cnf &
3、mysqld --defaults-file=/path/my.cnf &
4、mysqld_multi start 3306

mysql启动方式之间的关系


1、mysqld启动分析

# mysqld --verbose --help   #查看该版本相应的参数
mysqld是mysql的一个核心程序,用于管理MySQL数据库文件以及用户的请求操作,同时参数也是最多的,mysqld_safe,mysql.server,mysqld_multi最终都是调用mysqld命令
mysqld读取配置文件中[mysqld]部分的参数

启动方式
mysqld &

关闭
mysqladmin shutdown


2、mysqld_safe启动方式

可以读取配置部分[mysqld]、[mysqld_safe],[mysqld_safe]是最后加载的,[mysqld_safe] 参数的优先级是最高的,会覆盖[mysqld]的中部分
可以在[mysqld_safe]中用--mysqld,--mysqld-version指定调用的mysqld
[mysqld_safe]比较有用的参数
--mysqld  --mysqld-version
--open-file-limit
--nice=prority
--malloc-lib
        malloc-lib=/path/libtcmallloc.so
启动方式:
mysqld_safe --defaults-file=/etc/my.cnf &



3、mysql.server
用于启动和关闭mysqld(单实例环境)
源码版本和二进制版本该文件在support-files目录,cp support-file/mysql.server /etc/init.d/mysqld
chkconfig  mysqld on
可以读取配置文件中的[mysql.server](不常见),[mysqld]这两部分配置
默认使用--user-mysqld-safe调用mysqld-safe启动mysqld
调用方式
service mysqld stop|start|restart


4、mysqld_multi启动方式
[mysqld_multi]
用于管理文件中[mysqld_multi],[mysqldN],N需要一个整数,建议用端口号表示,该部分配置会覆盖[mysqld]部分中的配置

[mysqld_multi]参考
basedir=/usr/local/mysql/
mysqld=/usr/local/mysql/bin/mysqld_safe
mysqladmin=/usr/local/mysql/bin/mysqladmin
user=multi-admin
password=multipass

定义一个用户,这个用户是可以连到mysql里面 ,mysqladmin shutdown/ping


[mysqld3306]
port=3306
server-id=883306
#binlog-do-db=database02
basedir= /usr/local/mysql
datadir = /data/mysql/mysql_3306
socket = /tmp/mysql_3306.sock
log-bin=/data/mysql_3306/logs/mysql-bin


调用方式
mysqld_multi {start|stop|reload|report} [GNR,[,GNR]...]

mysqld_multi start 1-3
mysqld_multi start 1,3,4,6



三、MySQL启动流程
启动过程
        加载配置文件
        检查权限(目录权限)
        加载表空间(undo,redo),就绪
        等待接客

分析关闭过程
        关闭mysql的流程
        mysqld 接到single 0的信号
        清场处理,关闭所有连接,刷新内存里的数据
        close


四、启动故障常见分析
        启动过程分析
                加载配置文件(启动初始化)
                根据配置文件读取数据文件(就绪)
                启动监听进程(开始接客)
               
1、加载配置文件,参数名写错了
2、文件或者目录的权限不对
3、文件大小不对,改了iddata
4、端口被占用

启动不起来,看错误日志

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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-148229-1-1.html 上篇帖子: logstash推送mysql慢查询日志 下篇帖子: 源码编译安装Percona-Server-5.5.33
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表