首页 > 数据库 > MySQL > 正文

在UNIX上安装MySQL

2024-07-24 12:55:22
字体:
来源:转载
供稿:网友
    可得到几种版本的mysql分发包。当前稳定的发行版有3.22 版本系列。当前正在开发的版本为3.23 系列。一般,应该使用系列中最高编号的版本。
    mysql分发包可以以二进制代码、rpm 和源代码的格式得到。二进制代码和rpm 分发包容易安装,但必须接受建立在分发包内的安装设计和缺省配置。源代码分发包安装很困难,因为必须对软件进行编译,但可对参数进行更多的控制。例如,可以只编译客户机程序的分
发包,而不用管服务器,可以更改安装软件的目标位置等。
    分发包邢铝幸桓龌蚨喔鲎榧?br>     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节“启动服务器”。
    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
    然后进入tar 命令创建的分发包目录并运行下列命令(可能需要作为root 运行这些安装步骤):
    % perl makefile.pl
    % make
    % make test
    % make install
    如果运行前面msql-mysql-modules 分发包的命令,在生成makefile 时,perl 命令将提出下列问题:
    ·which drivers do youwant to install? 存在mysql和msql 的各种组合选择。除非还运行m sql,否则选择mysql使其简单化。
    ·do youwant to install the mysqlperl emulation? mysqlperl 是mysql的旧perl 接口,已经作废。除非有旧的mysqlperl 脚本并希望在dbi 模块中启用仿真支持环境,否则回答为n o。
    ·where is your mysqlinstalled?这应该是包含mysql头文件的祖父目录,大概是/usr/local 或/ us r / l o c a l / mysql,除非将mysql安装在非标准的位置才不是这样。
    ·which database should i use for testing the mysqldrivers? 缺省为t e s t,除非关闭了对它的匿名访问,否则这样应该可以了。在关闭其匿名访问时,需要给出一个您拥有访问权的数据库名,然后为后面的问题指定一个合法的mysql用户名和口令。
    ·on which host is the database running? 如果运行的是一个本地服务器, localhost 就可以了。如果不行,指定一个您拥有访问权的服务器主机。在执行make test 命令时,mysql服务器必须运行在这个主机上,否则测试将失败。
    ·user name for connecting to the database?
    password for connecting to the database?
    为测试连接到mysql服务器的所用的用户名和口令。缺省设置时,这两个问题都可以回答un d e f。这样将使驱动作为匿名用户连接。如果需要非匿名连接,可指定非空值。
    如果安装perl 模块有问题,可参阅相应分发包的readme 文件以及dbi 邮件清单的邮件存档文件,因为多数安装问题的答案都可从该处找到。
    如果希望使用c g i . p m,它可能已经在perl 安装中给出了。试运行命令perldoc cgi。如果显示cgi 文档,那么cgi 已经安装。否则,取得相应的分发包,按与其他perl 模块相同的说明打开并安装。
    如果为了使用基于web 的dbi 脚本,希望安装mod_perl apache 模块,可访问下列位置的apache web 站点的mod_perl 区,得到更多的信息:
    http://perl.apache.org/

安装php 和apache

    按照下面的说明可以开始行动了。如果遇到问题,可查看php 分发包所含的i n s ta l l文件的“verbose insta l l”一节(阅读该文件是个不坏的主意,它含有大量有用信息)。
    这些说明都假定您有一个apache 源代码分发包可用,而且将作为一个apache 模块运行php。还假定您具有apache 1.3.9 和php 3.0.12,而且位于这样一个目录中,在该目录下可定位含有源代码分发包的apache_1.3.9 和php-3.0.12 目录。如果您拥有不同的版本或位置,在使用下列说明时,应该替换成您的实际版本号和路径名。
    要配置和建立php,可从下列命令入手(这个过程看上去有点怪,因为要从apache 分发包开始,但它是对的):
    % cd apache_1.3.9
    % ./configure
    apache 的configure 命令是必须的,因为php 需要的某些头文件是在配置时生成的。如果不在apache 分发包中运行configure ,php 配置过程将不能找到文件。在配置了apache后,进入php 分发包目录,配置php,设置它,并安装它。还可以安装php 初始化文件的一个拷贝:

    php 的configure 命令告诉php 您想要mysql支持环境,并指出apache 源代码位于何处。--enable-track-vars 选项将窗口输入的自动转换转入可从php 页内部容易地访问的变量内。make 命令编译和安装php。有可能需要作为root 安装初始化文件p h p 3 . i n i。
    在作为一个模块建立php 时,直接拷贝相应模块到apache 源代码树来安装它,以便可将它连接进apache 二进制代码内。在完成后,可按如下编译和安装apache:
    % cd ../apache_1.3.9
    % ./configure --activate-module=src/modules/php3/libphp3.a
    % make
    % make install
    这些步骤配置apache,以便知道php 模块文件,然后建立和安装它。应该编辑apache配置文件h t t p d . c o n f,以便apache 识别php 脚本。php 识别是基于php 脚本的文件扩展名进行的。例如,如果希望apache 识别.php 和. p h p 3,在配置文件中放入下面的两行:
    addtype application/x-httpd-php3.php
    addtype application/x-httpd-php3.php3
    所用的后缀依赖于打算怎样命名php 脚本。.php 和.php3 可能是最常用的。另一常用的后缀为. p h t m l。如果愿意,可以将它们都启用。如果打算安装从使用这些扩展名的其他人那里得到的页面,最好都启用它们。
    还可以告诉apache 在url 的结尾处未指定文件名时,将index.php 或index.php3 作为某个目录的缺省文件。您可能会在配置文件中发现如下的行:
    directoryindex index.html
    将其更改如下:
    directoryindex index.html index.php index.php3
    在编辑apache 配置文件后,结束httpd 服务器(如果有一个正在运行),然后启动刚安装的新h t t p d。在许多系统中,下面的命令(以root 执行)完成此工作:
    # /usr/local/apache/bin/apachectl stop
    # /usr/local/apache/bin/apachectl start
    还应该设置apache 在系统启动和关闭时启动和关闭。相应的说明请参阅apache 文档。一般情况下,它包括导入时运行apachectl start,以及关闭时运行apachectl stop。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表