phpMyAdmin won't let me login - no error shown

2020-08-14 10:00发布

问题:

I have phpMyAdmin on a remote server. It was fine until today, I used it many times (so the username and password are fine). However, today the whole site did not worked, it simply said "too many connections".

First I retried to restart Apache and MySQL, and it didn't fixed the problem.

Then I rebooted it with shutdown -r now, and the main site does work now, but phpMyAdmin still won't log in (and it does not show any error). After typing my user and password and hitting enter, it shows the exact page (with no error) as nothing would have happened. I can see that the token is different in the Address bar though.

I tried removing all php sessions manually from /tmp folder (by ftp), and it has the same problem. Could the database of phpMyAdmin itself be corrupt? How can I fix this?

Thanks in advance

回答1:

Possible reasons are-

a) user has been locked.

b) There are too many users more than specified.

c) Your System/Ip (rights were provided to which) has been changed.

Please follow below steps-

Step1: Please server connect with root user and check if you are able to use your DB.

Step2: execute below commands.

mysql> flush hosts;

Now try to connect from phpmyadmin if success then fine other wise check if you are getting any IP related error if yes then check if that ip have required permissions.

Other Reasons may be

  1. opened_files_limit crossed whatever you mentioned in your configuration file.
  2. disk full.
  3. too many thread opened/too many connections.
  4. your login_user has been locked due to wrong password input a certain times (limit mentioned in configuration file default is 10).
  5. mysql port (default is 3306) is not open on DB server from outside.
  6. user does not have permissions from your system IP. etc.


回答2:

My issue was, I was using HTTP instead of HTTPS. I don't know why, my server allows both connections, but I must have made a change some where so it only allows HTTPS connections. Once I switched over, the website started to work again.



回答3:

In my case, the hard drive on the server was full.

In Linux, use df -h to view the available space on the hard drive and clean up unnecessary files.



回答4:

I just spend forever troubleshooting this.

You are missing the mcrypt extension.

The mcrypt extension is missing. Please check your PHP configuration

You can check if this is the case by forcing

$cfg['Servers'][$i]['auth_type'] = 'http';

and looking at errors when you login.



回答5:

Possibly no space left on the device. In many cases it will not allow to create the session due to lack of space for the file.



回答6:

In my case, it was that I was trying to access through HTTP, not HTTPS.

Once I changed the address to https://mysite/phpmyadmin I was able to access.



回答7:

I had similar problems with login. I solved it by clearing browsing data in Chrome. Maybe just simple restarting Chrome would be enough. I noticed that I was able to login in incognito mode even without clearing browsing data or restarting Chrome. Interesting when I was trying clearing cookies for site manually it didn't solve the problem.



回答8:

Check if there is enough space available on server. In my case it was space problem. I deleted some files and its working fine now.

To check available space : df -h

To check available inodes : df -i

CodeIgniter cache was taking so much space.



回答9:

If there are multiple MYSQL connection running simultaneously, PHPMYADMIN won't allow you to login (neither it'll show any error).

Either you need to increase your max_user_connection value (you can do that via ini) or you need to wait for sometime and try.



回答10:

Had the same issue.

I made a typo in my php.ini file (letter 'B' at the end of 2GB is the error):

post_max_size = 2GB
upload_max_filesize = 2GB

Apache started up but the php.ini file didn't load correctly. After fixing the typos and reloading Apache every thing worked ok.



回答11:

Another reason not mentioned so far:

Modifying the webserver headers such as X-Frame-Options and others can have an effect on loading any page post-login. After login, you may see the login page refresh, but notice the address bar shows index.php+hash (meaning you are actually logged in). Or, you may simply get a blank page.

Use a browser inspector to check your PMA login page for headers received - if you see something, check your webserver configuration files for header modifications. In my case X-Frame-Options was set along with others. Once I commented these out, PMA was fine..



回答12:

sudo htpasswd /etc/phpmyadmin/htpasswd.setup admin



回答13:

a redirect can cause error. for example this lines in .htaccess in root folder :

# redirect all index.php to the folder root
RewriteCond %{THE_REQUEST} ^.*/index\.php
RewriteRule ^(.*)index.php$ /$1 [R=301,L]

to solve it , you can simply create a .htaccess in PMA directory and put this line in it :

RewriteEngine Off


回答14:

My issue was a hard coded host ip in the config file:

$cfg['Servers'][$i]['host']

Since my host IP has changed, I started having the issue.

Hope this helps someone else.