php - Why can't I run a working PDO connection through terminal?Get the solution ↓↓↓
I think, your unix_socket changed and you didn't change your php client php.ini
First of all, get your unix_socket location.
$ mysql -uroot -p
Enter your mysql password and login your mysql server from command line.
mysql> show variables like '%sock%'; +
Your unix_soket could be diffrent.
Then change your php.ini, find your php.ini file from
You maybe install many php with different version, so please don't assume your php.ini file location, get it from your 'phpinfo';
Change your php.ini:
Then restart your apache or php-fpm.
It looks like you're using
localhost as the connection string for your MySQL database. When MySQL sees
localhost, it interprets that as "use a mysql.sock" file. PHP is telling you it can't find that mysql.sock file.
The most likely cause for this is your web server and command line PHP are configured to use different
php.ini files, and those
php.ini files have differently configured
mysql.sock files. You can find your web server
php.ini file(s) by running
from a PHP file loaded via the web server. You can find your command line
php.ini file(s) by running the following
$ php --ini
If you can't fix your command line
php.ini file, consider connecting to your MySQL server via
127.0.0.1 instead of
localhost. When you use the IP address, PHP should attempt to connect via the network instead of a socket file.
Share solution ↓
Link To Answer People are also looking for solutions of the problem: the payload is invalid.
Didn't find the answer?
Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.
Find the answer in similar questions on our website.
Write quick answer
Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.