Yes: mysqlnd is now built shared and has to be loaded. However, I am trying to understand how your problem is caused. On a 15.4 system I have at hand, phpinfo() gives: <h2><a name="module_mysqli">mysqli</a></h2> <table> <tr class="h"><th>MysqlI Support</th><th>enabled</th></tr> <tr><td class="e">Client API library version </td><td class="v">mysqlnd 7.4.33 </td></tr> [...] </table> <h2><a name="module_mysqlnd">mysqlnd</a></h2> <table> <tr class="h"><th>mysqlnd</th><th>enabled</th></tr> <tr><td class="e">Version </td><td class="v">mysqlnd 7.4.33 </td></tr> [...] </table> and it is in sync with php -m. This is thanks to /etc/php7/conf.d/_mysqlnd.ini which is supposed to load mysqlnd.so extension _before mysqli.so (/etc/php7/conf.d/mysqli.ini). /etc/php7/conf.d/* installed by php extension packages should be loaded automatically by whatever sapi.