安装zabbix出现At least one of MySQL, PostgreSQL, Oracle or IBM DB2 should be supported报错
在使用lamp环境安装zabbix,出现At least one of MySQL, PostgreSQL, Oracle or IBM DB2 should be supported报错。在网上搜了很久,根据网上的解决方法是要安装php-mysql这个包。但我的环境中已经有安装了php相关的所有包。
在迷茫之际,只能去zabbix官网去看文档,在文档中有这么一段提示。这个是zabbix官方提供的必须要部署的包,其中有一个mysqli引起了注意。对于mysqli的解释是使用 MySQL 作为 Zabbix 后端数据库所需要的组件 。那么我的错误提示是没有数据库支持zabbix,那是不是就和这个有关?
一、验证本地的环境,是不是都符合要求。
因为php是编译安装,执行以下命令
>cd /usr/local/php/bin
>./php -m
>输出结果:
>[PHP Modules]
bcmath
Core
ctype
date
dom
ereg
fileinfo
filter
gd
gettext
hash
iconv
json
ldap
libxml
mbstring
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
从输出结果来看,php的扩展组件中缺少mysqli。那就扩展安装mysqli试试。
二、安装拓展mysqli
> 进入php解压包
> cd php-5.6.18/ext/mysqli/
> /usr/local/bin/phpize
> ./configure -prefix=/usr/local/mysqli --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/lib64/mysql/mysql_config
> make && make install
>=======================================
>在以上命令执行完之后,会出现一个路径,在这个路径下有一个mysqli.so文件
> 生成的路径 :/usr/local/php/lib/php/extensions/no-debug-zts-20131226
将mysqli.so文件引用到php.ini文件中。
vim php.ini 根据mysqli.so实际的进行引用
然后重启httpd
/usr/local/apache/bin/apachectl stop
/usr/local/apache/bin/apachectl start
三、验证是否扩展成功
/usr/local/php/bin -m
[PHP Modules]
bcmath
Core
ctype
date
dom
ereg
fileinfo
filter
gd
gettext
hash
iconv
json
ldap
libxml
mbstring
mysql
mysqli
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
之后再重新登录zabbix,这个报错就没有了。
该方法是本人在部署时遇到的问题和解决方法,同样的问题在不同的环境中解决方法可能不同,有遇到此问题的朋友可借鉴以下。
五、遇到的其他问题
Cannot load module 'mysqli' because required module 'mysqlnd' is not loaded
这个报错是第一次扩展安装mysqli时产生的。原因是编译安装时只指定了目录,没有指定其他配置文件。
错误的编译
./configure --prefix=/usr/local/mysqli
正确的编译命令
./configure --prefix=/usr/local/mysqli --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/lib64/mysql/mysql_config