PHP之PDO_MYSQL擴充安裝步驟

來源:互聯網
上載者:User

標籤:

轉載地址: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 是否已經啟動.
另外看看是不是許可權問題.
------------------------------------------------------------------------------------
[[email protected] beinan]#chown -R mysql:mysql /var/lib/mysql
[[email protected] beinan]# /etc/init.d/mysqld start
啟動 MySQL: [ 確定 ]
[[email protected] lib]# mysqladmin -uroot password ‘123456‘
[[email protected] 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!

PHP之PDO_MYSQL擴充安裝步驟

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.