MySQL Server和Server启动程序(二)

news2024/12/24 22:03:32

 mysql.server — MySQL Server启动脚本

Unix和类Unix系统上的MySQL发行版包括一个名为MySQL.server的脚本,该脚本使用mysqld_safe启动MySQL服务器。它可以在Linux和Solaris等系统上使用,这些系统使用System V风格的运行目录来启动和停止系统服务。它也被用于MySQL的macOS启动项使用。

mysql.server是mysql源代码树中使用的脚本名称。安装的名称可能不同(例如,mysqld或mysql)。在下面的讨论中,根据您的系统调整名称mysql.server。

注意:对于一些Linux平台,从RPM或Debian包安装MySQL包括对管理MySQL服务器启动和关闭的systemd支持。在这些平台上,没有安装mysql.server和mysqld_safe,因为它们是不必要的。

要使用mysql.server脚本手动启动或停止服务器,请使用start或stop参数从命令行调用它:

mysql.server start
mysql.server stop

mysql.server将位置更改为mysql安装目录,然后调用mysqld_safe。要以特定用户身份运行服务器,请在全局/etc/my.cnf选项文件的[mysqld]组中添加一个适当的用户选项。(如果您在非标准位置安装了mysql的二进制发行版,则可能必须编辑mysql.server。在运行mysqld_safe之前,请对其进行修改,将位置更改为正确的目录。如果您这样做,将来升级mysql时,您修改后的mysql.server版本可能会被覆盖;请复制您编辑后的版本,以便重新安装。)

mysql.server stop通过向服务器发送信号来停止服务器。您也可以通过执行mysqladmin shutdown手动停止服务器。

要在服务器上自动启动和停止MySQL,您必须将启动和停止命令添加到/etc/rc*文件中的适当位置:

  • 如果您使用Linux服务器RPM包(MySQL服务器VERSION.RPM)或本机Linux包安装,则MySQL.server脚本可能安装在/etc/init.d目录中,名称为mysqld或MySQL。
  • 如果您从源发行版安装MySQL,或者使用不自动安装MySQL.server的二进制发行版格式安装MySQL,则可以手动安装脚本。它可以在MySQL安装目录下的支持文件目录或MySQL源代码树中找到。将脚本复制到名为mysql的/etc/init.d目录中,并使其可执行:
cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql

安装脚本后,激活脚本以在系统启动时运行所需的命令取决于您的操作系统。在Linux上,您可以使用chkconfig:

chkconfig --add mysql

在一些Linux系统上,以下命令似乎也是完全启用mysql脚本所必需的:

chkconfig --level 345 mysql on
  • 在FreeBSD上,启动脚本通常应该放在/usr/local/etc/rc.d/中。将mysql.server脚本安装为/usr/local/etc/rc.d/mysql.server.sh以启用自动启动。rc(8)手册页指出,只有当脚本的基本名称与*.shshell文件名模式匹配时,才会执行该目录中的脚本。目录中存在的任何其他文件或目录都将被忽略。
  • 作为前面设置的替代方案,一些操作系统还使用/etc/rc.local或/etc/init.d/boot.local在启动时启动其他服务。要使用此方法启动MySQL,请将如下命令附加到相应的启动文件中:
/bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'

ysql.server从选项文件的[mysql.server]和[mysqld]部分读取选项。为了向后兼容性,它还读取[mysql_server]部分,但要保持最新,您应该将这些部分重命名为[mysql.server]。

您可以在全局/etc/my.cnf文件中添加mysql.server的选项。典型的my.cnf文件可能如下所示:

[mysqld]
datadir=/usr/local/mysql/var
socket=/var/tmp/mysql.sock
port=3306
user=mysql

[mysql.server]
basedir=/usr/local/mysql

mysql.server脚本支持下表中显示的选项。如果指定,则必须将它们放置在选项文件中,而不是命令行中。mysql.server只支持将start和stop作为命令行参数。

basedir=dir_name

MySQL安装目录的路径。

datadir=dir_name

MySQL数据目录的路径。

pid-file=file_name

服务器应在其中写入进程ID的文件的路径名。除非指定了绝对路径名以指定其他目录,否则服务器会在数据目录中创建文件。

如果未给定此选项,mysql.server将使用默认值host_name.pid。传递给mysqld_safe的PID文件值将覆盖[mysqld_safe]选项文件组中指定的任何值。由于mysql.server读取的是[mysqld]选项文件组,而不是[mysqld_safe]组,因此您可以确保从mysql.server调用mysqld_safe时获得与手动调用时相同的值,方法是将相同的pid文件设置放在[mysqld-safe]和[mysqld]组中。

service-startup-timeout=seconds

等待服务器启动确认的时间(秒)。如果服务器在此时间内没有启动,mysql.server将退出并返回错误。默认值为900。值为0表示根本不等待启动。负值表示永远等待(没有超时)。

mysqld_multi — 管理多个MySQL服务器

mysqld_multi被设计用于管理几个mysqld进程,这些进程侦听不同Unix套接字文件和TCP/IP端口上的连接。它可以启动或停止服务器,或报告其当前状态。

注意:对于一些Linux平台,从RPM或Debian包安装MySQL包括对管理MySQL服务器启动和关闭的systemd支持。在这些平台上,没有安装mysqld_multi,因为这是不必要的。

mysqld_multi在my.cnf(或--defaults file选项命名的文件)中搜索名为[mysqldN]的组。N可以是任何正整数。在下面的讨论中,这个数字被称为选项组号或GNR。组号将选项组彼此区分开来,并用作mysqld_multi的参数,以指定要启动、停止或获取状态报告的服务器。这些组中列出的选项与用于启动mysqld的[mysqld]组中使用的选项相同。但是,当使用多个服务器时,每个服务器都必须使用自己的值作为选项,如Unix套接字文件和TCP/IP端口号。

要调用mysqld_multi,请使用以下语法:

mysqld_multi [options] {start|stop|reload|report} [GNR[,GNR] ...]

start、stop、reload(stop和restart)和report指示要执行的操作。您可以对单个服务器或多个服务器执行指定的操作,具体取决于选项名称后面的GNR列表。如果没有列表,mysqld_multi将对选项文件中的所有服务器执行操作。

每个GNR值表示一个选项组号或组号范围。该值应为选项文件中组名末尾的数字。例如,名为[mysqld17]的组的GNR为17。要指定一个数字范围,请用短划线将第一个数字和最后一个数字分隔开。GNR值10-13表示组[mysqld10]到[mysqld13]。可以在命令行上指定多个组或组范围,并用逗号分隔。GNR列表中不得有空白字符(空格或制表符);忽略空白字符之后的任何内容。

此命令使用选项组[mysqld17]启动单个服务器:

mysqld_multi start 17

此命令使用选项组[mysqld8]和[mysqld10]到[mysqld13]停止多台服务器:

mysqld_multi stop 8,10-13

有关如何设置选项文件的示例,请使用以下命令:

mysqld_multi --example

mysqld_multi按如下方式搜索选项文件:

  •  --no-defaults,不读取任何选项文件。

  • --defaults-file=file_name, 只读这个被命名了的选项文件。

  • 否则,将读取标准位置列表中的选项文件,包括由--defaults extra file=file_name选项命名的任何文件(如果给定)。(如果多次给定该选项,则使用最后一个值。)

读取的选项文件将搜索[mysqld_multi]和[mysqldN]选项组。[mysqld_multi]组可用于mysqld_multi本身的选项。[mysqldN]组可以用于传递给特定mysqld实例的选项。

[mysqld]或[mysqld_safe]组可用于所有mysqld或mysqld_safe实例读取的公共选项。您可以指定--defaults file=file_name选项为该实例使用不同的配置文件,在这种情况下,该文件中的[mysqld]或[mysqld_safe]组将用于该实例。

mysqld_multi支持以下选项:

显示帮助消息并退出。

显示示例选项文件。

指定日志文件的名称。如果该文件存在,则会将日志输出附加到该文件中。

用于停止服务器的mysqladmin二进制文件。

要使用的mysqld二进制文件。请注意,您也可以指定mysqld_safe作为此选项的值。如果使用mysqld_safe启动服务器,则可以将mysqld或ledir选项包含在相应的[mysqldN]选项组中。这些选项指示mysqld_safe应该启动的服务器的名称以及服务器所在目录的路径名。

[mysqld38]
mysqld = mysqld-debug
ledir  = /opt/local/mysql/libexec

将日志信息打印到stdout,而不是打印到日志文件。默认情况下,输出将转到日志文件。

调用mysqladmin时要使用的MySQL帐户的密码。请注意,与其他MySQL程序不同,此选项的密码值不是可选的。

静音模式;禁用警告。

通过TCP/IP端口而不是Unix套接字文件连接到每个MySQL服务器。(如果缺少套接字文件,则服务器可能仍在运行,但只能通过TCP/IP端口访问。)默认情况下,使用Unix套接字文件进行连接。此选项影响停止和报告操作。

调用mysqladmin时要使用的MySQL帐户的用户名。

更详细一些。

显示版本信息并退出。

关于mysqld_multi的一些注意事项:

  • 最重要的是:在使用mysqld_multi之前,请确保您了解传递给mysqld服务器的选项的含义,以及为什么您希望拥有单独的mysqld进程。注意将多个mysqld服务器与同一数据目录一起使用的危险。使用单独的数据目录,除非您知道自己在做什么。在线程化系统中,使用相同的数据目录启动多个服务器不会给您带来额外的性能。

确保特定mysqld进程启动时使用的Unix帐户可以完全访问每台服务器的数据目录。除非你知道自己在做什么,否则不要使用Unix根帐户。

  • 确保用于停止mysqld服务器(使用mysqladmin程序)的MySQL帐户对每台服务器都具有相同的用户名和密码。此外,请确保该帐户具有SHUTDOWN权限。如果要管理的服务器的管理帐户的用户名或密码不同,则可能需要在每台服务器上创建一个具有相同用户名和密码的帐户。例如,您可以通过对每台服务器执行以下命令来设置一个通用的multi_admin帐户:
$> mysql -u root -S /tmp/mysql.sock -p
Enter password:
mysql> CREATE USER 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';
mysql> GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost';

您必须为每个mysqld服务器执行此操作。连接到每个连接参数时,请适当更改连接参数。请注意,帐户名的主机名部分必须允许您作为multi_admin从要运行mysqld_multi的主机进行连接。

每个mysqld的Unix套接字文件和TCP/IP端口号必须不同。(或者,如果主机有多个网络地址,可以设置bind_address系统变量,使不同的服务器侦听不同的接口。)

如果使用mysqld_safe启动mysqld(例如,--mysqld=mysqld_safe),那么--pid file选项非常重要。每个mysqld都应该有自己的进程ID文件。使用mysqld_safe而不是mysqld的优点是,mysqld_safe监视其mysqld进程,如果进程由于使用kill-9发送的信号或其他原因(如分段故障)而终止,则会重新启动它。

您可能想为mysqld使用--user选项,但要做到这一点,您需要以Unix超级用户(root)的身份运行mysqld_multi脚本。在选项文件中包含该选项并不重要;如果您不是超级用户,并且mysqld进程是在您自己的Unix帐户下启动的,那么您只会收到一个警告。

以下示例显示了如何设置选项文件以与mysqld_multi一起使用。mysqld程序的启动或停止顺序取决于它们在选项文件中的显示顺序。组号不需要形成一个完整的序列。示例中有意省略了第一组和第五组[mysqldN],以说明选项文件中可能存在“间隙”。这给了你更多的灵活性。

# This is an example of a my.cnf file for mysqld_multi.
# Usually this file is located in home dir ~/.my.cnf or /etc/my.cnf

[mysqld_multi]
mysqld     = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user       = multi_admin
password   = my_password

[mysqld2]
socket     = /tmp/mysql.sock2
port       = 3307
pid-file   = /usr/local/mysql/data2/hostname.pid2
datadir    = /usr/local/mysql/data2
language   = /usr/local/mysql/share/mysql/english
user       = unix_user1

[mysqld3]
mysqld     = /path/to/mysqld_safe
ledir      = /path/to/mysqld-binary/
mysqladmin = /path/to/mysqladmin
socket     = /tmp/mysql.sock3
port       = 3308
pid-file   = /usr/local/mysql/data3/hostname.pid3
datadir    = /usr/local/mysql/data3
language   = /usr/local/mysql/share/mysql/swedish
user       = unix_user2

[mysqld4]
socket     = /tmp/mysql.sock4
port       = 3309
pid-file   = /usr/local/mysql/data4/hostname.pid4
datadir    = /usr/local/mysql/data4
language   = /usr/local/mysql/share/mysql/estonia
user       = unix_user3

[mysqld6]
socket     = /tmp/mysql.sock6
port       = 3311
pid-file   = /usr/local/mysql/data6/hostname.pid6
datadir    = /usr/local/mysql/data6
language   = /usr/local/mysql/share/mysql/japanese
user       = unix_user4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1842290.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基础算法---滑动窗口

文章目录 什么是滑动窗口1.长度最小的子数组2.无重复字符的最长子串3.最大连续1的个数4.将x减到0的最小操作数5.最小覆盖子串总结 什么是滑动窗口 滑动窗口(Sliding Window)是一种在计算机科学中用于解决各种子数组或子字符串问题的技术。滑动窗口技术通…

如何建立私域流量?私域流量怎么运营,一文读懂

当全网都在讨论私域流量,你是不是也有很多问号呢? 互联网高速发达,消费形式日新月异,跟不上时代就会被时代淘汰,接下来,我们就从3个层面深度讨论下私域流量究竟是什么?为什么要玩转私域流量&am…

详细解析Ubuntu22 部署Kaldi大模型

一、下载Kaldi模型 下载地址:GitHub - kaldi-asr/kaldi: kaldi-asr/kaldi is the official location of the Kaldi project. 下载文件解释: 一般常用的是src、tools和egs包 src(源代码)包: 包含Kaldi的核心源代码&…

Flutter调用本地web

前言: 在目前Flutter 环境中,使用在线 webview 是一种很常见的行为 而在 app 环境中,离线使用则更有必要 1.环境准备 将依赖导入 2.引入前端代码 前端代码有两种情况 一种是使用打包工具 build 而来的前端代码 另一种情况是直接使用 HTML 文件 …

Quantlab整合Alpha158因子集,为机器学习大类资产配置策略做准备(代码+数据)

原创文章第565篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 我们的研报得现工作,用了两篇文章讲数据准备: 【研报复现】年化16.19%,人工智能多因子大类资产配置策略 【研报复现】年化27.1%,人…

vmware workstation下centos7屏幕切换及大小调整

虚拟机版本:vmware workstation15.5.2 操作系统版本:centos 7.9.2009 一 图形界面和命令行界面切换方法 在CentOS 7中,可以使用以下方法切换界面: 1 使用快捷键切换:按下Ctrl Alt F2(或F3&#xff0…

0.5 逐行扫描(Progressive scan)简介

0.5 逐行扫描简介 逐行扫描(Progressive scan)是一种将图像显示在扫描式的显示设备上的方法。 逐行扫描常被用在计算机显示器上。 逐行扫描按照从左到右,从上到下的顺序扫描图像的所有行。如下图: 下图粗略的将逐行扫描与隔行…

LORA、UNB无线网关物联网锁助力人才公寓智慧化管理

吸引和留住青年人才是城市持续发展的关键,解决青年人才住房问题又是其中重要一环。“人才跟着产业走、公寓跟着人才建”已成为全国各地新建及改造人才公寓的目标,“引才聚才”离不开人才公寓行业布局与发展。 人才公寓不同于普通的长短租公寓&#xff0c…

[HGAME 2022 week1]Matryoshka(古典密码混合)

题目: 直接说方法: 首先这是一段盲文,要先将盲文反转, 然后再用摩斯密码转换 将得到的字符串去掉“,”后,base16解码 在尝试维吉尼亚密码 再用base64解码 然后用凯撒密码 最后栅栏密码(22栏)

专家观点∣企企通采购供应链数字化总监于海生:如何利用数字化技术重构采购流程,推动企业降本增效?

摘要 数字化转型现已成为企业提升竞争力、实现降本增效的必由之路。企业应主动参与到数字经济的建设中,以数据资源为关键要素,以现代信息网络为主要载体,以信息通信技术的有效使用作为效率提升和经济结构优化的重要推动力的一系列经济活动&a…

基于STC12C5A60S2系列1T 8051单片机接收串口调试助手发送的固定长度字符串控制单片机的功能

基于STC12C5A60S2系列1T 8051单片机接收串口调试助手发送的固定长度字符串控制单片机的功能 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机串口通信介绍STC12C5A60S2系列1T 8051单片机串口通信的结构基于STC12C5A60S2系列1T 8051单片机串口通信的特殊功能…

广州化工厂可燃气体报警器检定检验:安全生产新举措显成效

随着科技的不断发展,可燃气体报警器的检定检验技术也在不断进步。 广州的一些化工厂开始采用先进的智能检测系统和数据分析技术,对报警器的性能进行更加精准和全面的评估。 这些新技术不仅能够提高检定检验的效率和准确性,还能够为化工厂的…

第11章 测试代码

第11章 测试代码 11.1 测试函数11.1.1 单元测试和测试用例11.1.2 可通过的测试11.1.3 未通过的测试11.1.4 测试未通过时怎么办11.1.5 添加新测试 11.2 测试类11.2.1 各种断言方法11.2.2 一个要测试的类11.2.3 测试 AnonymousSurvey 类11.2.4 11.1 测试函数 11.1.1 单元测试和测…

Rancher注册已有k8s集群

Rancher安装后注册K8s集群操作 1.Rancher安装 编辑docker—compose文件 version: 3.8services:rancher:image: registry.cn-hangzhou.aliyuncs.com/rancher-images/rancher:v2.8.5container_name: rancherprivileged: truerestart: unless-stoppedports:- "18080:80&qu…

2004年上半年软件设计师【下午题】试题及答案

文章目录 2004年上半年软件设计师下午题--试题2004年上半年软件设计师下午题--答案2004年上半年软件设计师下午题–试题

Ant Design Vue中的Table和Tag的基础应用

目录 一、Table表格 1.1、显示表格 1.2、列内容过长省略展示 1.3、完整分页 1.4、表头列颜色设置 二、Tag标签 2.1、根据条件显示不同颜色 2.2、控制关闭事件 一、Table表格 效果展示&#xff1a; 官网&#xff1a;Ant Design Vue 1.1、显示表格 <a-tableref&quo…

Simufact Additive仿真助力金属粘结剂喷射成型(MBJ)工业化

引 言 烧结过程中“设计”补偿变形的能力被视为是实现金属粘结剂喷射成型&#xff08;MBJ&#xff09;快速商业化的关键。针对烧结过程的仿真分析&#xff0c;Simufact Additive软件现已推出了MBJ仿真模块第三个版本&#xff0c;当前版本能够准确模拟烧结过程&#xff0c;预测…

微信多开器

由于微信的限制&#xff0c;我们平时只能登录一个微信&#xff0c;要登录多个微信一般需要多台手机&#xff0c;很显然这种方法很费手机&#xff01;&#xff01;一个微信多开神器可以给你省下好几台手机钱&#xff0c;抓紧拉下来放手机里落灰http://www.xbydon.online/?p132 …

Windows清理C盘的4类方法【新手小白专用】

一、系统清理法 1.磁盘清理 【Win R】启动命令提示符&#xff0c;输入【cleanmgr】,选择打开C盘&#xff0c;勾选要清理的文件 一般大的文件是【临时文件和下载的程序文件】 2.存储清理&#xff08;1&#xff09; 打开【设置】-【系统】-【存储】-【配置存储感知或立即运行…

Vue elementui表格

去除表头 <el-table:data"tableData"stripestyle"width: 100%":cell-style"{ text-align: justify-all }":show-header"false"></el-table>合并 <template><div class"elife-container"><el-ro…