MySQL Server和Server启动程序(二)

 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.mfbz.cn/a/716281.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTTP 概述

HTTP 概述 HTTP 是一种用于获取资源(如 HTML 文档)的协议。 它是 Web 上任何数据交换的基础,它是一种客户端-服务器协议,这意味着请求由接收方(通常是 Web 浏览器)发起。 一个完整的文档是从获取的不同子文…

基于GA遗传算法的多机无源定位系统GDOP优化matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于GA遗传算法的多机无源定位系统GDOP优化matlab仿真。仿真输出GDOP优化结果,遗传算法的优化收敛曲线以及三维空间坐标点。 2.测试软件版本以及运行…

ArcGIS制作规划图卫星影像地图虚化效果

文章目录 一、效果展示二、加载数据三、效果制作四、注意事项一、效果展示 二、加载数据 订阅专栏后,从csdn私信查收实验数据资料,加载ArcGIS制作规划图卫星影像地图虚化效果.rar中的数据,如下所示: 三、效果制作 1. 创建掩膜图层 新建一个矢量图层,因为主要是作图需要…

SAP 采购订单 价格 条件权限控制 授权账户

采购订单 价格 条件权限控制 授权账户 1、事务代码 me21/22/23/N 2、权限对像如下几个 M_BEST_BSA/EKG/EKO/WRK ACTVT 09 SELECT DISTINCT a.* FROM ( SELECT DISTINCT agr_users.uname FROM agr_1251INNER JOIN agr_users ON agr_1251.agr_name agr_users.agr_name AND…

ps贴图技巧

去花瓣网找一个抱枕素材2.框选抱枕区域,填充色块,再转化位置智能图像,在ctrlt变形,再自定义变形(膨胀) 3.把要贴的素材拖进色块区域

Dell ECS 数据移动到 MinIO

这里写自定义目录标题 欢迎使用Markdown编辑器配置源存储桶和目标存储桶配置Dell ECS源存储桶配置 MinIO 目标存储桶 数据移动策略向 MinIO 移动数据使用 Dremio 向 MinIO 进行数据移动 数据移动监控和记录为什么要迁移到 MinIO?新的改变功能快捷键合理的创建标题&a…

SpringBoot的简单介绍

1.什么是spring boot 简单的说,spring boot就是整合了很多优秀的框架,不用我们自己手动的去写一堆xml来进行配置。 从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。它使用“习惯优于配置”(…

基于R-Tree的地理空间数据分析加速

几年前,我正在做一个业余项目。我想创建一个 Web 应用程序,推荐当地的特色景点,例如咖啡馆、书店或隐藏的酒吧。我的想法是在地图上显示用户触手可及的所有兴趣点。我的数据集中有数十万个点,我必须巧妙地过滤用户给定范围内的数据…

GPU的工作原理

location: Beijing 1. why is GPU CPU的存储单元和计算单元的互通过慢直接促进了GPU的发展 先介绍一个概念:FLOPS(Floating Point Operations Per Second,浮点运算每秒)是一个衡量其执行浮点运算的能力,可以作为计算…

▶《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch2 贝尔曼公式

PPT 截取有用信息。 课程网站做习题。总体 MOOC 过一遍 1、学堂在线 视频 习题 2、相应章节 过电子书 复习 GitHub界面链接 3、总体 MOOC 过一遍 学堂在线 课程页面链接 中国大学MOOC 课程页面链接 B 站 视频链接 PPT和书籍下载网址: 【github链接】 onedrive链接…

算法课程笔记——线段树维护哈希

算法课程笔记——线段树维护哈希 提前空出来

手机NFC功能别再闲置,打开它,体验安全、智能生活!

最初仅在中高端手机中普及的NFC功能,随着技术成熟、成本降低,如今已逐渐成为千元手机的标配,在华为等一众品牌手机中广泛应用。而随着国内NFC功能应用的兴起,围绕NFC技术耗电情况与潜在风险的讨论也越来越多。其实,了解…

GStreamer——教程——基础教程4:Time management

基础教程4:Time management(时间管理) 目标 本教程展示了如何使用GStreamer时间相关工具。特别是: 如何查询管道以获取流位置或持续时间等信息。如何寻找(跳转)到流内的不同位置(时间&#x…

图知识蒸馏综述:算法分类与应用分析

源自:软件学报 作者:陈哲涵 黎学臻 注:若出现无法显示完全的情况,可 V 搜索“人工智能技术与咨询”查看完整文章 摘 要 图数据, 如引文网络, 社交网络和交通网络, 广泛地存在现实生活中. 图神经网络凭借强大的表现力受到广泛…

PyQt5 生成py文件不能运行;pushButton点击事件;QTextEdit 获取输入框内容

目录 cant open file c.pyuic: c.pyuic $FileName$ -o $FileNameWithoutExtension$.p PyQt5 生成py文件不能运行 pushButton点击事件 QTextEdit 获取输入框内容 整体运行代码: Creating a Qt Widget Based Application | Qt Creator Manual cant open file c.pyuic: c.…

爬虫初学篇——看完这些还怕自己入门不了?

初次学习爬虫,知识笔记小分享 学scrapy框架可看:孤寒者博主的【Python爬虫必备—>Scrapy框架快速入门篇——上】 目录🌟 一、🍉基础知识二、🍉http协议:三、🍉解析网页(1) xpath的用…

Vim基础操作:常用命令、安装插件、在VS Code中使用Vim及解决Vim编辑键盘错乱

Vim模式 普通模式(Normal Mode): 这是 Vim 的默认模式,用于执行文本编辑命令,如复制、粘贴、删除等。在此模式下,你可以使用各种 Vim 命令来操作文本。插入模式(Insert Mode)&#…

Qt实现单例模式:Q_GLOBAL_STATIC和Q_GLOBAL_STATIC_WITH_ARGS

目录 1.引言 2.了解Q_GLOBAL_STATIC 3.了解Q_GLOBAL_STATIC_WITH_ARGS 4.实现原理 4.1.对象的创建 4.2.QGlobalStatic 4.3.宏定义实现 4.4.注意事项 5.总结 1.引言 设计模式之单例模式-CSDN博客 所谓的全局静态对象,大多是在单例类中所见,在之前…

来自工业界的知识库 RAG 服务(四),FinGLM 竞赛冠军项目详解

背景介绍 在 前一篇文章 中介绍过智谱组织的一个金融大模型 RAG 比赛 FinGLM 以及 ChatGLM反卷总局 团队的项目,这篇文章继续介绍下获得冠军的馒头科技的技术方案。 建议不了解比赛背景信息的可以先查看 来自工业界的知识库 RAG 服务(三),FinGLM 竞赛获…

STM学习记录(六)————串口的发送接收

文章目录 前言一、串口结构体及库函数二、实现串口发送(库函数)1.程序设计2.代码 三.串口接收1.串口接收(普通)2.串口中断接收3. 串口发送字符串函数4.串口实现printf(重定向)5. 串口实现scanf(…