MySQL数据库的启动与终止

2016-02-19 19:51 2 1 收藏

下面这个MySQL数据库的启动与终止教程由图老师小编精心推荐选出,过程简单易学超容易上手,喜欢就要赶紧get起来哦!

【 tulaoshi.com - 编程语言 】

  由于MySQL服务器具有多种安装分发,而且能够运行在多种操作平台之上,因此它的启动与停止的方法也多种多样。你可以根据实际情况使用其中的一种。在你安装、升级或者维护系统时,你可能需要多次启动和终止服务器,你需要了解启动和终止服务器的方方面面。

  直接运行守护程序

  1、你可以采用的方法

  一般的,你可以有以下几种选择启动MySQL服务器,它们的功能和用法几乎是相同的,所以一起在这里介绍:

  直接使用MySQL守护程序mysqld启动数据库系统,尤其是Win32平台上的分发,这是因为,在Win32平台上没有mysql.server等服务器脚本可用。

  通过调用safe_mysqld脚本,它接受与mysqld相同的参数,并试图为mysqld决定正确的选项,然后选择用那些运行它。

  2、脚本或者守护程序的存放位置

  对于二进制分发的安装,mysqld守护程序安装在MySQL安装目录的bin目录下,或者可在MySQL源代码分发的libexec目录下找到,缺省为/usr/local/libexec/。对于rpm分发,mysqld应该位于PATH变量决定的程序搜索路径中,因此可以直接引用。

  safe_mysqld仍旧是一个脚本,并且只存在于Unix平台的分发中。safe_mysqld脚本安装在MySQL安装目录的bin目录下,或可在MySQL源代码分发的scripts目录下找到。对于rpm分发,该脚本应该位于PATH变量决定的程序搜索路径中,因此可以直接引用。

  3、为什么要使用safe_mysqld脚本

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

  如果,你曾经为root或在系统启动程序中启动safe_mysqld,其错误日志将有root拥有。如果再用非特权的用户身份调用safe_mysqld,则可能引起“Access Denied”(即,“所有权被拒绝”)的错误。此时可以删除错误文件在试一次。

  由于safe_mysqld脚本的功能,使用safe_mysqld脚本明显比直接启动mysqld守护程序来得有效。

  4、启动服务器的完整过程

  对于Unix平台上的分发,如果你以root或在系统引导期间启动sqfe_mysqld,出错日志由root拥有,这可能在你以后试图用一个非特权用户调用safe_mysqld时将导致“permission denied”(权限拒绝)错误,删除出错日志再试一下。因此建议你在启动服务器前,首先切换到一个专门的用户mysql。

  具体方法如下:

  Unix平台

  $ su mysql

  $ safe_mysql & (或者 mysqld & ,不推荐)

  Win32平台

  C: mysqlbinmysqld --standalone

  或者C: mysqlbinmysqld-nt –standalone

  如果你使用mysqld并且没有把mysql安装在标准的位置,通常需要提供—basedir选项你的数据库的安装位置。

  $safe_mysqld --basedir=”/path/to/mysql” &(Unix平台)

  c:mysqlbinmysqld --basedir=”x:/path/to/mysql” (Win32平台)

  5、使用safe_mysqld脚本实现服务器的自动启动

  同样你可以利用safe_mysqld和mysqld实现服务器随操作系统自动启动。对于Linux系统以及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

  由于这样在引导时启动,将使用root身份启动数据库,在某些时候可能会产生问题和麻烦。这是你可以指定--user选项,因此可以将上面的代码修改为:

  if [ -x /usr/local/bin/safe_mysqld ]; then

  /usr/local/bin/safe_mysqld --user=mysql --datadir=/path/to/data &

  fi

  使用脚本mysql.server启动关闭数据库

  对于Unix平台上的分发,比较好的办法是使用数据库脚本mysql.server,启动和关闭数据库。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  1、mysql.server脚本的存放位置

  mysql.server脚本安装在MySQL安装目录下的share/mysqld目录下或可以在MySQL源代码分发的support_files目录下找到。对于rpm分发,该脚本已经改名mysql位于/etc/rc.d/init.d目录中,另外在….中存在一个副本mysql.server。下文的讨论对RPM分发来说,都在安装中完成了。如果你想使用它们,你需要将它们拷贝到适当的目录下。

  2、如何使用mysql.server脚本启动停止服务器

  mysql.server脚本可以被用来启动或停止服务器,通过用start或stop参数调用它:

  $ mysql.server start

  $ mysql.server stop

  3、mysql.server的功能简述

  在mysql.server启动服务器之前,它把目录改变到MySQL安装目录,然后调用safe_mysqld。如果你有在一个非标准的地点安装的二进制分发,你可能需要编辑mysql.server。修改它,运行safe_mysqld前,cd到正确的目录。

  4、让mysql.server以特定的用户启动服务器

  如果你想要作为一些特定的用户运行服务器,你可以改变mysql_daemon_user=root行使用其他用户,你也能修改mysql.server把其他选项传给safe_mysqld。

  当然你也可以利用选项文件给mysql.server脚本提供参数。

  你也可以在一个全局“/etc/my.cnf”文件中增加mysql.server的选项。一个典型的“/etc/my.cnf”文件可能看起来像这样:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

[mysqld]
datadir=/usr/local/mysql/var
socket=/tmp/mysqld.sock
port=3306
[mysql.server]
user=mysql
basedir=/usr/local/mysql

  mysql.server脚本使用下列变量:user、datadir、basedir、bindir和pid-file。

  5、利用mysql.server脚本让服务器自动启动

  mysql.server脚本的重要性在于你可以使用它配置一个随操作系统自动启动的数据库安装,这是一个实际的系统中常用的方法。

  把mysql.server复制到/etc/rc.d/init.d目录里面:

# cd /etc/rc.d/init.d
# cp /usr/local/mysql/support-files/mysql.server mysql

  接着把它的属性改为“x”(executable,可执行)

  # chmod +x mysql

  最后,运行chkconfig把MySQL添加到你系统的启动服务组里面去。

# /sbin/chkconfig --del mysql
# /sbin/chkconfig --add mysql

  你也可以这样做,手工建立链接:

#cd /etc/rc.d/rc3.d    (根据你的运行级不同而不同,可以是rc5.d)
#ln –s ../init.d/mysql S99mysql

  在系统启动期间,S99mysql脚本利用start参数自动启动。

  使用mysqladmin实用程序关闭、重启数据库

  日常维护数据库,经常需要关闭或者重新启动数据库服务器。mysql.server stop只能用于关闭数据库系统,并不方便,而且mysql.server脚本用特定用户身份启动服务器,因此使用该教本需要超级用户的权限。相比之下mysqladmin就方便的多,并且适用于MySQL所有类型、平台的安装。

  关闭数据库服务器

  mysqladmin shutdown

  重启数据库服务器

  mysqladmin reload

  获得帮助

  mysqladmin –help

  mysqladmin实用程序非常有使用价值,仔细阅读帮助输出,你会得到更多的用法。

  如果出现下面的错误:

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user: 'root@localhost' (Using password: YES)'

  表示你需要一个可以正常连接的用户,请指定-u -p选项,例如,你现在可以:

shellmysqladmin -u root -p shutdown
Enter Password:***********

  输入你修改过的密码即可。

  启动或停止NT平台上的系统服务

  上面几节介绍了Unix平台上使数据库服务器自动启动的方法,而在windows(NT)平台上为了让MySQL数据库自动启动,你需要将MySQL服务器安装成NT系统的一种服务。

  1、将MySQL安装成系统服务

  对于NT,服务器名字是mysqld-nt。

C:mysqlbin mysqld-nt --install

  (你可以在 NT 上使用mysqld或mysqld-opt服务器,但是那些不能作为一种服务启动或使用命名管道。)

  2、修改选项文件

  如果你的mysql没有安装缺省的位置c:mysql,那么因为数据库将无法确定数据库目录的位置,而无法启动。这种情况下,你需要提供一个全局的选项文件c:my.cnf。将安装目录中的my-example.cnf文件拷贝到c盘根目录下。修改或加入:


[mysqld]
basedir = x:/path/to/mysql/

  3、启动、停止服务器的方法

  你可以用下列命令启动和停止MySQL服务:

NET START mysql
NET STOP mysql

  注意在这种情况下,你不能对mysqld-nt使用任何其他选项!你需要使用选项文件提供参数。可以在选项文件中提供合适的参数。

  使用选项文件提供服务器的参数

  本节介绍守护程序需要的比较重要的选项。

  对于全局选项文件(windows:c:/my.cnf 或者 unix:/etc/my.cnf),比较重要的选项有:

  user 运行守护程序的用户,如果你使用mysql.server,并且在[mysql.server]中指定了user,那么这个选项没有必要。

  log-update=file 更新日志名,对于恢复数据库有重要意义,数据库服务器将生成file.n为名的更新日志文件。

  -l, --log[=file] 指定常规日志名

  --log-bin[=file] 指定使用的二进制日志文件,应用于服务器复制。

  -Sg, --skip-grant-tables 启动时不加载授权表,维护时使用。

  -u, --user=user_name 启动服务器使用的Unix帐户

  --socket=... 指定是用的Unix套接字文件名,在同时运行多个服务器时使用。

  -P, --port=... 指定服务器使用的端口,在同时运行多个服务器时使用。

  总结

  作为MySQL的管理员,你平时的指责就是确保服务器尽可能的正常运行,使得客户机能够正常访问。本章讨论了如何启动和重启、关闭服务器,如果你具备了这个能力,就可以更好的维护服务器安装。本章介绍的方法,多数适合于Unix系统,读者请仔细分辨。

来源:https://www.tulaoshi.com/n/20160219/1622007.html

延伸阅读
标签: MySQL mysql数据库
MySQL允许影响语句的调度特性,这样会使来自几个客户机的查询更好地协作,从而单个客户机不会被锁定太长的时间。更改调度特性还能保证特定的查询处理得更快。我们先来看一下MySQL的缺省调度策略,然后 来看看为改变这个策略可使用什么样的选项。出于讨论的目的,假设执行检索( SELECT)的客户机程序为读取程序。执行修改表操作( DELETE,INSE...
原始的是Windows 2003下的32位的MySQL数据库, 新的服务器是Sun的64位的小型机,64位的MySQL数据库。 数据库文件很大,约有70G, 如果普通的迁移,需要在原始数据库导出数据,然后在新数据库导入数据 经仔细考虑,是否MySQL的数据库文件存储格式在不同的操作系统相同呢? 测试过程如下: 在64位SUN机器上安装64位版的MySQL 停止MySQL服...
根据定义,数据库管理系统的目的就是管理数据。即使一条简单的SELECT 1 语句也涉及表达式求值以产生一个整型数据值。MySQL 中的每个数据值都有类型。例如, 37.4 是一个数,而“ a b c”是一个串。有时,数据的类型是明显的,因为在使用C R E ATE TABLE 语句时指定了作为表的组成部分定义的每个列的类型,如: 而有时,数据类型是...
3.5 获取数据库和表的有关信息     MySQL 提供了几条获取数据库和表中信息的语句。这些语句对于了解数据库的内容及了解自己表的结构很有帮助。还可以将它们作为使用A LTER TABLE 的一种辅助手段;能够知道当前列是如何定义的,计划出怎样对列进行更改会更为容易。SHOW 语句可用来获取数据库和表的几个方面的信息,它有如下...
3.9 MySQL 不支持的功能     本节介绍其他数据库中有而MySQL 中无的功能。它介绍省略了什么功能,以及在需要这些功能时怎么办。一般情况下, MySQL 之所以忽略某些功能是因为它们有负面性能影响。有的功能正在开发者的计划清单上,一旦找到一种方法可以实现相应的功能而又不致于影响良好性能的目标,就会对它们进行实现。...

经验教程

431

收藏

44
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部