共计 4687 个字符,预计需要花费 12 分钟才能阅读完成。
本篇内容介绍了“MySQL 数据库的启动与终止方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
由于 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: mysqlin mysqld –standalone
或者 C: mysqlin mysqld-nt –standalone
如果你使用 mysqld 并且没有把 mysql 安装在标准的位置,通常需要提供—basedir 选项你的数据库的安装位置。
$safe_mysqld –basedir=”/path/to/mysql”(Unix 平台)
c:mysqlin mysqld –basedir=”x:/path/to/mysql”(Win32 平台)
5、使用 safe_mysqld 脚本实现服务器的自动启动
同样你可以利用 safe_mysqld 和 mysqld 实现服务器随操作系统自动启动。对于系统以及 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, 启动和关闭数据库。
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”文件可能看起来像这样:
[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: (Using password: YES)
表示你需要一个可以正常连接的用户,请指定 -u - p 选项,例如,你现在可以:
shell mysqladmin -u root -p shutdown
Enter Password:***********
输入你修改过的密码即可。
启动或停止 NT 平台上的系统服务
上面几节介绍了 Unix 平台上使数据库服务器自动启动的方法,而在(NT)平台上为了让 MySQL 自动启动,你需要将 MySQL 服务器安装成 NT 系统的一种服务。
1、将 MySQL 安装成系统服务
对于 NT,服务器名字是 d -nt。
C:mysqlin 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[=fil
“MySQL 数据库的启动与终止方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!