• PHP之PDO_MYSQL扩展安装步骤


    转载地址:http://www.cnblogs.com/qq78292959/p/4084868.html

    看到CakePHP文档要求安装pdo_mysql扩展,于是就尝试安装了一下。

    这里我的系统是CentOS 6.0。如果你的系统是其他版本的Linux/Unix,可以参考。如果你的系统是Windows的,抱歉,以下内容不适合你,请移步。

    首先是下载pdo_mysql扩展的源码包。下载页面在这里:http://pecl.php.net/package/PDO_MYSQL。可以先下载了然后用FTP传到服务器。

    我是在复制了下载地址以后使用wget直接下载到服务器端的。
    # wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz

    然后是解压缩。
    # tar -zxvf PDO_MYSQL-1.0.2.tgz

    进入解压后的目录,然后执行phpize。
    # /usr/local/php/bin/phpize
    Configuring for:
    PHP Api Version: 20100412
    Zend Module Api No: 20100525
    Zend Extension Api No: 220100525

    下面生成makefile。后面的两个参数必须要添加,一开始我没有添加,结果分别都提示找不到php-config和mysql的header文件。
    # ./configure –with-php-config=/usr/local/php/bin/php-config –with-pdo-mysql=/usr/local/mysql

    在make之前还要做一个mysql的header文件的软连接。因为mysql安装的时候指定了目录,不做软连接的话,还是找不到header文件。
    # ln -s /usr/local/mysql/include/* /usr/local/include/

    然后make和make install。
    # make
    # make install

    之后会提示如下,意思是扩展被安装到了如下目录里。
    Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/

    为了方便,我把pdo_mysql.so文件移动到extensions目录下。
    # mv /usr/local/php/lib/php/extensions/no-debug-zts-20100525/pdo_mysql.so /usr/local/php/lib/php/extensions/

    随后就可以修改php.ini文件了。

    找到; extension_dir = “./”这一行,去掉注释,并修改路径。
    extension_dir = “/usr/local/php/lib/php/extensions/”
    这里经过我测试,发现php只会从该目录寻找扩展so,而并不寻找该目录下的子目录。所以之前我为了统一管理,把so文件都移动到该目录下。

    找到; extension=php_pdo_mysql.dll这一行,去掉注释,并修改后面的文件名。
    extension=pdo_mysql.so
    文件名不太一样,这里要把php_前缀去掉,否则找不到文件。后面的dll是windows下的文件名,我们改成so。

    最后重启apache就可以了。用phpinfo()查看发现已经生效了。

    今天连接MySQL数据库的时候遇到一个问题:Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

    参考网上相关的方法,包括:(http://blog.csdn.net/lmss82/archive/2009/08/05/4414178.aspx

    方案1.
     1.#ps -A|grep mysql
       显示类似:
      1829 ?        00:00:00 mysqld_safe
       1876 ?        00:00:31 mysqld
      2.#kill -9 1829
      3.#kill -9 1876
      4.#/etc/init.d/mysql restart
      5.#mysql -u root -p
     
       他的麻烦解决了,我的还没解决!
     
    继续找
    方案2
    先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已经启动.
    另外看看是不是权限问题.
    ------------------------------------------------------------------------------------
    [root@localhost beinan]#chown -R mysql:mysql /var/lib/mysql
    [root@localhost beinan]# /etc/init.d/mysqld start
    启动 MySQL: [ 确定 ]
    [root@localhost lib]# mysqladmin -uroot password '123456'
    [root@localhost lib]# mysql -uroot -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or /g.
    Your MySQL connection id is 3 to server version: 4.1.11

    Type 'help;' or '/h' for help. Type '/c' to clear the buffe
     
    他的也解决了,我的麻烦还在继续,依然继续寻找
     
    方案3
    问题解决了,竟然是max_connections=1000 他说太多了,然后改成500也说多,无奈删之问题解决了。
     
    还是不行
    方案4
       
         /var/lib/mysql 所有文件权限 改成mysql.mysql
        
         不行不行
     
    方案5
         摘要:解决不能通过mysql .sock连接MySQL问题 这个问题主要提示是,不能通过 '/tmp/mysql .sock'连到服务器,而php标准配置正是用过'/tmp/mysql .sock',但是一些mysql 安装方法 将 mysql .sock放在/var/lib/mysql .sock或者其他的什么地方,你可以通过修改/etc/my.cnf文件来修正它,打开文件,可以看到如下的东东:
       [mysql d]
      socket=/var/lib/mysql .sock
      改一下就好了,但也会引起其他的问题,如mysql 程序连不上了,再加一点:
      [mysql ]
      socket=/tmp/mysql .sock
      或者还可以通过修改php.ini中的配置来使php用其他的mysql .sock来连,这个大家自己去找找
      
      或者用这样的方法:
      ln -s /var/lib/mysql /mysql .sock /tmp/mysql .sock

    成功了,就是这样ln -s /var/lib/mysql /mysql .sock /tmp/mysql .sock

    OK!

  • 相关阅读:
    Eclipse RCP与Spring OSGi:技术详解与最佳实践
    AutoCAD 2016机械设计从入门到精通(第2版)
    中文版CorelDRAW X7平面设计
    神奇的中文版Photoshop CC 2017入门书
    Hadoop实战(第2版)
    1048.判断三角形类型
    1046.求最大值
    1047.素数判定
    1056.最大公约数
    1057.众数
  • 原文地址:https://www.cnblogs.com/gzyx1988/p/5637929.html
Copyright © 2020-2023  润新知