可得到几种版本的MySQL分发包。当前稳定的发行版有3.22 版本系列。当前正在开发的版本为3.23 系列。一般,应该使用系列中最高编号的版本。
MySQL分发包可以以二进制代码、RPM 和源代码的格式得到。二进制代码和RPM 分发包容易安装,但必须接受建立在分发包内的安装设计和缺省配置。源代码分发包安装很困难,因为必须对软件进行编译,但可对参数进行更多的控制。例如,可以只编译客户机程序的分
发包,而不用管服务器,可以更改安装软件的目标位置等。
分发包含有下列一个或多个组件:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)mysqld 服务器
客户机程序(mysql、mysqladmin 等)以及客户机编程支持环境(库和头文件)
文档
标准数据库
语言支持环境
源程序和二进制代码分发包含有上述所有内容。每个RPM 文件只包含其中一些内容,因此为了得到所需的东西,可能需要安装多个R P M。
如果打算连接到其他机器上运行的服务器,则不需要安装服务器,但应该安装客户机软件:
如果不运行服务器,那么只需要客户机,以便能够连接到其他机器的服务器上。
如果您确实运行一个服务器,将希望能够从该服务器的主机对此服务器进行连接,而不是在其他具有客户机软件的机器上登录,然后再来测试您的服务器。
MySQL安装综述
在UNIX 上安装MySQL涉及下列步骤:
1) 创建一个用户的UNIX 账号和服务器将操纵的组(如果正在安装服务器)。
2) 获得和打开想安装的分发包。如果使用的是源代码分发包,编译并安装它。
3) 运行mysql_install_db 脚本来初始化数据目录和权限表(仅允许第一次安装)。
4) 启动服务器。
5) 参阅第11章,熟悉一般的管理过程。特别应该阅读服务器设置和关闭以及作为无特权用户运行服务器的段落。
创建MySQL用户账号
如果只需要运行MySQL客户机软件,而不打算运行MySQL服务器,可以跳过这一节。
MySQL服务器可作为系统上的任何UNIX 用户运行,但出于安全和保密的原因,最好是不以root 身份运行服务器。建议创建一个独立的账号用于MySQL管理,并以该用户运行服务器。这样,可作为该用户登录,并在进行维护和故障排除的目录中具有完全的权限。创建
用户账号的过程随系统的不同而不同。详细内容可参阅相应的文献。
本书将mysqla d m和mysqlg r p分别用于UNIX 用户和此账号的组名。如果打算安装MySQL只为自己使用,可以自己运行它,那么在本书中任何地方出现的mysqladm 和mysqlg r p都可换成您自己的登录名和组名。如果从RPM 文件进行安装,随RPM 的安装过程会自动建立一个名为mysql的用户。在这样的情况下,可以将mysql替换成mysqla d m。
使用独立、无特权帐户而不是运行MySQL的r o o t,其优点为:
如果不以root 运行MySQL,任何人都不能利用此服务器的安全漏洞获得root 访问。
无特权的用户执行MySQL管理任务比用root 执行更为安全。
服务器将创建mysqladm 而非root 拥有的文件。r o o t在系统上拥有的文件越少越好。
将MySQL的活动分隔在它自己的账号中可以在概念上更为清晰,并且更容易看出系统上什么东西与MySQL相关。例如,在保存core 文件的目录中,有MySQL用户mysqladm 的一个独立文件。否则MySQL的corn 作业将位于root 的文件中,将会和其他东西一起作为root 周期性的执行。
获得和安装MySQL分发包
在下面的说明中,我们用版本代表MySQL的版本号,用平台代表在其上进行安装的平台名。它们也用在分发包文件名中,以便容易标识分发包,并将各个分发包区分开来。版本号是一些类似于3.22.26 或3.23.4-alpha 这样的东西,平台名是类似于sgi-irix6.3-mips 或d e c -osf4-0b-alpha 这样的东西。
1. 安装二进制代码分发包
二进制代码分发包文件具有诸如m s q l -ver s i o n - p l a t f o r m. t a r.gz 这样的名字。获得理想版本和平台的分发包文件并将它放入指定的安装MySQL目录,如/ us r / l o c a l。
用下面的任意一条命令打开分发包(如果tar 版本不支持非压缩分发包的z 选项,应该使用第二条命令):
% tar zxf mysql-version-platform.tar.gz
% gunzip mysql-version-platfrom.tar.gz | tar xf
打开分发包创建包含分发包内容的目录mysql-ver s i o n - p l a t f o r m。为了更容易引用这个目录,可创建一个符号连接:
% ln -s mysql-version-platorm mysql 现在,如果在/usr/local 目录下安装MySQL,可引用的安装目录为/ us r / l o c a l / mysql。
如果只准备使用分发包所提供的客户机支持环境并且不运行服务器,则安装结束。如果是第一次安装MySQL,可参阅A . 3 . 4节初始化数据目录和权限表。如果是对已有安装进行更新,可参阅A . 3 . 5节启动服务器。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)2. 安装RPM 分发包
RPM 文件可用于Linux 系统上的MySQL安装。它们具有如下的文件名:
MySQL-ver s i o n - p l a t f o r m.rpm 服务器软件。
MySQL- c l i e n t. ver s i o n - p l a t f o r m.rpm 客户机程序。
MySQL- d e v e l .ver s i o n - p l a t f o r m.rpm 编写客户机程序的开发支持环境(客户机库和头文件)。如果想使用或编写访问MySQL数据库的Perl DBI 脚本,则需要用到它。
MySQL- b e n c h. ver s i o n - p l a t f o r m.rpm 标准和测试。需要Perl 和Msql-Mysql-modules 模块。可在w w w.mysql.com 上得到Mysql-Mysql-modules 的一个RPM 文件。
MySQL-ver s i o n .src.rpm 服务器、客户机、标准和测试的源代码。
如果从RPM 安装,不需要特定的目录,因为RPM 文件含有指定将所包含的文件安装在何处的信息。对任何RPM 文件r p m _ f i l e,可用下列命令知道其内容将安装在何处:
% rpm -qpl rpm_file
为了安装一个RPM 文件,使用下列命令:
% rpm -i rpm_file
MySQL的各组成部分被划分为不同的RPM 文件,因此可能需要安装不止一个R P M。为了安装客户机支持环境,可使用下列命令:
% rpm -i MySQL-client-version-platform.rpm
安装服务器支持环境,使用下列命令:
% rpm -i MySQL-version-platform.rpm
如果打算使用客户机编程支持环境编写自己的程序,应该安装供开发用的RPM 文件:
% rpm -i MySQL-devel-version-platform.rpm
如果打算使用分发包提供的客户机支持环境,而且不准备使用服务器, MySQL的安装就结束了。如果是第一次安装MySQL,可参阅A . 3 . 4节初始化数据目录和权限表。如果是对现有安装进行更新,可参阅A . 3 . 5节启动服务器。
如果想从源代码RPM 文件进行安装,用下面的命令就可以了:
% rpm --recompile MySQL-version.src.rpm
3. 安装源代码分发包
源代码分发包具有如mysql- ver s i o n . t a r.gz 这样的名称,其中version 为MySQL的版本号。选择想要将分发包放在其下的目录,并进入该目录。获得分发包文件并用下列命令之一打开它(如果tar 版本不支持非压缩分发包的z 选项,应该使用第二条命令):
% tar zxf mysql-version.tar.gz
% gunzip mysql-version.tar.gz | tar xf
打开分发包创建包含分发包内容的目录mysql- ver s i o n,并进入此目录。
% cd mysql-version
在安装以前,需要配置和编译此分发包。如果各步骤失败,应该参阅MySQL参考指南的安装MySQL一章,应该特别注意它所包含的有关各种机器专有的系统说明。
使用configure 命令配置分发包:
% ./configure
可以为configure 指定选项。为了得到可用的选项表,执行下列命令:
% ./configure --help
下面的清单给出了一些许多人认为很有用的配置选项:
--without-server 只建立客户机支持环境的配置(客户机程序或客户机库)。如果打算访问运行在其他机器上的服务器,应该选择此选项。
--prefix = p a t h _ name 缺省时,安装根目录为/ us r / l o c a l。数据目录、客户机、服务器、客户机库以及头文件安装在根目录下的v a r、b i n、l i b e x e c、lib 和include 目录中。如果想要更改安装的根目录,使用--prefix 选项即可。
--localstatedir = p a t h _ name 这个选项更改数据目录的位置。如果不希望将数据库保存在/usr/local/var 之下,可使用这个选项。
--with-low-memory sql/sql_yacc.cc 源代码文件需要大量编译内存,这有时会导致安装失败。这个问题的表现包括有关 fatal signal 11或虚内存耗尽错误消息。- - w i t h - l o w - memory 选项用产生低内存消耗的选项来调用编译程序。
在执行了configure 后,编译分发包并安装它:
% make
% make install
如果未利用--prefix 选项指定具有写入许可的目录,需要以root 身份执行安装命令。
如果只准备使用分发包所提供的客户机支持环境且不运行服务器,则MySQL的安装结束。如果是第一次安装MySQL,可参阅A . 3 . 4节。如果是对已有安装进行更新,可参阅A . 3 . 5 节启动服务器。
初始化数据目录和权限表
在能够利用MySQL安装之前,需要初始化含有控制网络对服务器进行访问的权限表的mysql数据库。这个步骤只在新安装以及打算运行服务器时需要。那些只进行客户机支持环境安装的人员可以跳过这一节。对于二进制代码分发包,从安装目录(由分发包创建的b i n
目录的父级目录)执行命令。对于源代码分发包,从分发包的高层目录执行命令。
DATA D I R 是数据目录的路径名。一般情况下,作为root 执行下列命令。如果作为mysqladm 登录,或者由于打算自己运行MySQL而在自己的账号下安装它,则可不以r o o t的身份执行命令,而且可以跳过chown 和chmod 命令。
如下运行mysql_install_db 脚本设置缺省权限表(如果利用RMP 文件进行安装,则不需要这样做,因为mysql_install_db 将会自动运行):
# scripts/mysql_install_db
如果mysql_install_db 失败,应该参阅MySQL参考指南的安装MySQL一章,看看该章对于所遇到的问题是怎么说的,然后再试一次。注意,如果mysql_install_db 未成功完成,它所建立的任意权限表可能都是不完整的。应该删除它们,因为mysql_install_db 不会试图重建已经存在的表。可用如下语句删除整个mysql数据库。
# rm -rf DATADIR/mysql 在运行mysql_install_db 之后,如果所安装的是MySQL3.22.10 以前的版本,应该关闭服务器(对于更新的版本, mysql_install_db 会自动完成这项工作):
# bin/mysqladmin --user=root shutdown
在服务器关闭后,更改用户和组的拥有者该数据目录下的所有文件模式:
# chown -R mysqladm.mysqlgrp DATADIR
# chmod -R go-rwx DATADIR
chown 命令更改MySQL用户的拥有者,而chmod 更改模式把除mysqladm 外的所有人员都排斥在外。
启动服务器
这个步骤只在要运行服务器时需要。那些只需要客户机的安装可以跳过这一步。应该在前一节给出的相同目录中执行本节的命令。一般作为root 用户运行命令。如果作为mysqla d m用户登录,或者在自己的账号下安装MySQL,那么可以不以r o o t身份运行命令,而且应该省略--user 选项。
用下列命令启动服务器:
# bin/safe_mysqld --user=mysqladm &
--user 选项告诉服务器作为mysqladm 运行。如果想启用日志,使用下列命令:
# bin/safe_mysqld--user=mysqladm --log &
缺省的安装允许MySQLroot 用户不用口令进行连接。设口令是个好主意。还应该在系统启动和关闭时,安排服务器启动和关闭。此外,推荐使用更新日志,因为这对数据恢复过程是很有用的。对于完成这些活动的说明,请参阅第11章。
安装Perl DBI 支持环境
如果想要编写访问MySQL数据库的Perl 脚本,应该安装DBI 软件。DBI 要求已经安装过MySQL客户机编程支持环境,因为它要使用MySQLC 客户机库。如果希望编写基于Web 的DBI 脚本,还可以安装CGL.pm 模块。DBI 软件需要Perl 的相当新的版本(5.004 或更新)。如果没有安装Perl,请访问http://www. per l . c o m /,下载Perl 分发包,并在安装DBI 支持环境前安装它。
DBI 支持环境需要三个模块,可从源代码或RPM 文件对它进行安装:
D a t a - D um per 方便地处理Perl 数据结构的模块。
DBI 主DBI 驱动。
Msql-Mysql-modules 连接到MySQL服务器时,DBI 使用的MySQL专用驱动。
如果从源代码进行安装,应该按前面清单中给出的次序安装这个模块。否则,下面安装说明中的测试步骤将会不正常。
所有三个模块的安装都是类似的。在从源代码进行安装时,利用下面的某个命令打开分发包(如果tar 版本不支持非压缩分发包的z 选项,应该使用第二条命令):
% tar zxf dist_file.tar.gz
% gunzip dist_file.tar.gz | tar xf