启动和关闭MySQL服务器
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 作为MySQL管理员,一个普通的目标就是确保服务器尽可能地处于运行状态,使得客户机能够随时访问它。但是,有时最好关闭服务器(例如,如果正在进行数据库的重定位,不希望服务器在该数据库中更新表)
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入
作为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 Linux 下安装了MySQL,则该安装程序将在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
[1] [2]

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

MySQL和phpMyAdmin是强大的数据库管理工具。1)MySQL用于创建数据库和表、执行DML和SQL查询。2)phpMyAdmin提供直观界面进行数据库管理、表结构管理、数据操作和用户权限管理。

Docker在Linux上重要,因为Linux是其原生平台,提供了丰富的工具和社区支持。1.安装Docker:使用sudoapt-getupdate和sudoapt-getinstalldocker-cedocker-ce-clicontainerd.io。2.创建和管理容器:使用dockerrun命令,如dockerrun-d--namemynginx-p80:80nginx。3.编写Dockerfile:优化镜像大小,使用多阶段构建。4.优化和调试:使用dockerlogs和dockerex

在MySQL中,外键的作用是建立表与表之间的关系,确保数据的一致性和完整性。外键通过引用完整性检查和级联操作维护数据的有效性,使用时需注意性能优化和避免常见错误。

MySQL和MariaDB的主要区别在于性能、功能和许可证:1.MySQL由Oracle开发,MariaDB是其分支。2.MariaDB在高负载环境中性能可能更好。3.MariaDB提供了更多的存储引擎和功能。4.MySQL采用双重许可证,MariaDB完全开源。选择时应考虑现有基础设施、性能需求、功能需求和许可证成本。

SQL是一种用于管理关系数据库的标准语言,而MySQL是一个使用SQL的数据库管理系统。SQL定义了与数据库交互的方式,包括CRUD操作,而MySQL实现了SQL标准并提供了额外的功能,如存储过程和触发器。

CentOS因其卓越的安全性、稳定性和性能成为服务器和企业环境的首选。 1)安全性通过SELinux提供强制访问控制,提升系统安全。 2)稳定性得益于长达10年的LTS版本支持,确保系统稳定。 3)性能通过优化内核和系统配置,显着提高系统响应速度和资源利用率。

MySQL适合快速开发和中小型应用,Oracle适合大型企业和高可用性需求。1)MySQL开源、易用,适用于Web应用和中小型企业。2)Oracle功能强大,适合大型企业和政府机构。3)MySQL支持多种存储引擎,Oracle提供丰富的企业级功能。

Linux的核心组件包括内核、文件系统、Shell、用户空间与内核空间、设备驱动程序以及性能优化和最佳实践。1)内核是系统的核心,管理硬件、内存和进程。2)文件系统组织数据,支持多种类型如ext4、Btrfs和XFS。3)Shell是用户与系统交互的命令中心,支持脚本编写。4)用户空间与内核空间分离,确保系统稳定性。5)设备驱动程序连接硬件与操作系统。6)性能优化包括调整系统配置和遵循最佳实践。
