RHEL5.x Linux 下的 mySQL

    技术2022-05-12  16

       我使用的是 RHEL5.1 版本,是 Redhat 企业版目前较高的版本(更高的我见过5.3)。RHEL5.x 以上版本,红帽子加强了版权控制,主要体现在软件包的GUI管理器不再随便使用,而是必须在红帽子注册后,才能使用这项功能。没有了软件包的GUI管理器,给软件管理造成了很大的不便,要么注册,要么就是手工管理 rpm 软件包。而手工管理 rpm 软件包可不是随便谁都可以管好的,就是熟练的系统管理员,也很发怵的。关于这个,本人有篇文章,利用本地光盘发行包来作为软件包管理的来源,较好地解决了问题:《RHEL5.0 的软件包管理》http://blog.why100000.com/?p=481。

        RHEL5.1 和红帽子的其他发行版类似,mySQL 安装后不是类似于 Windows 下的文件整体组织形式,而是被拆分得“四分五裂”,分散的分布于 Linux 的各个文件夹下,可能是向 Linux 的文件管理标准看齐吧。其文件分布如下:

        /usr/bin    mysql客户端程序和脚本     /usr/sbin   mysqld服务器     /var/lib/mysql   mysql日志文件,数据库     /usr/share/doc/packages   mysql文档     /usr/include/mysql  mysql包含(头)文件     /usr/lib/mysql      mysql库     /usr/share/mysql    mysql错误消息和字符集文件     /usr/share/sql-bench   mysql基准程序

        //PhpMyAdmin 的安装和配置:

        首先注意:PhpMyAdmin2.x 系列版本针对的是小于PHP 5.2 以下版本,PhpMyAdmin3.x 系列版本针对的是大于等于 PHP 5.2 以上版本。

        1,PhpMyAdmin 在 mySQL 的 root 用户为空口令时,可以直接运行。但 root 用户必须被设置密码!     修改 root 用户口令为“mypassword”:     mysqladmin -u root password mypassword     然后必须配置 PhpMyAdmin 的配置文件:     拷贝 config.inc.sample.php 为 config.inc.php ,修改帐户、密码、服务器地址等一些必要的配置。

        2,提示“配置文件现在需要绝密的短语密码(blowfish_secret)”的处理:     “blowfish_secret”用一个任意字符串作为cookie的加密字符串,如果没有加密钥匙,系统会显示”配置文件现在需要绝密的短语密码(blowfish_secret) ” ,配置如下:     打开配置文件 config.inc.php,修改配置项:

        $cfg['Servers'][$i]['auth_type'] = 'cookie';  //默认既如此     $cfg['blowfish_secret'] = 'mysecret';(其中的"mysecret"自定义)

        修改以后,就可以输入用户和密码登录了。

        3,提示“无法载入 mcrypt 扩展,<br />请检查 PHP 配置”的处理     运行 php -m 命令(还可以用 phpinfo()函数来看),发现确实没有安装这个模块,安装 PHP 的 mcrypt.so 扩展模块即可。     注意,在 RHEL5.x 下,PHP(版本5.1.6)配置扩展的方法,与 Windows 下去掉 php.ini 文件中“extension=xxxx.dll”的注释不同。     注意 /etc/php.ini 中的 extension_dir = "/usr/lib/php/modules",表明所有扩展模块是放置于这里的。再注意“Dynamic Extensions”部分的以下一段话:     ;;;;     ; Note: packaged extension modules are now loaded via the .ini files     ; found in the directory /etc/php.d; these are loaded by default.     ;;;;     表明在 RHEL5 下管理扩展与 Windows 下很不同,要打开某个扩展,需要在 /etc/php.d 下建立一个 ini 文件。例如,在支持 mySQL 数据库时,会有个 mysql.ini 文件,内容如下:     ;Enable mysql extension module     extension=mysql.so

        所以,要支持 mcrypt 扩展,需要在 /usr/lib/php/modules 下有 mcrypt.so 文件,同时在 /etc/php.d 下有 mysql.ini 文件,内容为:     ;Enable mcrypt extension module     extension=mcrypt.so

        但是:RHEL5 的安装光盘里并没有这个文件!意味着,即使我们已经绕过注册能够自行管理软件包,也是不能直接安装 mcrypt 支持的!--Linux 就是这么糟糕!(此时我想大吼一声“开源万岁!狗屁不通!”)这个文件需要到网上去找(我又想大吼一声“网络万岁!”)。在网上找到 php-mcrypt-5.1.6-1.el5.i386.rpm 文件(来源我不清楚,应当是 Redhat 吧,而且需要对应 RHEL5 版本),运行一下包查看命令:     [root@localhost ~]# rpm -qpl php-mcrypt-5.1.6-1.el5.i386.rpm     warning: php-mcrypt-5.1.6-1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6f7eee0f     /etc/php.d/mcrypt.ini     /usr/lib/php/modules/mcrypt.so     可以看到,安装后模块文件所处位置,对应的目录和我上边的分析一直。于是运行:     rpm -ivh php-mcrypt-5.1.6-1.el5.i386.rpm     啊哈~~~出错了!错误提示:     libmcrypt.so.4 is needed by php-mcrypt-5.1.6-1.el5.i386     看来 php-mcrypt-5.1.6-1.el5.i386.rpm 包是依赖 libmcrypt 包的。     继续上网去搜,下载到 libmcrypt-2.5.7-2.fc3.i386.rpm 软件包,看一下里面包的是什么馅儿:     [root@localhost ~]# rpm -qpl libmcrypt-2.5.7-2.fc3.i386.rpm     warning: libmcrypt-2.5.7-2.fc3.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1ac70ce6     /usr/lib/libmcrypt.so.4     /usr/lib/libmcrypt.so.4.4.7     /usr/share/aclocal/libmcrypt.m4     /usr/share/doc/libmcrypt-2.5.7     /usr/share/doc/libmcrypt-2.5.7/AUTHORS     /usr/share/doc/libmcrypt-2.5.7/COPYING.LIB     /usr/share/doc/libmcrypt-2.5.7/ChangeLog     /usr/share/doc/libmcrypt-2.5.7/KNOWN-BUGS     /usr/share/doc/libmcrypt-2.5.7/NEWS     /usr/share/doc/libmcrypt-2.5.7/README     /usr/share/doc/libmcrypt-2.5.7/THANKS     /usr/share/doc/libmcrypt-2.5.7/TODO     /usr/share/man/man3/mcrypt.3.gz

        OK,libmcrypt.so.4 就在其中。“…fc3…”表明这个包就是 Redhat 出产的,可能会继续支持 RHEL5(向这类基础性的库,厂家一般会重复使用,经验啊!)。安装试一下:     [root@localhost ~]# rpm -ivh libmcrypt-2.5.7-2.fc3.i386.rpm     warning: libmcrypt-2.5.7-2.fc3.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1ac70ce6     Preparing...                ########################################### [100%]        1:libmcrypt              ########################################### [100%]     成功。再安装 mcrypt 包:     [root@localhost ~]# rpm -ivh php-mcrypt-5.1.6-1.el5.i386.rpm     warning: php-mcrypt-5.1.6-1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6f7eee0f     Preparing...                ########################################### [100%]        1:php-mcrypt             ########################################### [100%]     也成功了。重新启动 apache 服务:     [root@localhost ~]# httpd -k restart

        再打开 PhpMyAdmin 地址,好了。     手工安装了以上的软件包以后,在软件包管理器里也可以看到它们,说明手工安装和图形界面的包管理,其实质是一样的。

        就为了不出现“无法载入 mcrypt 扩展……”这条提示,在 Linux 下我们做了多少事情!而 Windows 下则相对容易多了,复制 libmcrypt.dll 到 dlls 目录和 system32 目录下,再在 php.ini 中去掉注释,重新启动 Web 服务即可。Windows 下容易是主要原因是不用去网上找那些东西,可见 PHP 对 Windows 的支持要完善得多。或者说,Linux 对 PHP 的支持要打些折扣,不知道是不是商业上的考虑?

        附:     1,WINDOWS操作系统下Mysql 5.1的文件分布:     bin   客户端程序和mysqld服务器     data   日志文件,数据库     Docs   文档     examples   示例程序和脚本     include   包含(头)文件     lib   库     scripts   实用工具脚本     share   错误消息文件

        2,Unix系统下文件分布:     bin   客户端程序和mysqld服务器     data   日志文件,数据库     docs   文档,ChangeLog     include   包含(头)文件     lib   库     scripts   mysql_install_db     share/mysql   错误消息文件     sql-bench   基准程序

        3,在 Linux 下,采用源码包(需要配置并编译源码)或二进制包安装mySQL后,一般情况下,可以将文件安装到/usr/local,即在下面的子目录中:     /usr/local/bin             客户端程序和脚本     /usr/local/include/mysql   包含(头)文件     /usr/local/info            Info格式的文档     /usr/local/lib/mysql       库     /usr/local/libexec         mysqld服务器     /usr/local/share/mysql     错误消息文件     /usr/local/sql-bench       基准程序和crash-me测试     /usr/local/var             数据库和日志文件

        张庆(网眼) 2009-6-26     来自“网眼视界”:http://blog.why100000.com     “十万个为什么”电脑学习网:http://www.why100000.com


    最新回复(0)