如何启动和关闭MySQL服务器

70次阅读
没有评论

共计 4365 个字符,预计需要花费 11 分钟才能阅读完成。

这篇文章主要讲解了“如何启动和关闭 MySQL 服务器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“如何启动和关闭 MySQL 服务器”吧!

作为 MySQL 管理员,一个普通的目标就是确保服务器尽可能地处于运行状态,使得客户机能够随时访问它。但是,有时最好关闭服务器(例如,如果正在进行数据库的重定位,不希望服务器在该数据库中更新表)。保持服务器运行和偶尔关闭它的需求关系不是本文所解决的。但是我们至少可以讨论如何使服务器启动和停止,以便您具备进行这两个操作的能力。

本章的说明只用于 UNIX 系统。

调用本章给出的命令

为了简洁,在大多数情况中,诸如 mysqla d m i n、mysqldump 等程序在本章中没有给出任何 - h、- u 或 - p 选项。笔者假定您将会用连接服务器所需的任何选项调用这些程序。

用无特权的用户账号运行 MySQL 服务器

在讨论如何启动服务器之前,考虑一下在服务器启动时应该运行哪个账号。服务器可以手工和自动启动。如果手工启动,则服务器以 UNIX 用户身份运行(您恰好作为该用户进行了注册)。即,如果笔者以 paul 进行注册并启动服务器,则它将以 paul 身份运行。如果用 s u 命令将用户切换到 root 然后启动服务器,则服务器以 root 身份运行。

但是,大多数时候可能都不会采用手工启动服务器。您很可能将安排服务器在系统引导时作为标准启动过程的一部分自动地运行。在 UNIX 中,该启动过程由系统以 UNIX 的 r o o t 用户的身份执行,该过程中启动的任何进程都用 root 的权限运行。

应该紧记 MySQL 服务器启动过程的两个目标:

要服务器以某些非 root 的用户身份启动。通常,除非进程真的需要 root 访问权而 mysql 办不到,否则应限制任何进程的能力。

要服务器始终以同一个用户的身份运行。服务器有时作为一个用户运行而有时又作为另一个用户运行时会产生矛盾。这将导致文件和目录以不同的所有权在该数据下被创建,甚至引起服务器不能访问数据库或表。以同一个用户的身份一致地运行服务器可以避免该问题。

为了以标准的、非特权的用户身份运行数据库,可按如下步骤执行该过程:

1) 选择用于运行服务器的账号。mysqld 可以以任何用户身份运行,但是很明显,它只为 MySQL 活动创建了一个单独的账号。您也可以为 MySQL 专门指定一个组。笔者将调用的这些用户和组的名字命名为 mysqladm 和 mysqlg r p。如果您使用了其他的名字,则在本书中有 mysqladm 和 mysqlgrp 的地方替换它们

如果您在自己的账号下安装了 MySQL 并且系统中没有特定的管理权限,则您可以在自己的 ID 用户下运行服务器。在这种情况下,应使用您自己的注册名和组名替代 mysqladm 和 mysqlgrp。

如果您利用 RPM 文件在 RedHat   下安装了 MySQL,则该安装程序将在名下自动创建了一个账号。应使用该名字替换 mysqladm。

2) 如果必要的话,可用系统常用的账号创建过程 (a c count – c r e a t i o n) 来创建服务器账号。这需要以 root 身份进行操作。

3) 关闭服务器(如果它在运行)。

4) 修改数据目录以及任何子目录和文件的所有权,使 mysqladm 用户拥有它们。例如,如果数据目录是 / us r / l o c a l / v a r,则可按以下设置 mysqladm 用户的所有权:

# cd /usr/local/var 移动到数据目录

# chown -r mysqladmin.mysqlgrp 设置所有目录和文件的所有权

5) 修改数据目录以及任何子目录和文件的许可权,使得只有 mysqladm 用户能够访问它们。设置该方式以避免其他人员访问是一种好得安全预防措施。如果数据目录是 / us r / l o c a l / v a r,则可通过 mysqladm 用户按下列操作设置应具有的一切(您需要以 root 身份运行这些命令):

# cd /usr/local/var 移动到数据目录

# chmod -R go -rwx 使所有一切只对 mysqladm 可访问

在设置数据目录及其内容的所有权和方式时,观察符号连接。您需要跟踪符号连接并修改所指向的文件或目录的所有权和方式。如果这些连接文件所定位的目录不属于您,则这样做可能会引起麻烦,因此您必须是 root 用户。

在完成前述过程后,应确保无论是作为 mysqladm 还是作为 root 用户注册都始终启动服务器。在后者中,要确保指定了 –user = mysqladm 的选项,使服务器可以将其用户 ID 切换到 mysqla d m(该选项在系统启动过程中也可使用)。

–user 选项被增加到 MySQL3.22 的 mysql 中。如果您的版本比 MySQL3.22 旧,则在启动服务器并作为 root 用户运行时,可以使用 su 命令指示系统在指定账号下运行服务器。您需要阅读有关 su 的人工页,因为作为一个指定用户运行命令的语法被改变了。
启动服务器的方法

如果您已经确定了用来运行服务器的账号,则可以选择安排怎样启动服务器。可以从命令行手工运行,或在系统启动过程中自动运行服务器。有三种启动服务器的主要方法:

直接调用 mysqld。这或许是最小的命令方法。除了说明 mysqld –help 是一个有用的命令 (用它可以查找您可利用其他启动方法使用的选项) 外,笔者不打算进一步讨论它。

调用 safe_mysqld 脚本。safe_mysqld 试图确定服务器程序和数据目录的位置,然后利用反映这些位置的选项调用服务器。safe_mysqld 将服务器的标准错误输出重定向到数据目录的错误文件中,并以记录的形式出现。在启动服务器后,safe_mysqld 还监控服务器,并在其死机时重新启动。safe_mysqld 通常用于 UNIX 的 BSD 风格的版本。

如果您曾经作为 root 或在系统启动程序中启动 s a f e _ mysqld,则错误日志将由 r o o t 拥有。如果您试着以非特权的用户身份调用 s a f e _ mysqld,则可能引起“所有权被拒绝”的错误。删除该错误文件再试一次。

调用 mysql.server 脚本。通过运行 s a f e _ mysqld . mysql. server,该脚本启动服务器。该脚本建议在使用 System V 启动 / 关闭系统的系统中使用。这个系统包括几个包含在机器登录或退出一个特定运行级时被调用的脚本的目录。它可以利用 start 或 stop 参数进行调用,以指明希望启动还是关闭服务器。

safe_mysqld 脚本被安装在 MySQL 安装目录的 bin 目录下,或者在 MySQL 源程序分发包的 scripts 目录中。mysql.server 脚本安装在 MySQL 安装目录的 s h a r e / mysql 目录下,或者在 MySQL 源程序分发包的 support-files 目录中。如果要使用它,应将其拷贝到合适的启动目录中。

对于 BSD 风格的系统,在 /etc 目录中有几个文件相对应,它们在引导期间开始服务。这些文件的名字通常以‘r c’开始,因此很可能会有一个名为 rc.local (或类似的名字)的文件来启动本地的安装服务。在这样的系统中,您可能要按如下方法添加一些行到 rc.local 文件中以启动服务器(如果路径与您系统中的不同,可将其修改成 s a f e _ mysqld):

if (-x /usr/local/bin/safe_mysqld);then
/usr/local/bin/safe_mysqld
fi

对于 System V 风格的系统,可以通过将其放置在 /etc 下的合适的启动目录中来安装 mysql. server。如果您运行 Linux 并从 RPM 文件中安装了 MySQL,那么这此操作可能已经完成了。否则,应该在主启动脚本目录中安装该脚本,并在合适的运行级目录中设置对它的连接。您还可使该脚本仅对 root 用户可执行。

启动文件目录的布局随系统而变化,因此将需要全面检查来弄清系统是怎样组织它们的。例如,在 LinuxPPC 中,这些目录为 /etc/rc.d/init.d 和 / e t c / r c . d / r c 3 . d。应该按如下方法安装该脚本:

  # cp mysql.server /etc/rc.d/init.d
# cd /etc/init.d
# chmod 500 mysql.server
# cd /etc/rc.d/rc3.d
# In -s ../init.d/mysql.server S99mysql 在 Solaris 中,主脚本目录为 / e t c / i n i t . d,运行级目录为 / e t c / r c 2 . d,因此上述命令将替换为:
#cp mysql.server /etc/init.d
# cd /etc/init.d
# chmod 500 mysql.server
# cd /etc/rc2.d
# In -s ../init.d/mysql.server s99mysql 在系统启动期间,S99mysql 脚本利用 start 参数自动调用。

如果您拥有 chkconfig 命令(它在 Linux 中很常用),则可用其帮助安装 mysql.server 脚本来代替手工运行上述的命令。

1. 指定启动选项

在启动服务器时,如果想要指定附加的启动选项,可用两种方法进行操作。您可以修改所使用的启动脚本(safe_mysqld 或 mysql. server),并在调用服务器的命令行中直接指定这些选项。您还可以在选项文件中指定选项。笔者建议,如果可能的话,应在全局选项文件中指定服务器选项。通常该文件的位置是 UNIX 中的 / e t c / my.cnf 和 Windows 中的 c:my.cnf(有关使用选项文件的细节,请参阅附录 E)。

某些种类的信息不能作为服务器的选项指定。为了这些选项,您可能需要修改 s a f e _ mysqld。例如,如果服务器不能正确地拾取 GMT 中的本地时区 (local time zone) 和返回时间值,可以设置 TZ 环境变量以给该变量一个提示。如果用 safe_mysqld 或 mysql. ser ver 启动服务器,可以将时区设置增加到 safe_mysqld 中。找到启动服务器的命令行,并在该行之前增加下列命令:

TZ=US/Central
export TZ

这个命令将 TZ 设置为 US Central 时区。您需要使用合适位置的时区。该语法是 S o l a r i s 的,您的系统可能会有所不同。例如,设置 TZ 变量的另一个常用语法为:

TZ=CST6CDT
export TZ

如果修改了启动脚本,当下次安装 MySQL 时(如,升级到更新的版本),将失去这些修改,除非在之前将该启动脚本拷贝到了其他地方。在安装新的版本之后,将您的脚本与新安装的脚本进行比较,以便看看重新建立还需要做什么改动。

感谢各位的阅读,以上就是“如何启动和关闭 MySQL 服务器”的内容了,经过本文的学习后,相信大家对如何启动和关闭 MySQL 服务器这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计4365字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)