Mysql服务器的启动与停止(一)

在讨论如何启动MySQL服务器之前,让我们考虑一下应该以什么用户身份运行MySQL服务器。服务器可以手动或自动启动。如果你手动启动它,服务器以你登录Unix(Linux)的用户身份启动,即如果你用paul登录Unix并启动服务器,它用paul运行;如果你用su命令切换到root,然后运启动服务器,则它以root运行。然而,大多数情况下你可能不想手动启动服务器,最有可能是你安排MySQL服务器在系统引导时自动启动,作为标准引导过程的一部分,在Unix下,该引导过程由系统的Unix用户root执行,并且任何在该过程中运行的进程均以root权限运行。 
    你应该牢记MySQL服务器启动过程的两个目标:

你想让服务器以某个非root用户运行。一般地,你想限制任何运行进程的能力,除非确实需要root权限,而MySQL不需要。

你想让服务器始终以同一个用户运行,此时用一个用户而其他时候以另一个不同的用户运行服务器是很不方便的,这造成了为文件和目录以具有不同属主的数据目录下被创建,并可能导致服务器不能访问数据库或表,这看你以哪个用户运行。统一用同一个用户运行服务器是你避免这个问题。

要一个普通的非特权用户运行服务器,按照下列步骤:

选择一个用于运行服务器的用户,mysqld可以用任何用户运行。但在概念上较清晰的是为MySQL操作创建一个单独的用户。你也可以特别为MySQL选择一个用户组。本文使用mysqladm和mysqlgrp分别作为用户名和用户组名。

如果你已在自己的账号下安装好了MySQL且没有系统上的特殊管理权限,你将可能在你自己的用户ID下运行服务器。在这种情况下,用你自己的登录名和用户组代替mysqladm和mysqlgrp。

如果你在RedHat Linux上用rpm文件安装MySQL,该安装将自动创建一个名为mysql的账号,用该账号代替mysqladm。

如果必要,用系统通常的创建用户的过程创建服务器账号,你需要用root做它。  
    如果服务器在运行,停止它。

修改数据目录和任何子目录和文件的属主,这样使得mysqladm用户拥有它们。例如,如果数据目录是/usr/local/var,你可以如下设置mysqladm的属主(你需要以root运行这些命令):

#cd /usr/local/var 
    #chown -R mysqladm.mysqlgrp

修改数据目录和任何子目录和文件的权限,使得它们只能由mysqladm用户访问。如果数据目录是/usr/local/var,你可以设置由mysqladm拥有的任何东西:

# cd /usr/local/var 
    # chmod -R go-rwx  
    当你设置数据目录及其内容的属主和模式时,注意符号连接。你需要顺着它们并改变它们指向的文件或目录的属主和模式。如果连接文件的目录位于不属于你的地方,会有些麻烦,你可能需要root身份。

在你完成了上述过程后,你应该确保总是在以mysqladm或root登录时启动服务器,在后者,确定指定--user=mysqladm选项,使服务器能将其用户ID切换到mysqladm(同时也适用于系统启动过程)。

--user选项在MySQL 3.22中引入,如果你有老版本,你可以使用su命令告诉系统在以root运行时在特定的用户下运行服务器。

启动服务器的方法

在我们确定了用于运行服务器的账号后,你可以选择如何安排启动服务器。你可以从命令行手动或在系统引导过程中自动地运行它。对于启动服务器由三种主要方法:

直接调用mysqld。

这可能是最不常用的方法,建议不要多使用,因此本文不详细介绍。

调用safe_mysqld脚本。

safe_mysqld试图确定服务器程序和数据目录的位置。然后用反映这些值的选项调用服器。safe_mysqld将标准出错设备从服务器重定位到数据目录下的一个出错文件,使得有它的一条记录。在启动服务器后,safe_mysqld也监视它并且如果它死掉则重启它。safe_mysqld常用于BSD风格的Unix系统。

  如果你以root或在系统引导期间启动sqfe_mysqld,出错日志由root拥有,这可能在你以后试图用一个非特权用户调用safe_mysqld时将导致“permission denied”(权限拒绝)错误,删除出错日志再试一下。

调用mysql.server脚本。

这个脚本通过有意用于System V的启动和停止系统上的safe_mysqld.mysql.server来启动服务器,该系统包含几个包含在机器进入或退出一个给定运行级别时被点用的脚本目录。它可以用一个start或stop参数点用以表明你是想启动还是想停止服务器。

safe_mysqld脚本安装在MySQL安装目录的bin目录下,或可在MySQL源代码分发的scripts目录下找到。mysql.server脚本安装在MySQL安装目录下的share/mysqld目录下或可以在MySQL源代码分发的support_files目录下找到。如果你想使用它们,你需要将它们拷贝到适当的目录下。

对BSD风格的系统(FreeBSD,OpenBSD等),通常在/etc目录下有几个文件在引导时初始化服务,这些文件通常有以“rc”开头的名字,且它有可能由一个名为“rc.local”的文件(或类似的东西),特意用于启动本地安装的服务。在这样的系统上,你可能将类似于下列的行加入rc.local文件中以启动服务器(如果safe_mysqld的目录在你的系统上不同,修改它即可):

if [ -x /usr/local/bin/safe_mysqld ]; then 
    /usr/local/bin/safe_mysqld & 
    fi 
    对于对于System V风格的系统,你可以通过将mysql.server放在/etc下适当的启动目录下来安装它。如果你运行Linux并从一个RPM文件安装MySQL,这些已经为你做好了,否则将脚本安装在主启动目录下,并将指向它的连接放在适当的运行级别目录下。你也可以使脚本只能由root启动。

启动文件的目录布局各系统不同,所以你需要检查一下看看你的系统如何组织它们。例如在Linux PPC上,目录是/etc/rc.d和/etc/rc.d/rc3.d,这样你可以这样安装脚本:

#cp mysql.server /etc/rc.d/init.d 
    #cd /etc/init.d 
    #chmod 500 mysql.server 
    #cd /etc/rc.d/rc3.d 
    #ln -s ../init.d/mysql.server S99mysql 
    在solaris上,主脚本目录是/etc/init.d,并且运行级别目录是/etc/rd2.d,所以命令看上去像这样:

#cp mysql.server /etc/rc.d/init.d 
    #cd /etc/init.d 
    #chmod 500 mysql.server 
    #cd /etc/rc2.d 
    #ln -s ../init.d/mysql.server S99mysql 
    在系统启动时,S99mysql脚本将自动用一个start参数调用。如果你有chkconfig命令(Linux上有),你可以由它帮助安装mysql.server脚本而不是象上面那样手工运行上述命令。

指定启动选项

如果你想在服务器启动时指定额外的启动选项,你可有两种方法。你可以修改你使用的启动脚本(safe_mysqld或mysql.server)并直接在调用服务器的行上指定选项,或在一个选项文件中指定选项。建议你如果可能在一个全局选项文件中指定选项,它通常位于/etc/my.cnf(Unix)或c:my.cnf(Windows)。

某些种类的信息无法以服务器选项指定。对于这些你可能需要修改safe_mysqld。例如,如果你的服务器不能正确选择本地时区而以GMT返回时间值,你可以设置TZ环境变量给它一个指示。如果你用safe_mysqld或mysql.server启动服务器,你可以将一个时区设置加到safe_mysqld。找到启动服务器的行并在该行前加入下列命令:

TZ=US/Central 
    export TZ

上面命令的语法是Solaris的,对于其他系统语法可能不同,请查阅相关手册。如果你确实修改了你的启动脚本,要记住下次你安装MySQL时(如升级到新版本),你的修改将失去,除非你首先在别处复制了启动脚本。在安装了新版本后,比较新旧版本的脚本,看看你需要重建什么改变。

在启动时检查你的表

除了安排你的服务器在系统引导时启动,你可能要安装myisamchk和isamchk脚本,以在服务器启动前检查你的表。你可能在一个崩溃后重启,有可能表已经损害,在启动前检查它是一个发现问题的好方法。

(0)

相关推荐

  • linux正确重启MySQL的方法

    由于是从源码包安装的Mysql,所以系统中是没有红帽常用的servcie mysqld restart这个脚本 只好手工重启 有人建议Killall mysql.这种野蛮的方法其实是不行的,强制终止的话,如果造成表损坏,损失是巨大的. 这里推荐安全的重启方法 $mysql_dir/bin/mysqladmin -u root -p shutdown $mysql_dir/bin/safe_mysqld & mysqladmin和mysqld_safe位于Mysql安装目录的bin目录下,很容易找

  • Linux启动/停止/重启Mysql数据库的简单方法(推荐)

    1.查看mysql版本 方法一:status; 方法二:select version(); 2.Mysql启动.停止.重启常用命令 a.启动方式 1.使用 service 启动: [root@localhost /]# service mysqld start (5.0版本是mysqld) [root@szxdb etc]# service mysql start (5.5.7版本是mysql) 2.使用 mysqld 脚本启动: /etc/inint.d/mysqld start 3.使用 s

  • LINUX重启MYSQL的命令详解

    如何启动/停止/重启MySQL 一.启动方式 1.使用 service 启动:service mysqld start 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld start 3.使用 safe_mysqld 启动:safe_mysqld& 二.停止 1.使用 service 启动:service mysqld stop 2.使用 mysqld 脚本启动:/etc/inint.d/mysqld stop 3. mysqladmin shutdown 三.重启 1.

  • Visual Studio.Net 内幕(7)

    编辑环境 Visual Studio 为所有VS.NET支持的语言提供了单一的一个代码编辑器,而同时为每一种语言提供了特定的功能 .其编辑器引入了编辑环境方面的一些增强功能,诸如单词补齐,增量搜索,代码凸显,缩进文本,标记行号,彩色打印,和快捷方式.编辑器还提供了许多为特定语言设计的功能,比方在你输入原型和函数调用的时候它能够自动完成这些字符串的输入. 除了编程语言,这个编辑器还提供对HTML文档,网络页甚至XML编写过程的支持.实际上,我很乐意把我的一个XML文档加载到VS.NET里然后看见我

  • Mysql服务器的启动与停止(二)

    三.停止服务器      要手工启动服务器,使用MySQLadmin: %mysqladmin shutdown 要自动停止服务器,你不需做特别的事情.BSD系统一般通过向进程发一个TERM信号停止服务,它们或者正确应答它或被粗鲁地杀死.mysqld在它收到这个信号时以终止作为应答.对于用mysql.server启动服务器的System V风格的系统,停止进程将用一个stop参数调用该脚本,告诉服务器终止,当然假定你已安装了mysql.server. 四.如果你不能连接服务器,如何重新获得对服务

  • Mysql服务器的启动与停止(一)

    在讨论如何启动MySQL服务器之前,让我们考虑一下应该以什么用户身份运行MySQL服务器.服务器可以手动或自动启动.如果你手动启动它,服务器以你登录Unix(Linux)的用户身份启动,即如果你用paul登录Unix并启动服务器,它用paul运行:如果你用su命令切换到root,然后运启动服务器,则它以root运行.然而,大多数情况下你可能不想手动启动服务器,最有可能是你安排MySQL服务器在系统引导时自动启动,作为标准引导过程的一部分,在Unix下,该引导过程由系统的Unix用户root执行,

  • 免安转MySQL服务的启动与停止方法

    1.下载mysql-noinstall-5.1.33-win32.zip,然后解压 2.复制my-huge配置文件为my.ini 在 [mysqld] 下,增加2行 basedir=D:/mysql datadir=D:/mysql/data 3.进入cmd 进入 bin目录下,运行mysqld install 注册服务器 然后运行net start mysql启动mysql服务(必须将mysql服务设置为手动启动) 停止服务: 运行net stop mysql 4.批处理文件来启动和停止:

  • MySQL服务器的启动和关闭

    本章的说明只用于UNIX 系统.如果正在运行Windows 系统,可以跳过本章,因为附录A"获得和安装软件"一节中包含了所有需要的启动和关闭命令.      调用本章给出的命令      为了简洁,在大多数情况中,诸如mysqla d m i n.mysqldump 等程序在本章中没有给出任何- h.- u或- p选项.笔者假定您将会用连接服务器所需的任何选项调用这些程序. 用无特权的用户账号运行MySQL服务器 在讨论如何启动服务器之前,考虑一下在服务器启动时应该运行哪个账号.服务器

  • centos下安装mysql服务器的方法

    项目需要就在现有的服务器上面重新安装了个mysql服务器,还挺费劲儿呢,因为之前都是在我的笔记本上面试验的,它的系统是Ubuntu的,什么路径啊,启动方式啊.都不一样所以这次还是让我纠结了一把:下面把我安装过程中遇到的问题给传上来,首先rpm格式安装就不多说了,主要是mysql的配置文件在:/etc/my.cnf这里,需要修改: 复制代码 代码如下: [mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock# Default t

  • Centos下SpringBoot项目启动与停止脚本的方法

    使用Maven脚本在Centos服务器中启动与停止项目 首先项目需要引用Maven的SpringBoot插件 <profiles> <profile> <id>boot-repackage</id> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-

  • 解决Mysql服务器启动时报错问题的方法

    一.概述 文章主要介绍因为启动mysql服务报错引发的问题:"ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid)",顺带扩充一些其它的知识点,当前版本是red hat 6,mysql 5.6. 二.步骤 报错的源头 问题解决 1.权限 报错的源头就是它了,一般这种问题首先会想到的就是权限问题,就是/var/lib/mysql该文件夹的权限 上图可以看到my

  • Mysql服务器的安装配置与启动关闭方法详解

    1.官网下载: https://dev.mysql.com/downloads/ 找到Mysql Community Server 点击 点击download下载,可以选择下载路径,我下载在d盘: 下载好了需要: 新建mysql.ini文件 内容: [mysql] 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 设置mysql的安装目录 basedir=D:\java web\mysql\mysq

  • 在ubuntu中重置mysql服务器root密码的方法

    首先停止mysql服务: 复制代码 代码如下: root@webserver:/home/webmaster# service mysql stop 接着采用忽略密码认证模式重新创建一个mysql服务: 复制代码 代码如下: root@webserver:/home/webmaster# mysqld --user=mysql --skip-grant-tables --skip-networking & 成功启动后返回PID及其它启动信息 复制代码 代码如下: [1] 3591 root@we

  • 简单实现MySQL服务器的优化配置方法

    公司网站访问量越来越大,MySQL自然成为瓶颈,因此最近我一直在研究 MySQL 的优化,第一步自然想到的是 MySQL 系统参数的优化,作为一个访问量很大的网站(日20万人次以上)的数据库系统,不可能指望 MySQL 默认的系统参数能够让 MySQL运行得非常顺畅.以下的文章主要介绍的是对MySQL服务器的优化配置的时机操作步骤,同时本文也介绍了MySQL服务器的优化配置的实际应用代码,如果你对其相关的实际应用感兴趣的话,你就可以点击以下的文章对其进行了解. 你能用这个命令得到MySQL服务器

随机推荐