MySQL Tools 之 mysql.server 脚本运用
MySQL distributions on Unix and Unix-like system include a script named mysql.server, which starts the MySQL server using mysqld_safe. It can be used on systems such as Linux and Solaris that use System V-style run directories to start and stop system services. It is also used by the macOS Startup Item for MySQL.
mysql.server是官方针对Unix
和类Unix
系统二进制版本安装包当中包含的脚本,它是一个SHELL
脚本,被用来启动、查看和停止mysqld
进程服务。mysql.server其实上调用的是mysqld_safe
命令。
更详细的关于mysql.server的说明可以参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/mysql-server.html
本文使用的MySQL版本为5.7.21
。
# mysqld -V
mysqld Ver 5.7.21 for linux-glibc2.12 on x86_64 (MySQL Community Server (GPL))
- 如果使用
RPM
包的安装方式进行安装MySQL后,mysql.server这个脚本会被放在/etc/init.d/
下面,并且命名为mysqld
或者mysql
; - 如果是二进制包的安装方式,则mysql.server放在二进制安装目录下
support-files
的目录下面。
主要用法
- 1、启动
mysqld
服务
# mysql.server start
- 2、查看
mysqld
状态
# mysql.server status
- 3、停止
mysqld
服务
# mysql.server stop
- 4、重启
mysqld
服务
# mysql.server restart
- 5、平滑重启
mysqld
服务
# mysql.server reload
自定义
mysql.server是一个SHELL
脚本,其中有一些选项在没有明确指定的时候是有默认值,比如basedir
默认路径为/usr/local/mysql
等。通常以二进制包进行安装的时候,有些路径需要自定义,否则mysql.server无法找到相应的路径,也就无法完成mysqld
进程服务的管理。
可以通过VIM
等编辑器对mysql.server脚本进行编辑与修改。
主要修改选项路径如下:
1、添加basedir、datadir和config配置
大概在mysql.server脚本的43行处。
43 # If you change base dir, you must also change datadir. These may get
44 # overwritten by settings in the MySQL configuration files.
45
46 basedir= #二进制包安装的目录
47 datadir= #数据文件所在的目录
48 config= #此处为新增选项,配置需要使用的参数文件路径
此处可以修改为:
basedir=/usr/local/mysql5.7
datadir=/data/mysql/data
config=/data/mysql/3306/my.cnf
2、指定mysqld的PID文件
61 # The following variables are only set for letting mysql.server find things.
62
63 # Set some defaults
64 mysqld_pid_file_path=
此处可以修改为:
61 # The following variables are only set for letting mysql.server find things.
62
63 # Set some defaults
64 mysqld_pid_file_path=/data/mysql/3306/mysql.pid
3、注释解析默认参数文件方法
mysqld
启动时,默认寻找的参数文件路径如下:
/etc/my.cnf ---> /etc/mysql/my.cnf ---> /usr/local/mysql/etc/my.cnf ---> ~/.my.cnf
而mysql.server脚本默认会按照这个顺序去解析(通过my_print_defaults
这个命令实现)这几个参数文件,而为了防止mysql.server去解析这几个参数文件当中的参数选项,这时还是通过修改mysql.server脚本选项来实现,以便于使用自定义的参数文件。
大概在mysql.server脚本的240行处。
229 #
230 # Read defaults file from 'basedir'. If there is no defaults file there
231 # check if it's in the old (depricated) place (datadir) and read it from there
232 #
233
234 extra_args=""
235 if test -r "$basedir/my.cnf"
236 then
237 extra_args="-e $basedir/my.cnf"
238 fi
239
240 parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`
可以注释240行,如下:
…………省略…………
237 extra_args="-e $basedir/my.cnf"
238 fi
239
240 # 注释这行
240 # parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`
这样当通过mysql.server来启动mysqld
时就不会去解析默认路径下的参数文件
4、修改mysqld_safe启动时的参数文件
默认情况下mysqld_safe启动时是没有选项--defaults-file
指定参数的。可以添加这个选项指定所需的参数路径。
大概在mysql.server脚本的264行处。
264 # Give extra arguments to mysqld with the my.cnf file. This script
265 # may be overwritten at next upgrade.
266 $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
267 wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
268
可以添加conf
配置:
# 此处配置的参数文件为前面新增选项的参数文件
266 $bindir/mysqld_safe --defaults-file="$config" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
至此,现在可以通过mysql.server来管理mysqld
进程服务的状态了,也可以放在/etc/init.d/
下当作系统服务进行管理,当然前提是这个脚本必须具备可执行权限。
参考
☆〖本人水平有限,文中如有错误还请留言批评指正!〗☆
MySQL Tools 之 mysql.server 脚本运用的更多相关文章
- Windows Server 脚本记录Apache、Mysql 每分钟并发数
打开windows server 计划任务管理器.定时执行如下的Bat脚本即可. 在D盘新建一个monitor文件夹,创建ApacheMysql.bat文件.内容如下: 在monitor文件夹中新建m ...
- CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动
CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动1.关于mysql?MySQL是一个关系型数据库管理 ...
- 用户中心mysql数据库表结构的脚本
/* Navicat MySQL Data Transfer Source Server : rm-m5e3xn7k26i026e75o.mysql.rds.aliyuncs.com Source S ...
- 【mysql】之MySQL导入sql脚本错误:2006 - MySQL server has gone away
到如一些小脚本很少报错,但最近导入一个10+M的SQL脚本,却重复报错: Error occured at:2014-03-24 11:42:24Line no.:85Error Code: 2006 ...
- MySQL分库分表备份脚本
MySQL分库备份脚本 #脚本详细内容 [root@db02 scripts]# cat /server/scripts/Store_backup.sh #!/bin/sh MYUSER=root M ...
- 安装MySQL -- SuSE Linux Enterprise Server 11 SP3
1.准备工作从MySQL官网上分别下载mysql服务器端于客户端包: MySQL-server-5.5.49-1.sles11.x86.rpm MySQL-client-5.5.49-1.sles11 ...
- 解决mysql漏洞 Oracle MySQL Server远程安全漏洞(CVE-2015-0411)
有时候会检测到服务器有很多漏洞,而大部分漏洞都是由于服务的版本过低的原因,因为官网出现漏洞就会发布新版本来修复这个漏洞,所以一般情况下,我们只需要对相应的软件包进行升级到安全版本即可. 通过查阅官网信 ...
- MySQL单机单实例安装脚本(转载)
说明:使用mysql generic tar.gz包快速安装mysql 三个文件installation_of_single_mysql.sh.template_install-my.cnf.mysq ...
- MySQL源码安装一键脚本
#红色部分根据自己的需求来定义#!/bin/bash #卸载系统自带的Mysql /bin/rpm -e $(/bin/rpm -qa | grep mysql|xargs) --nodeps /bi ...
随机推荐
- mysql connector c++ 1.1 安装
mysql connector c++ 1.1 安装 前提:boost安装完毕 注意:8.0版本的源码用此方法,编译不过.所以要编译8.0的同学请绕行. 1,下载源码 git clone https: ...
- cobalt strike入门和防护
1.入门: https://blog.csdn.net/localhost01/article/details/86741124 2.cs的防护: 由于关乎渗透人员自身的安全,建议大家好好看看,这里贴 ...
- 如何使用DOM4j+xpath 解析
1.首先去dom4j官网下载一个对应版本的JAR包 XML的配置文件 导入一个config.xml文件 下面是dom4j+xpath解析XML文件
- MD文件图片base64自动编码
看工具链接请直接将文章拉到最后.. 概述 不知道你在使用markdown写文章的时候有没有遇到过这样的烦恼, 文件写完了, 想将写完的文章粘贴到博客的时候, 你满心欢喜的复制粘贴, 但是发现图片根本复 ...
- 扎西平措 201571030332《面向对象程序设计 Java 》第一周学习总结
<面向对象程序设计(java)>第一周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 ...
- HTML与CSS学习笔记(4)
1.浏览器前缀 浏览器厂商以前就一直在实时CSS3,但它还未成为真正的标准.为此,当有一些CSS3样式与法还在波动的时候,他们提出了针对不同浏览器的前缀,来解决兼容性问题. 即:CSS3去兼容不同的浏 ...
- layUI学习第一日:myeclipse中使用layUI
第一步:下载layUI,网址:https://www.layui.com/ 第二步:查看layUI解压后的内容,和官网解释各个文件夹的内容 第三部:在myeclipse中新建一个web project ...
- 在线web软件
编程 Compiler Explorer SharpLab 着色器 shadertoy 腾讯文档 word excel ppt ... 思维导图 MindMaster ProcessOn 流程图. ...
- 一种单机支持 JavaWeb 容器万级并发的设想
当前的大部分 Java web 容器基于 Bio 线程模型,例如常见的 tomcat ,默认 200 线程,即 200 连接.由此带来的问题是,如果想提高并发,或者提高资源利用率,就得加大线程数. 如 ...
- Python连载34-信息队列
一.生产者消费者模型 1.一个模型.可以用来搭建消息队列:queue是一个用来存放变量的数据结构,特点是:先进先出 import threading import time import queue ...