最近心情不怎么好,跟着blog打字都老是打错,安装MySQL积累了几个错误并在网上找到了解决问题的错误,今天贴出来与大家共享,有解释不清楚的地方还请各位多提宝贵意见。

问题1. configure: WARNING: unrecognized options: --with-innodb 这个是用源码包构建LAMP编译安装mysql时提示的warning信息 ./configure --help 么有--with-innodb 选项
解决方法:要用--with-plugins安装

--with-plugins=PLUGIN[[[,PLUGIN..]]]
                          Plugins to include in mysqld. (default is: none)
                          Must be a configuration name or a comma separated
                          list of plugins.
                          Available configurations are: none max max-no-ndb
                          all.
                          Available plugins are: partition daemon_example
                          ftexample archive blackhole csv example federated
                          heap innobase myisam myisammrg ndbcluster.


英语不好,只供参考,大概意思是
把插件安装到mysqld里。(默认值:none)
只能是配置名或者用逗号分隔插件名
有效的配置名:none max max-no-ndb all.
有效的插件名:partition daemon_example ftexample archive blackhole csv example federated heap innobase myisam myisammrg
好的,使用 --with-plugins=partition,blackhole,heap,innobase,myisam,ndbcluster 就没问题了。

问题2.  安装mysql,在./configure 时出现错误:“error:No curses/termcap library found” &"make;*** No targets specified and no makefile found.stop."
此时注意查看./configure 时出现的错误提示 如下
checking for tgetent in -lncurses... no
checking for tgetent in -lcurses... no
checking for tgetent in -ltermcap... no
checking for tgetent in -ltinfo... no
checking for termcap functions library... configure: error: No curses/termcap library found
原因:缺少ncureses安装包  解决方法:
(1)redhat 系列
#yum list|grep ncurses
#yum -y install ncurses-devel
(2)ubuntu/debian 系列
$apt-cache search ncurses
$apt-get install libncurses5-dev
待安装completed 后,重新./configure 就可以了~

问题3:mysql+php 错误及解决方法
记得原来在编译php的已经已经加上参数
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
可后来找了一个,的确不存在mysqli.so,所以只能单独来编译mysqli了。
mysqli是优化过的mysql函数库,MYSQL版本不能低于4.1.12

cd /root/tmp/php-5.2.3/ext/mysqli
#####进入到mysqli的目录。
再用phpize生成configure文件:
/usr/local/bin/phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
#./configure --prefix=/usr/local/mysqli --with-php-config=/usr/local/bin/php-config --with-mysqli=/usr/bin/mysql_config
make
make install
Installing shared extensions:     /usr/local/lib/php/extensions/debug-non-zts-20060613/
然后在/usr/local/lib/php.ini
加上一句:
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/mysqli.so
重新启动apache即可看到已经加载mysqli成功。
 
 
1、如果出现出错代码:
 
 
/root/tmp/php-5.2.3/ext/mysqli/mysqli.c: In function 'zm_startup_mysqli':
/root/tmp/php-5.2.3/ext/mysqli/mysqli.c:637: error: 'MYSQL_RPL_MASTER' undeclared (first use in this function)
/root/tmp/php-5.2.3/ext/mysqli/mysqli.c:637: error: (Each undeclared identifier is reported only once
/root/tmp/php-5.2.3/ext/mysqli/mysqli.c:637: error: for each function it appears in.)
/root/tmp/php-5.2.3/ext/mysqli/mysqli.c:638: error: 'MYSQL_RPL_SLAVE' undeclared (first use in this function)
/root/tmp/php-5.2.3/ext/mysqli/mysqli.c:639: error: 'MYSQL_RPL_ADMIN' undeclared (first use in this function)
*** Error code 1
 

 
修改一下这个文件就可以

cd /usr/include/mysql
root@www[/usr/include/mysql]# vi mysql.h

  在第221行
 
 
... ...
enum mysql_protocol_type
{
MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET,
MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY
};
/*
There are three types of queries - the ones that have to go to
the master, the ones that go to a slave, and the adminstrative
type which must happen on the pivot connectioin
*/
 

 

#添加下面的4行
 
 
enum mysql_rpl_type
{
MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN
};
 


 
2、如果出现以下错误:
/root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c: In function 'zif_mysqli_stmt_bind_param':
/root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c:144: error: 'gptr' undeclared (first use in this function)
/root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c:144: error: (Each undeclared identifier is reported only once
/root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c:144: error: for each function it appears in.)
/root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c: In function 'zif_mysqli_stmt_execute':
/root/tmp/php-5.2.3/ext/mysqli/mysqli_api.c:603: error: 'gptr' undeclared (first use in this function)
make: *** [mysqli_api.lo] 错误 1
 
修改一下这个文件就可以
vi mysqli_api.c
查找所有gptr,有四处分别位于行144、行150、行603、行607,以 char* 替换
 

测试Mysqli运行状况:
Vim mysqli.php
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "dbname");
/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
printf("Host information: %s\n", $mysqli->host_info);
/* close connection */
$mysqli->close();
?>
 

问题4:./configure:error:MySQL library not found

解决方法:#yum install mysql-devel 重新 编译安装zabbix

./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/lib/mysql/mysql_config --with-net-snmp --with-libcurl --prefix=/usr/local/zabbix  即可
至此peace遇到的mysql的问题及解决方法已告一段落,快乐学习,快乐分享~

http://blog.sina.com.cn/s/blog_6458f3150100s7a9.html
http://blog.csdn.net/zccst/article/details/4493074
http://hky008.blog.51cto.com/803965/487563