Не удалось подключиться к локальному серверу MySQL с Laravel

Когда я запускаю эту команду find / -name my.cnf, я нахожу два места для my.cnf

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

Я не понимаю, какой из них используется сервером MySQL?

И когда я запускаю команду php artisan migrate, я получаю эту ошибку

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

Вы все можете очень четко видеть путь к ошибке, показывающий /var/run/mysqld/mysqld.sock (На самом деле, в моей системе / на рабочем столе. В «папке запуска» нет имени папки «mysqld»)

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

Итак, в чем может быть проблема. ?? Пожалуйста помоги. Я задал вопрос здесь: адрес привязки отсутствует в моем. cnf файл - Laravel 3 часа назад, но до сих пор нет ответа.


person Nana Partykar    schedule 07.09.2015    source источник


Ответы (3)


Прежде всего,

  • Найдите в своей системе файл php.ini с помощью команды $ php -i |grep php\.ini ИЛИ щелкните где я могу найти php.ini для php-cli.
  • Откройте файл php.ini.
  • И убедитесь, что эти строки присутствуют или нет.

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

  • Если да, удалите (;) перед ними.
  • Если нет, запустите эту команду sudo apt-get install php5-mysql

Теперь введите команду php artisan migrate. Я уверен, что вы получите ошибку

не может подключиться к локальному серверу MYSQL через сокет

В настоящее время,

  • Измените адрес привязки с localhost на 127.0.0.1
  • Запустите /opt/lampp/bin/php.
  • После запуска этого, если вы получите

"невозможно загрузить динамическую библиотеку"

Затем удалите php_mssql.dll extension (для не Windows)

  • Если ошибка не возникает, перейдите непосредственно в файл Project-Name-Folder / config / database.php и добавьте этот код 'unix_socket' => '/opt/lampp/var/mysql/mysql.sock',

Найдите полный путь к mysql.sock и добавьте его

'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,
],
person Nana Partykar    schedule 11.09.2015

Я думаю, вам нужно удалить лампу, лучше использовать ручную настройку, установить mysql и apache2 вручную, не используйте лампу!

person Fky    schedule 07.09.2015

Сначала убедитесь, что MySQL запущен (просто, но хорошо для проверки!), И убедитесь, что выполняется правильная установка MySQL (если у вас есть установка LAMP, а также автономная установка MySQL).

Если вы подключаетесь с помощью localhost, попробуйте подключиться с помощью 127.0.0.1. Вместо сокета может использоваться соединитель TCP / IP - это просто временное решение.

person Nerdwood    schedule 07.09.2015