RHEL5.x Linux 下的 mySQL

我使用的是 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 数据库和日志文件

你可能感兴趣的:(mysql,linux,PHP,redhat,配置管理)