Method 1
I saw that the CakePHP documentation required the installation of the pdo_mysql extension, so I tried to install it.
My system here is CentOS 6.0. If your system is another version of Linux/Unix, you can refer to it. If your system is Windows, sorry, the following content is not suitable for you, please move on.
First, download the source code package of the pdo_mysql extension. The download page is here: http://pecl.php.net/package/PDO_MYSQL. You can download it first and then transfer it to the server using FTP.
I copied the download address and then used wget to download it directly to the server.
# wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
Then decompress.
# tar -zxvf PDO_MYSQL-1.0.2.tgz
Enter the decompressed directory and execute phpize.
# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
The makefile is generated below. The last two parameters must be added. I did not add them at first, but the result was that the header files of php-config and mysql could not be found.
# ./configure –with-php-config=/usr/local/php/bin/php-config –with-pdo-mysql=/usr/local/mysql
Before making, you need to make a soft connection to the mysql header file. Because the directory is specified when MySQL is installed, the header file will still not be found without making a soft connection.
# ln -s /usr/local/mysql/include/* /usr/local/include/
Then make and make install.
# make
# make install
After that, the following prompt will appear, which means that the extension is installed in the following directory.
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/
For convenience, I moved the pdo_mysql.so file to the extensions directory.
# mv /usr/local/php/lib/php/extensions/no-debug-zts-20100525/pdo_mysql.so /usr/local/php/lib/php/extensions/
Then you can modify the php.ini file.
Find the line; extension_dir = “./”, remove the comment, and modify the path.
extension_dir = “/usr/local/php/lib/php/extensions/”
After my testing here, I found that php will only look for extension so from this directory, but not the subdirectories under this directory. So before, I moved all so files to this directory for unified management.
Find the line; extension=php_pdo_mysql.dll, remove the comment, and modify the following file name.
extension=pdo_mysql.so
The file name is different. You need to remove the php_ prefix here, otherwise the file cannot be found. The following dll is the file name under windows, we change it to so.
Finally, just restart apache. Use phpinfo() to check and find that it has taken effect.
Method 2
PDO_MYSQL The following operations are performed under the Linux system
1. Download the file or enter ext/pdo_mysql
in the PHP source packagehttp://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
2. Unzip the file
tar zxvf PDO_MYSQL-1.0.2.tgz
3. Configuration and compilation files
cd PDO_MYSQL-1.0.2
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config –with-pdo-mysql=/usr/local/mysql
make
make install
Note: My PHP is installed in: /usr/local/php/ mysql is installed in: /usr/local/mysql When compiling, pay attention to where your own installation directory is
3. Install into PHP configuration
Remember this, then open the php.ini file,
and add a line
extension=pdo_mysql.so
Windows PDO MYSQL extension installation
pdo is not enabled in php.ini, so modify php.ini and remove the semicolon from the front of the code that looks like the following. The modification is as follows:
extension_dir="E:/amp/php/ext" //Configure here as your own ext directory path
……
extension=php_mysql.dll
……
extension=php_pdo.dll
……
extension=php_pdo_mysql.dll
After restarting apache, the access continues to report the following error:
CDbConnection could not open the database connection: could not find driver
It means that the database driver cannot be found. I checked again with phpinfo. PDO is indeed enabled, but the database supported by PDO shows no value, indicating that the php_pdo_mysql.dll extension cannot be loaded. After many attempts, including changing the version of php and changing the version of mysql. But none of them worked. Is it really impossible to enable the mysql pdo extension of php?
I searched and searched online and finally found the solution
Method 1: You need to add the path of the PHP installation directory to the system environment variable PATH, so that the problem can be solved.
Method 2: Because I deployed it on the server and the server is running, I cannot restart it. Therefore, I can also copy libmysql.dll in the PHP installation directory to the windows directory
Restart apache