mysql关于mysql.server

2023-10-30

1、mysql.server服务端工具,主要作用就是为了方便启动和关闭mysql服务,这个脚本中调用mysqld_safe来启动mysqld

2、RPM包安装时,发现/etc/rc.d/init.d/mysql和/usr/share/mysql/mysql.server里面的东西一模一样

3、mysql.server脚本其实也是调用mysqld_safe脚本去启动MySQL服务器的,但此时mysqld_safe不能使用参数选项即不能mysqld_safe --defaults-file这样的模式,此时只能使用默认的/etc/my.cnf配置文件

   相当于mysql.server把参数传递给mysqld_safe,mysqld_safe再传递给mysqld

4、mysql.server传递给mysqld_safe的参数,可以显式看到的都是parse_server_arguments函数指定的参数,如下只能看到--datadir、--pid-file,但是也都是来自my.cnf

   [root@mydb]# ps -ef|grep mysql

   root      6687     1  0 19:38 pts/1    00:00:00 /bin/sh /mysql/mysql57/bin/mysqld_safe --datadir=/mysql/mysql57/data --pid-file=/mysql/mysql57/data/mydb.pid

5、my.cnf会覆盖mysql.server里的basedir和datadir配置

   These may get overwritten by settings in the MySQL configuration files

解压文件安装时mysql.server存放于解压目录的support-files/mysql.server

cp /mysql/mysql-5.5.25-linux2.6-i686/support-files/mysql.server /etc/rc.d/init.d/mysqld

chmod 700 /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig --level 345 mysqld on

service mysqld start

RPM安装方式下,mysql.server存放于/usr/share/mysql/mysql.server

[root@mydb mysql55rpm]# ll /etc/rc.d/init.d/mysql

-rwxr-xr-x 1 root root 10585 Mar 10  2011 /etc/rc.d/init.d/mysql

[root@mydb mysql55rpm]# ll /usr/share/mysql/mysql.server

-rwxr-xr-x 1 root root 10585 Mar  9  2011 /usr/share/mysql/mysql.server

[root@mydb mysql55rpm]# ll /usr/sbin/mysqld

-rwxr-xr-x 1 root root 45012185 Mar 10  2011 /usr/sbin/mysqld

[root@mydb mysql55rpm]# ps -ef|grep mysql

root      4448     1  0 16:57 pts/1    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/mydb.pid

mysql     4527  4448  1 16:57 pts/1    00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/mydb.err --pid-file=/var/lib/mysql/mydb.pid

[root@mydb mysql55rpm]# diff /etc/rc.d/init.d/mysql /usr/share/mysql/mysql.server                     

[root@mydb mysql55rpm]#

mysql.server启动,默认使用/etc/my.cnf配置文件信息,--datadir=/mysql/mysql57/data,看到的--datadir、--pid-file都是parse_server_arguments函数指定的参数

[root@mydb]# service mysqld start

[root@mydb]# ps -ef|grep mysql

root      7747     1  0 21:13 pts/1    00:00:00 /bin/sh /mysql/mysql57/bin/mysqld_safe --datadir=/mysql/mysql57/data --pid-file=/mysql/mysql57/data/mydb.pid

mysql     7866  7747  8 21:13 pts/1    00:00:00 /mysql/mysql57/bin/mysqld --basedir=/mysql/mysql57 --datadir=/mysql/mysql57/data --plugin-dir=/mysql/mysql57/lib/plugin --user=mysql --log-error=/mysql/mysql57/data/mydb.err --pid-file=/mysql/mysql57/data/mydb.pid

mysqld_safe中的内容

mysql.server works by first doing a cd to the base directory and from there executing mysqld_safe

mysql.server的工作原理是先cd进入基目录,然后执行mysqld_safe

/usr/share/mysql/mysql.server中的内容

If you install MySQL on some other places than /usr/local/mysql, then you have to do one of the following things for this script to work

Run this script from within the MySQL installation directory

Create a /etc/my.cnf file with the following information:

[mysqld]

basedir=<path-to-mysql-installation-directory>

and copy my_print_defaults to /usr/bin

在/etc/init.d/mysql里面修改basedir和datadir,会被my.cnf覆盖,即my.cnf中的生效而/etc/init.d/mysql中的不生效(已经实验验证过的)

If you change base dir, you must also change datadir. These may get overwritten by settings in the MySQL configuration files

basedir=

datadir=

The following variables are only set for letting mysql.server find things

if test -z "$basedir" then basedir=/usr/local/mysql bindir=/usr/local/mysql/bin else  bindir="$basedir/bin"

if test -z "$datadir" then datadir=/usr/local/mysql/data else datadir="$basedir/data"

parse_server_arguments() {

  for arg do

    case "$arg" in

      --basedir=*) 

      --datadir=*)  

      --pid-file=*) 

      --service-startup-timeout=*) 

Try to find basedir in /etc/my.cnf

conf=/etc/my.cnf

parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`

echo $echo_n "Starting MySQL"

if test -x $bindir/mysqld_safe

then

#Give extra arguments to mysqld with the my.cnf file

$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &

else

log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)"

mysql.server 脚本的主要作用就是为了方便启动和关闭mysql服务,这个脚本中需要调用的是 mysqld_safe这个脚本

在调用mysqld_safe的时候要把-datadir、-pid-file,$other_args这些参数值传入到mysqld_safe 脚本,那怎么来确定这些参数呢?

首先得知道 my_print_defaults 这个命令,这个命令就是从配置文件中读取mysql的参数值,具体可以通过my_print_defaults  --help 查看:

parse_server_arguments 这个函数,其实只需要读取—basedir,--datadir,--pid-file,--service-startup-timeout这些参数

[root@mydb]# my_print_defaults --help

Prints all arguments that is give to some program using the default files

内容转载:来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30126024/viewspace-2221482/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql关于mysql.server 的相关文章

  • 如何检测数据库类型?

    我需要确保我连接的数据库是 MySQL 而不是 PostgreSQL 或 Microsoft SQL Server 我怎样才能知道正在使用哪种类型的数据库 第一个提示可能是如果您尝试使用 mySQL 数据库驱动程序连接到 PostgreSQ
  • PDO 和 MySQL 全文搜索

    我正在将所有站点代码从使用 mysql 函数转换为 PDO 关于 PDO 的 PHP 文档对于我的需求来说并不清楚 它为您提供了可以使用的功能 但没有详细解释它们在不同场景下的情况 基本上 我有一个 mysql 全文搜索 sql SELEC
  • 对于 IN 列表中的缺失值返回 NULL

    我有一个这样的表 id val 1 abc 2 def 5 xyz 6 foo 8 bar 和一个像这样的查询 SELECT id val FROM tab WHERE id IN 1 2 3 4 5 返回 id val 1 abc 2 d
  • 需要在 select 语句中连接子查询的结果

    我有三张桌子 Table1 Users Columns User ID int FirstName LastName Values 1 Jane Doe 2 John Doe 3 Mike Smith Table2 User Groups
  • 如何在Sequelize中配置一对多关系?

    我目前正在使用 Express 和 Sequelize MySQL 想知道解决这个问题的最佳方法是什么 如果这是一个基本问题 我很抱歉 因为我对 Sequelize 甚至 SQL 数据库都很陌生 我有一个模型User像这样 export d
  • 使用 Java 连接到 MySql - SSL 连接

    我一直在尝试连接到 MySql 数据库 该数据库使用 ssl 连接与 java 并遇到麻烦 如果任何人可以帮助我 将会有很大的帮助 手动连接MySql 我们使用MySQL Workbench 参数 主机名 test db1 ro xxxxx
  • Firebase 查询 - 查找包含字符串的子项

    我在使用 Firebase 查询时遇到了一些问题 我想查询对象 其中对象子值包含特定字符串 到目前为止 我有一些看起来像这样的东西 Firebase ref Firebase alloc initWithUrl https dinosaur
  • 使用命名占位符时 PHP/SQL 插入错误

    我有以下 PHP PDO 语句 STH this gt db gt prepare INSERT INTO UserDetails FirstName LastName Address City County PostCode Phone
  • 计算 MySQL 中的行数以及实际行内容

    MySQL 中有没有办法执行单个 SQL 语句来返回所选行以及结果行数 我可以做这个 SELECT COUNT FROM BigTable WHERE firstname LIKE a 这给了我一个带有计数 37 781 的结果行 我可以像
  • Redis 是否使用用户名进行身份验证?

    我已经在我的环境中设置了Redis 并且只看到了通过密码授权的部分 有没有办法也设置用户名 还是只能通过密码验证 Redis 6 上有 ACL 这些都有一个用户名 查看https redis io topics acl https redi
  • 在表中添加新列,其值取决于同一表中另一列的值

    我是 Mysql 的新手 我想在表中添加一列 其值取决于同一个表中的另一个列值 例如我有company table如下 fldId companyName date 1 adeco 2012 01 12 2 mic 2001 03 09 3
  • MySQL表按时间戳分区

    我已经对表进行了分区 由于内存不足错误 表太大 我已将其分区在时间戳列上 如下所示 CREATE TABLE test fname VARCHAR 50 NOT NULL lname VARCHAR 50 NOT NULL dob time
  • MySQL 查询性能有帮助,许多相同的表被连接

    我正在编写一个创建 SQL 查询的 PHP 脚本 该脚本和数据库用于 Joomla CMS 特别是它查询 SOBIPro 组件的表 以使用在此组件中输入的数据 然而 由于 SOBI Pro 表的处理方式 字段的每个实例都是表中自己的行 这意
  • 未知的 MySQL 服务器主机 (PHP)

    当尝试连接到我的数据库服务器时 我遇到了以下问题未知主机 Warning mysqli mysqli mysqli mysqli HY000 2005 Unknown MySQL server host xxxxxxxxxxxxx port
  • 使用 MySQL 生成唯一且随机的代码数字

    初始目标 我想在表中生成随机且唯一的代码 6 位数字 我使用像这样的 SQL 查询来做到这一点 SELECT SUBSTRING CRC32 RAND 1 6 as myCode FROM codes HAVING myCode NOT I
  • 通过 Join-Where-Group 通过选择查询正确建立索引,避免使用临时;使用文件排序

    我已经搜索了很多关于下面描述的案例的解决方案 但不幸的是我没有找到类似的案例 我有以下场景 作为新用户 该网站拒绝了我的图片 但我可以通过邮件发送它 下面是它的文本表示 Table 1 swap plan Table 2 cell Clus
  • SQLAlchemy 在 MySQL 上使用什么列类型作为“文本”?

    我的总体用例是试图确定我是否可以编写一个与数据库无关的 至少支持 Postgres 和 MySQL 存储一些大数据作为原始文本 认为 500MB 作为粗略的理论上限 基于这个答案 https stackoverflow com a 2557
  • 需要 php pdo 内爆数组并在 mysql 中插入多行

    基于this https stackoverflow com questions 4629022 how to insert an array into a single mysql prepared statement w php and
  • 两个 mysql_fetch_array 语句

    是否有任何原因导致我无法在一个 while 循环中包含两个处理两个不同 mysql 查询结果的 mysql fetch array 语句 原因是我有两个来自 mysql 数据库的查询结果 每个结果包含两列 如下所示 Query 1 Date
  • Golang、mysql:错误1040:连接过多

    我正在使用 github com go sql driver mysql 驱动程序 我打开一个数据库 db err sql Open mysql str 然后我有两个函数 每个函数被调用 200 次 并使用以下 mysql 代码 rows

随机推荐

  • python seaborn 散点图矩阵_Python数据可视化库seaborn的使用总结

    seaborn是python中的一个非常强大的数据可视化库 它集成了matplotlib 下图为seaborn的官网 如果遇到疑惑的地方可以到官网查看 http seaborn pydata org 从官网的主页我们就可以看出 seabor
  • SpringCache之@CacheEvict注解的使用说明

    功能说明 我们在日常使用缓存的时候 不仅需要添加缓存 也需要删除缓存 Springcache中如何来实现缓存的删除呢 不错 CacheEvict就能帮助我们来实现缓存的删除 审核这个眼睛是喘气的 哪里来的广告 你告诉我 说的直白点 Cach
  • 【MyIbatis】MyIbatis 重要的类 Configuration 的创建

    1 概述 转载 MyBatis 想启动 得先问问它同不同意 话说 我最近一直在研究 MyBatis 研究 MyBatis 必然逃不了研究 Configuration 对象 这个对象简直是太重要了 它是 MyBatis 起步的核心环境配置 下
  • MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

    生命不在于相信奇迹 而在于创造奇迹 朱学恒 作者 不能再留遗憾了 专栏 MySQL学习 本文章主要内容 MySQL对表操作进阶 数据库约束 表的设计 新增 后续会更新进阶表的查询 文章目录 前言 1 数据库约束 NULL约束 UNIQUE
  • python网络爬虫之淘宝订单提取

    import asyncio import pyppeteer as pyp import time async def antiAntiCrawler page 为page添加反反爬虫手段 await page setUserAgent
  • 剑指 Offer(专项突击版)- 剑指 Offer II 064. 神奇的字典(20220809)

    设计一个使用单词列表进行初始化的数据结构 单词列表中的单词 互不相同 如果给出一个单词 请判定能否只将这个单词中一个字母换成另一个字母 使得所形成的新单词存在于已构建的神奇字典中 实现 MagicDictionary 类 MagicDict
  • cpp: Visitor Pattern

    file Gold h brief 访问者模式 Visitor Pattern C 14 行为模式 2023年6月8日 涂聚文 Geovin Du Visual Studio 2022 edit 文章来源 C 新经典设计模式 王健伟编著 清
  • 来看21届IT学子应该如何备战秋招?

    写在前面 今天是2020年7月14 离正式秋招可能就两个月时间了 睡了个午觉醒来脑子里突然就在想怎样才能在秋招中找到一份满意的工作 决定把自己所想写下来 这篇文章写给自己同时也写给即将找工作的2021届各位幸运宝宝 一 有计划有目标的提高自
  • android项目迁移到androidX:类映射(android.arch.*)

    android arch core 支持库类 AndroidX 类 core executor AppToolkitTaskExecutor androidx arch core executor AppToolkitTaskExecuto
  • pytorch3d安装遇到的一些坑和解决过程

    最近为了安装pytorch3d 折腾了两天 足足两天 要注意 安装pytorch3d之前 必须先安装pytorch torchvision Pytorch3d官方 是建议用conda install的方式来安装 也可以用pip来安装 pip
  • 如何实现一个IAM系统

    IAM Identity and Access Management 的缩写 即 身份识别与访问管理 它提供单点登录 强大的认证管理 集中的授权和审计 帮助企业安全 高效地管理IT系统账号和资源权限 产品简介 赛赋Cipher IDaaS是
  • Pandas的read_excel函数学习

    excel表的读取在python中是非常重要的 为了方便今后的使用 我将我学习用python读取excel表的过程记录下来 以便今后回顾时能快速想起各种方法 下图为示例中使用的excel表中的内容 sheet1 学生的信息 sheet2 成
  • windows:ngix无法绑定80端口

    问题 cmd运行ngix提示 nginx emerg bind to 0 0 0 0 80 failed 10013 An attempt was made to access a socket in a way forbidden by
  • vue 默认选中复选框案例

  • JFrame的一些简单操作

    前几天在Java课上 老师有一段代码用到了Jframe和Jbutton这两个东西 起初我以为这是我们老师自己写的类 但是之后我一查发现这是Java中用于操控一个小窗口而封装的类 于是我去了解一下这个类 然后写了一个非常简陋的窗口 publi
  • 紫外光刻胶 AR-N 4400/电子束光刻胶 AR-N7700/AR-P617 电子束光刻胶

    光刻胶又称抗蚀剂 是指通过紫外光 电子束 离子束 射线等的照射或辐射 其性质发生变化的耐蚀刻薄膜材料 按曝光光源和辐射源的不同 又分为紫外光刻胶 包括紫外正性光刻胶 紫外负性光刻胶 深紫外光刻胶 电子束胶 射线胶 离子束胶等 AR N 44
  • 微信小程序框架——uni-app

    文章目录 uni app介绍 1 什么是uni app 2 上线的产品 3 uni app的社区和规模 uni app基础 1 uni app初体验 2 项目结构介绍 3 样式和sass 4 基本语法 5 事件 6 组件 7 生命周期 补充
  • python笔记:数组的一些操作

    目录 1 对数组求指数和对数 2 数组的最值及其索引 3 按照行或者列求均值 求和 最大值 最小值 标准差 方差 4 取对角线元素 5 取两个数组对应的最大或最小值 6 对数组重新排列 1 对数组求指数和对数 参考 指数 math exp
  • React.lazy懒加载组件

    1 React lazy的用法 React lazy方法可以异步加载组件文件 const Foo React lazy gt import componets ChildComponent React lazy不能单独使用 需要配合Reac
  • mysql关于mysql.server

    1 mysql server服务端工具 主要作用就是为了方便启动和关闭mysql服务 这个脚本中调用mysqld safe来启动mysqld 2 RPM包安装时 发现 etc rc d init d mysql和 usr share mys