Reputation: 793
I have a problem with phpmyadmin on ubuntu 12.04. I have already installed apache2, php5, mysql and phpmyadmin.
The phpinfo();
script, don't show nothing about mysqli or mysql extension.
When I try start phpmyadmin this error appear:
---- **phpMyAdmin - Error** ------- **The mysqli extension is missing. Please check your PHP configuration.** ----
In the php.ini file, I uncommented extension=mysql.so
line, but doesn't work...
Anyone have another posible solution?
Upvotes: 69
Views: 390103
Reputation: 4560
Latest phpMyAdmin versions require mysqli extension and will no longer work with mysql one (note the extra "i" at the end of its name).
For PHP 7.3
sudo apt-get install php7.3-mysqli
For PHP 8
sudo apt-get install php8.0-mysqli
Will install package containing both old one and the new one, so afterwards all you need to do is to add
extension=mysqli.so
in your php.ini, under the subject Dynamic Extensions.
Restart apache:
sudo systemctl restart apache2
Authenticate if needed and press enter.
Should be done! If problem still occurs remove the browser cache.
Upvotes: 131
Reputation: 46
I hope my successful answer helps someone in recent times as I had to try many mix-and-matches and then found it:
This solution worked for me on Ubuntu 20.04 Desktop with PHP v7.4, PHP v8.0.7 and MySQL v8.0.25 setup.
What I did was edited /etc/php/7.4/apache2/php.ini
and /etc/php/8.0/apache2/php.ini
files and replaced
extension=mysqli.so
with
extension=/usr/lib/php/20190902/mysqli.so
in both the files.
Later, restarted both of these (PHP and MySQL) by sudo systemctl restart apache2
and sudo systemctl restart mysql
. Refreshed Chrome, and phpMyAdmin responded with the login screen.
(UPDATE: Please check if you have /usr/lib/php/20200930/mysqli.so
file as well. I tested this as it looked newer by directory date, and this too worked in both the PHP files as extension=/usr/lib/php/20200930/mysqli.so
)
Upvotes: 0
Reputation: 820
Had the very same problem, but in my case the reason was update of Ubuntu and php version - from 18.04 and php-7.2 up to 20.04 and php-7.4.
The Nginx server was the same, so in my /etc/nginx/sites-available/default was old data:
server {
location /pma {
location ~ ^/pma/(.+\.php)$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
}
I could not get phpmyadmin to work with any of php.ini changes and all answers from this thread, but at some moment I had opened the /etc/nginx/sites-available/default and realised, that I still had old version of php. So I just changed it to
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
and the issue was gone, phpmyadmin magically started to work without any mysqli-file complaint. I even double checked it, but yeap, that's how it works - if you have wrong version for php-fpm.sock in your nginx config file, your phpmyadmin will not work, but the shown reason will be 'The mysqli extension is missing'
Upvotes: 0
Reputation: 9373
I faced same issue and resolved it by doing following steps:
First check PHP versions. If you have multiple PHP Versions. Suppose you have PHP versions like php7.0, php7.1 and php 7.2 then
run these commands
For PHP7.0
sudo apt-get install php7.0-mysql
sudo apt-get install php7.0-mysqlnd
For PHP7.1
sudo apt-get install php7.1-mysql
sudo apt-get install php7.1-mysqlnd
For PHP7.2
sudo apt-get install php7.2-mysql
sudo apt-get install php7.2-mysqlnd
For PHP7.3
sudo apt-get install php7.3-mysql
sudo apt-get install php7.3-mysqlnd
Edit the ini file and look for mysqli. Uncomment the line by removing ; for all php versions
extension=mysqli.so
/etc/php/<php.version>/apache2/php.ini
For PHP7.0
sudo nano /etc/php/7.0/apache2/php.ini
For PHP7.1
sudo nano /etc/php/7.1/apache2/php.ini
For PHP7.2
sudo nano /etc/php/7.2/apache2/php.ini
For PHP7.3
sudo nano /etc/php/7.3/apache2/php.ini
and last restart apache server
sudo /etc/init.d/apache2 restart
Upvotes: 5
Reputation: 2103
For Ubuntu 20.04 users with php-fpm I fixed the issue by adding the full path in the php conf:
edit /etc/php/7.4/fpm/conf.d/20-mysqli.ini
and replace
extension=mysqli.so
with:
extension=/usr/lib/php/20190902/mysqli.so
Upvotes: 2
Reputation: 140
For the record, my system is Ubuntu Server 20.04 and none of the solutions here worked. For me, I installed PHP 7.4 and I had to edit enter code here
/etc/php/7.4/apache2/php.ini`.
Within this, search for ;extension=mysqli
, uncomment and change mysqli
to mysqlnd
so it should look like this extension=mysqlnd
. I tried using mysqli
but I faced the same error as if I didn't enable it but mysqlnd
worked for me.
Upvotes: 0
Reputation: 164
I have encountered the same error on ubuntu and what worked for me was editing 2 lines in /etc/php/7.3/apache2/php.ini
;extension=mysqli to extension=mysqli
and gave the extension variable location to mysqli.so after uncommenting it
extension=/usr/lib/php/20170718/mysqli.so
then restart the service just to make sure
systemctl start mysql
Upvotes: 0
Reputation: 49
You need the MySQLi module. This error usually occurs when manually installing phpMyAdmin.
sudo apt-get install php7.3-mysql
It will return you with.
[Creating config file /etc/php/7.3/mods-available/mysqlnd.ini with new version]
[Creating config file /etc/php/7.3/mods-available/mysqli.ini with new version]
Then.
sudo service apache2 restart.
Then.
Press F5 on your browser.
Upvotes: 1
Reputation: 1218
Just add this line to your php.ini if you are using XAMPP etc. also check if it is already there just remove ; from front of it
extension= php_mysqli.dll
and stop and start apache and MySQL it will work.
Upvotes: 1
Reputation: 417
Since I had this problem following an upgrade, I just disable Apache2-php5
a2dismod php5
and activated php7
a2enmod php7
Hope it may help anybody!
Upvotes: 0
Reputation: 1046
For ubuntu user open your terminal and type following command
sudo apt-get install mysql
After that just restart apache2 by typing this
sudo service apache2 restart
refresh you browser and enjoy phhmyadmin
Upvotes: 2
Reputation: 336
I tried a lot of the answers and none of them seemed to work because php7.0 is not the default.
sudo apt-get upgrade
seemed to do the job for me but I had to reinstall php7.0 and phpmyadmin after that:
sudo apt-get install php7.0 php7.0-mysql
sudo apt-get install apache2 apache2-mod-php7.0
sudo apt-get install phpmyadmin
Hope it helps!
Upvotes: 5
Reputation: 1
at ubuntu 12.04 i had to change mssql.compatability_mode = On
.
put On and works
Upvotes: 0
Reputation: 1024
sudo apt-get install php5-mysql
sudo apt-get install php5-mysqlnd
try both of alternatively it works for me
Upvotes: 32
Reputation: 113
Just restart the apache2 and mysql:
apache2: sudo /etc/init.d/apache2 restart
mysql: sudo /etc/init.d/mysql restart
then refresh your browser, enjoy phpmyadmin :)
Upvotes: 7
Reputation: 20110
Checking the extension_dir is one of the thing you like to check from phpinfo().In my case it was extension_dir = "./" by default which was wrong. Change it to extension_dir = './ext/' or where all your extension dlls are currently residing.
Upvotes: 1
Reputation: 262
I solved this problem by editing /usr/local/zend/etc/php.ini.
(found it by doing netstat -nlp ¦ grep apache, then strace -p somepid ¦ grep php.ini).
At the end of the file, I added:
extension=/usr/lib/php5/20090626+lfs/mysql.so
extension=/usr/lib/php5/20090626+lfs/mysqli.so
extension=/usr/lib/php5/20090626+lfs/mcrypt.so
Adding it without the path did not work.
Then after a restart it worked.
Upvotes: 2
Reputation: 151
This worked for me , make a database with a php and mysql script and open up the mysql console and type in create user 'yourName'@'127.0.0.1' and then type in grant all privileges on . to 'yourName'@'127.0.0.1' then open up a browser go to localhost and a database should been made and then go to your phpmyadmin page and you will see it pop up there.
Upvotes: 0
Reputation: 319
If you run PHPMyAdmin on localhost uncomment in file /etc/php5/apache2/php.ini
this line:
mysqli.allow_local_infile = On
Restart Apache:
sudo /etc/init.d/apache2 restart
Upvotes: 31