1 mysql默认启动配置文件my.cnf顺序
第一步:/etc/my.cnf
第二步:/etc/mysql/my.cnf
第三步:/usr/local/mysql/etc/my.cnf
第四步:~/.my.cnf
可以通过命令查看加载顺序:
[root@Darren2 ~]# which mysqld
/usr/local/mysql/bin/mysqld
[root@Darren2 ~]# /usr/local/mysql/bin/mysqld --verbose --help|grep -A 1 'Default options'
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
其中第三个读取的位置/usr/local/mysql/etc/my.cnf与你的basedir目录有关,不是都一样的。如果初始化或者启动的时候指定--defaults-file路径,则不会按照上面顺序读取,只读取指定路径。
如指定位置启动服务: /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=root &,只会加载/etc/my.cnf配置文件,不在加载其他配置文件。
2 mysql的四种启动方式
(1)/etc/init.d/mysqld 即mysql.server
/etc/init.d/mysqld这个启动脚本时从/usr/local/mysql/support-files/mysql.server复制的;
可以读取配置文件中[mysqld],[mysql.server];
查看mysql.server这个脚本内容可以发现,mysqld服务启动实质还是要调用mysqld_safe;
启动命令:/etc/init.d/mysqld start
关闭命令:/etc/init.d/mysqld stop
(2)/usr/local/mysql/bin/mysqld_safe
mysqld_safe 是一个启动脚本,用它启动实质是启动mysqld守护进程,如果mysqld 不存在了,自动把mysqld拉起来,用mysqld_safe启动会输出的信息: mysqld_safe Starting mysqld daemon with databases from /data/mysql/mysql3306/data
mysqld_safe可以读取my.cnf文件的[mysqld],[mysqld_safe],[server],[safe_mysqld]中配置;
调用mysqld是可以再[mysqld_safe]中用--mysqld,--mysqld-version指定;
单实例启动和关闭 :
启动命令: /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
关闭命令:/usr/local/mysql/bin/mysqladmin -uroot -p147258 shutdown
多实例启动和关闭 :
启动命令:/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql3306/my3306.cnf &
关闭命令:/usr/local/mysql/bin/mysqladmin -uroot -p147258 -S /tmp/mysql3306.sock shutdown
启动命令:/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql3307/my3307.cnf &
关闭命令:/usr/local/mysql/bin/mysqladmin -uroot -p147258 -S /tmp/mysql3307.sock shutdown
(3)/usr/local/mysql/bin/mysqld
mysqld是mysql的一个核心程序,用于管理mysql的数据库文件及用户的请求操作,同时也是参数最多的,可以读取配置文件中的[mysqld]部分;
#查看该版本相应的参数:
mysqld --verbose --help
单实例启动和关闭:
启动命令:/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &
关闭命令:[root@Darren1 ~]# /usr/local/mysql/bin/mysqladmin -uroot -p147258 shutdown
多实例启动和关闭 :
启动命令: /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf
关闭命令:/usr/local/mysql/bin/mysqladmin -uroot -p147258 -S /tmp/mysql3306.sock shutdown
启动命令: /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3307/my3307.cnf
关闭命令:/usr/local/mysql/bin/mysqladmin -uroot -p147258 -S /tmp/mysql3307.sock shutdown
(4)/usr/local/mysql/bin/mysqld_multi
mysqld_multi是用来管理多实例的一个脚本;
可以读取[mysqld_multi],[msyqldN]其中N是一个整数,建议用端口号表示,该部分配置会覆盖[mysqld]中的配置;
如
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
[mysqld3306]
basedir= /usr/local/mysql-5.5.37
[mysqld3307]
innodb_buffer_pool_size = 2G
innodb_flush_log_at_trx_commit = 2