IT技术博客大学习 共学习 共进步

关于安装mysql的一些辛酸

PHPor 的Blog 2010-10-28 23:38:01 浏览 2,481 次
现象:

    新安装了一台机器,Apache + PHP; 访问时候出现错误:

    *** glibc detected *** /data1/apache2/bin/httpd: double free or corruption (!prev): 0x0971ef80 ***

    调试步骤:

    1。 让apache的进程数减少为2个, strace -p pid; 观察异常所在,没有发现明显的出错地点

    2。 在请求的PHP文件中添加断点,发现在mysql_connect 时出现的上述错误

    3。 ldd mysql.so 和 ldd mysql 相比较,发现使用的libmysqlclient.so文件不同,系统里面有两套;相比是使用的include头文件和lib文件不是一个版本的

    4。 删除安装的杂乱的mysql文件

    5。 安装: mysql-5.1.47-linux-i686-glibc23.tar.gz    这个解压就行,不需要编译

    6。 指定上面解压的mysql目录,重新编译PHP的mysql模块,问题解决

    关于启动mysqld的一些问题:

    1。 安装mysqld系统表文件,使用脚本scripts/mysql_install_db ; 需要在script平级的目录执行; 其原理是,使用越过权限检查的方式启动mysqld,默认的my.cnf是/etc/my.cnf ; 将创建系统表的sql语句放到mysqld中执行,于是生成的系统表就放在了(my.cnf中指定的)mysql数据库目录中了

    2。 安装后的系统表可能用户权限不对,导致无法启动数据库,这就需要修改系统表和mysql数据库的权限了

    调试过程中分别使用了:

    strace、ldd、sh -x 等办法

建议继续学习

  1. 配置Nginx+uwsgi更方便地部署python应用 (阅读 106,823)
  2. Linux 下 PHP 5.2.x 连接 SQL Server 数据库 FreeTDS 配置笔记 (阅读 10,940)
  3. nginx的配置文件 (阅读 9,780)
  4. Emacs安装配置 (阅读 8,241)
  5. 如何查看Linux 硬件配置信息 (阅读 7,101)
  6. Centos yum 安装nginx+PHP-FPM+eAccelerator+mysql (阅读 6,482)
  7. Apache2中俩种设置PHP的异同 (阅读 6,340)
  8. Linux(Ubuntu 10.04)上安装配置apache+php+mysql+phpmyadmin (阅读 5,840)
  9. 在FreeNAS/BSD搭建基于Nginx+FastCGI+MySQL+PHP的WebServer (阅读 5,440)
  10. 在Mac OS X中运行Apache + PHP + MySQL (阅读 5,241)