How to enable mysqlnd for php?
Solution 1
The ./configure
command is part of the compilation process from source code.
You can either compile from source or install via package manager. I guess in your case the package manager is preferable.
As the package manager complains, you can’t have both php-mysql
and php-mysqlnd
installed.
So you can
yum remove php-mysql
before
yum install php-mysqlnd
Then check for success via
php -m | grep mysqlnd
or
php -i | grep mysqlnd
Solution 2
yum swap php-mysql php-mysqlnd
Solution 3
yum install php-mysqlnd
is only available on CentALT and maybe remi repos. Webtatic also has some good php repos as well. It is NOT on the default ones (I was using CentOS).
Solution 4
I may be late with this but it could be of help to others. As already said elsewhere in the forum, if a call to a function like get_result complains that it is undefined, then php-mysqlnd need to be installed (this question). I realized that doing yum install (centos) will automatically reports that it wants to remove php-mysql and phpmyadmin; do not accept this as your phpmyadmin may not work after. Instead, use yum shell which will take the commands at once and gracefully handle the change over; do these in command line:
# yum shell
> remove php-mysql
> install php-mysqlnd
> run
> quit
Now you may have to restart both the mariadb (most likely) and the httpd services.
Related videos on Youtube
Comments
-
SimonW almost 2 years
I have PHP installed and running (version: 5.3.17) and I want to switch to mysqlnd (in the phpinfo mysqlnd does not exist at all).
I read that in order to set it, you need to update the
./configure
command:./configure --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \
When I tried installing it with
yum install php-mysqlnd
I get an error:---> Package php-mysqlnd.x86_64 0:5.3.17-1.26.amzn1 will be installed --> Processing Conflict: php-mysql-5.3.17-1.26.amzn1.x86_64 conflicts php-mysqlnd --> Finished Dependency Resolution Error: php-mysql conflicts with php-mysqlnd
-
Admin over 11 yearsrefer this article.. for mysql compilation. sysadmindiaries.blogspot.in/2012/11/…
-
-
SimonW over 11 yearsI have PHP installed and running (version: 5.3.17). In the phpinfo mysqlnd does not exist at all. As I wrote above, I read that I need to update the
./configure
command for the runtime compilation but I don't know how to change the./configure
command... -
Sophivorus almost 9 yearsWill
yum remove php-mysql
remove any data? Do I need to backup my databases? -
Eric L. almost 9 years@FelipeSchenone / others, you can do this in a yum shell to seamlessly update php-mysql with mysqlnd: 1.
yum shell
2.remove php-mysql
3.install php-mysqlnd
4.run
5.quit
, then restart Apache and it'll load the native driver -
Eric L. almost 9 yearsThis just replaces the old, crappy PHP MySQL driver with the full-featured, newer one. It doesn't affect the databases in the slightest.
-
Will about 8 yearsCan you explain your answer?
-
Martin Greenaway about 7 yearsUsing apt-get instead of yum, it's included in the php[version]-mysql package.
-
qrtLs about 7 yearsRestart the server afterwards:
sudo service apache2 restart
-
Tanuki almost 7 yearsFor PHP 5.6 on CentOS 7 I had to use
rpm -qa | grep -i 'php56w-mysql'
to get the package name "php56w-mysql-5.6.31-1.w7.x86_64". thenrpm --nodeps -ev php56w-mysql-5.6.31-1.w7.x86_64
to remove that package without removing any dependencies (such as phpMyAdmin). After that I installed the appropriate package withyum install php56w-mysqlnd
(from webtatic repo). Verifying usingphp -m | grep mysql
shows mysql, mysqli, mysqlnd and pdo_mysql. Success! -
utdev over 6 yearsIf I ` php -m | grep mysqlnd` I get this output mysqlnd, but I can't still run the service like this
sudo service start mysqlnd
it returns me followingstart: unrecognized service
using an ubuntu btw -
Theo Orphanos over 5 yearsWorked for me on a centos 7 machine
-
leonheess over 5 yearsThis is amazing! I didn't even know that command existed! Thank you so much, @iamarobot