Не удалось подключиться к локальному серверу 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» не находится внутри «run folder»)

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

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

1

Решение

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

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

    а) extension=mysql.so б)extension=pdo_mysql.so

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

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

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

Сейчас,

  • Изменить bind-адрес с localhost в 127.0.0.1
  • Бежать /opt/lampp/bin/php,
  • После запуска этого, если вы получаете

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

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

  • Если вы не получили ошибку, приходите прямо к Проект-Имя-папка / конфигурация / 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,
],
3

Другие решения

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

0

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

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

0