1

When I run this command find / -name my.cnf I find two locations for my.cnf

  • /opt/lampp/etc/my.cnf
  • /etc/mysql/my.cnf

I don't get which one is used by MySQL server?

And, when i run command php artisan migrate , I get this error

 [PDOException]                                                              
  SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket ' 
  /var/run/mysqld/mysqld.sock' (2) 

You can all see very clearly the error path showing /var/run/mysqld/mysqld.sock (Actually, in my system/desktop. There is no folder name "mysqld" inside "run folder")

I have a `mysql.sock` file inside /opt/lampp/var/mysql/mysql.sock

So, what can be the issue. ?? Please help. I asked the question here bind-address not present in my.cnf file - Laravel 3 hours before, but no response until now.

3 Answers 3

3

First of all,

  • Find your php.ini file in your system using $ php -i |grep php\.ini command OR click where can I find the php.ini for php-cli.
  • Open php.ini file.
  • And, make sure these lines are present or not.

    a) extension=mysql.so b)extension=pdo_mysql.so

  • If Yes, remove (;) this before them.
  • If not present, run this command sudo apt-get install php5-mysql

Now, type php artisan migrate command. I'm sure you will get error

can't connect to local MYSQL server through socket

Now,

  • Change bind-address from localhost to 127.0.0.1
  • Run /opt/lampp/bin/php.
  • After running this if you get

"unable to load dynamic library"

Then, remove php_mssql.dll extension (for non-windows)

  • If not getting error, come directly to Project-Name-Folder/config/database.php file and add this code 'unix_socket' => '/opt/lampp/var/mysql/mysql.sock',

Find the complete path of mysql.sock, and add it

'mysql' => [
    'driver'    => 'mysql',
    'host'      => env('DB_HOST', 'localhost'),
    'database'  => env('DB_DATABASE', 'danishLara'),
    'username'  => env('DB_USERNAME', 'root'),
    'password'  => env('DB_PASSWORD', ''),
    'unix_socket'   => '/opt/lampp/var/mysql/mysql.sock', //Add this line here
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
    'strict'    => false,
],
Sign up to request clarification or add additional context in comments.

Comments

0

I think you have to uninstall lamp , it's better to use a manual configuration install mysql and apache2 manualy don't use lamp !

Comments

0

Make sure that MySQL is running first (simple, but good to check!), and make sure that the correct install of MySQL is being run (if you have a LAMP install as well as a standalone MySQL install).

If you are connecting using localhost, try connecting using 127.0.0.1. This may use a TCP/IP connector instead of the socket - just a workaround.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.