msyql四种启动方式

  1. 云栖社区>
  2. 博客>
  3. 正文

msyql四种启动方式

memos1 浏览759

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