Error sqlstate hy000 2002 no such file or directory

The major reasons for sqlstate hy000 error 2002 include stopped MySQL server, insufficient server resources, incorrect database settings, etc.

Databases play a critical role in the proper working of any web applications. They store, organize and manage a large amount of user data.

Any problem with database connectivity can cause website errors. And the error show up as “sqlstate hy000 error 2002.”

At Bobcares, we specialize in fixing database errors for our customers as part of our Server Management Services.

Today, we’ll see various reasons for sqlstate hy000 error 2002 and how our Database Engineers fix it.

Examining sqlstate 2002 error

Before we dive into the solution, let’s first check the sqlstate 2002 error in detail.

In general, when we configure any PHP application, we specify the details of the database in the configuration file. The same is applicable in case of popular content management systems like WordPress, Joomla, Magento, etc. And, when we update or change any setting in the website, it gets saved on the database. For this to work, there should not be any problem with database connection with MySQL host server.

The database connection can fail due to reasons like wrong database details in the configuration file, port restrictions on the server, missing files, lack of resources on the server and so on.

In simple terms, MySQL error 2002 denotes a problem of connection between the website code and the database.

There are many variants of the sqlstate hy000 2002 error. The details are readily available in the second part of the error message.

From our experience in managing servers, our Dedicated Engineers see variants of sqlstate hy000 error 2002 as

Connection failed: SQLSTATE[HY000] [2002] Connection refused
Connection failed: SQLSTATE[HY000] [2002] No such file or directory
SQLSTATE[HY000] [2002] Resource temporarily unavailable
exit status 3

Again, a similar error on a Magento website appear as :

What causes sqlstate hy000 error 2002?

Now, let’s have a look on the possible causes for sqlstate hy000 error 2002.

1.MySQL server not running

In many of the cases where websites report sqlstate 2002 error, the underlying reason would be stopped MySQL server. And, this can happen due to broken MySQL libraries, resource crunch on the server, etc. When MySQL is not running on the server, the website will not be able to connect to the database and its reports “Connection refused error.

2. Incorrect database settings

Similarly, a major reason for sqlstate hy000 2002 error is the incorrect database settings in the configuration file. For the proper working of the program, the file should contain correct database server name, database user details and password.

If the MySQL service is listening on 127.0.0.1, the same settings should be given in the database connection string. Moreover, the MySQL server should accept connections on this IP address too.

3. Insufficient server resources

Last and not the least, insufficient server resources also can be a reason for MySQL errors. When the server has too many MySQL queries, it requires too much server memory. Additionally, when websites use resource intensive queries, it add to the server load and lack of memory on the server. It ends up in errors like “SQLSTATE[HY000] [2002] Resource temporarily unavailable.

How we fix sqlstate hy000 error 2002

Let’s take a look on how our Dedicated Engineers helped one of our customers to fix the sqlstate hy000 error 2002.

The customer was using a PHP tracking script on his website. There was a high volume of MySQL activity (about 4 inserts a second), from this tracking script, and this was causing the MySQL Connection time out error. And, on the website it resulted in error:

Exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Connection timed out

It was a sign of PHP script timing out while connecting to MySQL host.

1. Ensure MySQL running status

Here, we first checked the status of MySQL server. It was running fine on the server as per the snippet below.

● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-03-09 15:25:43 xx; 2 weeks 5 days ago

Therefore, we isolated the problem with MySQL server status.

2. Correcting Configuration file

As the second step, we checked and confirmed that the script was using correct Database details including Hostname, User and Password. Moreover, the website was showing data from the database too. Thus, the connection was happening. The error was happening only at certain intervals.

Additionally, we checked that MySQL database user was able to connect from the command line.

3. Fixing server resources

Since we already ruled out configuration errors, the next thing to check was the server resources. Here, our Dedicated Engineers checked the memory usage on the server. We found that MySQL memory usage was high in the server (around 89% of available memory).

PID  USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                             
30571 mysql     20   0 58.947g 0.055t   9832 S 135.1 89.2  16872:22 /usr/sbin/mysqld  

The memory usage statistics on the server looked as below.

We could see that there was a scope for MySQL tweaks in the server. Therefore, we analyzed the MySQL server performance by watching the MySQL queries and its impact on the server. Then our expert Database Engineers tweaked certain MySQL parameters such as join_buffer_size, table_open_cache and innodb_buffer_pool_instances.

After the tweaking, we restarted MySQL services at off-peak hours to minimize the impact on live websites. The performance on the MySQL server improved drastically and it fixed sqlstate hy000 error 2002 as well.

[Looking for tweaking MySQL server for improved performance? Our MySQL experts are available 24×7.]

Conclusion

In short, sqlstate hy000 error 2002 can happen due to stopped MySQL server, insufficient server resources, etc. Today we saw how our Dedicated Engineers troubleshooted and fixed MySQL errors for one of our customers.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

2021.08.27

В новом обновлении файлы Битрикса конфликтуют со старыми версиями нашего решением.
Чтобы это исправить, мы доработали модуль Intec.Core.

Для восстановления работы сайта нужно обновить модуль Intec.Core через раздел админки Marketplace или вручную как описано ниже:

  1. Пройти по пути /bitrix/modules/intec.core/classes/
  2. Открыть файл Core.php
  3. Заменить его содержимое на код, представленный ниже
  4. Сохранить файл.


<?php
namespace intec;

require(__DIR__ . '/CoreBase.php');

use inteccoreCoreBase;
use inteccorediContainer;
use inteccorehelpersEncoding;

class Core extends CoreBase
{
}

spl_autoload_register(['intecCore', 'autoload'], true, true);
Core::$classes = require(__DIR__.'/classes.php');
Core::$container = new Container();

// global $DB;
$settingsDB = include($_SERVER["DOCUMENT_ROOT"]."/bitrix/.settings.php");
$settingsDB = $settingsDB["connections"]["value"]["default"];

$DBHostParts = explode(':', $settingsDB["host"]);
$DBHostAddress = $DBHostParts[0];
$DBHostPort = isset($DBHostParts[1]) ? $DBHostParts[1] : null;

(new corebaseApplication([
    'id' => 'intec.core',
    'basePath' => $_SERVER['DOCUMENT_ROOT'],
    'charset' => Encoding::resolve(SITE_CHARSET),
    'components' => [
        'db' => [
            'dsn' => 'mysql:host='.$DBHostAddress.';dbname='.$settingsDB["database"].(!empty($DBHostPort) ? ';port='.$DBHostPort : null),
            'username' => $settingsDB["login"],
            'password' => $settingsDB["password"],
            'charset' => Encoding::resolve(SITE_CHARSET, Encoding::TYPE_DATABASE)
        ]
    ]
]));

unset($DBHostParts);
unset($DBHostAddress);
unset($DBHostPort);

Core::setAlias('@root/linked', dirname(dirname(dirname(dirname(__DIR__)))));
Core::setAlias('@bitrix', '@root'.BX_ROOT);
Core::setAlias('@upload', '@root/upload');
Core::setAlias('@modules', '@bitrix/modules');
Core::setAlias('@resources', '@bitrix/resources');
Core::setAlias('@templates', '@bitrix/templates');
Core::setAlias('@themes', '@bitrix/themes');
Core::setAlias('@intec/core/module', dirname(__DIR__));
Core::setAlias('@intec/core/libraries', '@intec/core/module/libraries');
Core::setAlias('@intec/core/resources', '@resources/'.Core::$app->id);

require(__DIR__.'/web.php');

Наши решения

Содержание

  1. Не работает yii migrate, выдает ошибку SQLSTATE[HY000] [2002] как побороть?
  2. PDOException SQLSTATE[HY000] [2002] нет такого файла или каталога
  3. 28 ответов:
  4. Шаг 1
  5. Шаг 2
  6. PDOException SQLSTATE[HY000] [2002] нет такого файла или каталога
  7. 28 ответов:
  8. Шаг 1
  9. Шаг 2

Не работает yii migrate, выдает ошибку SQLSTATE[HY000] [2002] как побороть?

Создаю новый проект на yii2 advanced. Открываю консоль директории сайта сделал php init и пишу потом: php yii migrate
на что мне выдает ошибку:

Искал в интеренете как решить эту проблему. Все перепробовал и замена в main-local.php localhost на 127.0.0.1 и писать в консоль sudo killall mysql. ничего не помогает. Переустанавливал MAMP (последняя версия), переустанавливал MAC OS (sierra).

upd.
прописал sudo php yii migrate
выдает:

  • Вопрос задан более трёх лет назад
  • 1691 просмотр

Средний 1 комментарий

Максим Тимофеев, да все подключается нормально
проверил подключение обычным скриптом php:

все вывело как надо.

The MAMP server uses a different php executable and setting. I suppose you are running yiic migrate command directly (if so this will use the php executable from your PATH settings like /usr/bin which maybe different than the MAMP version and its ini settings). Instead try this command:

$MAMP_PHP/bin/php yiic.php migrate

where $MAMP_PHP is the location of your MAMP PHP install. for example /Applications/MAMP/bin/php/php5.5.3

I would typically add an alias to my .bash_profile for such needs. For example:

alias php_mamp = ‘/Applications/MAMP/bin/php/php5.5.3/bin/php’

So you can directly run commands using this alias like:

php_mamp yiic.php migrate

Максим Тимофеев, СПАСИБО. Красавчик, от души. Уроки на ютубчике кстати у тебя очень полезные.
Вот что помогло:
Нашел в той статье рекомендацию замену в файле (main-local.php) соединения базы на:

Решение для MacOS 10.13 и MAMP/XAMPP (просто сменить путь к сокету).
Нужно создать симлинк на сокет MySQL, чтобы PHP смог его увидеть. Это решает проблему.

Источник

PDOException SQLSTATE[HY000] [2002] нет такого файла или каталога

Я считаю, что я успешно развернул свой (очень простой) сайт в fortrabbit, но как только я подключусь к SSH для запуска некоторых команд (например, php artisan migrate или php artisan db:seed ) Я получаю сообщение об ошибке:

в какой — то момент миграция должна была сработать, потому что мои таблицы есть-но это не объясняет, почему это не работает для меня сейчас.

28 ответов:

сообщение об ошибке указывает, что соединение MySQL через сокет пробуется (который не поддерживается).

в контексте Laravel (artisan) вы, вероятно, хотите использовать другую / правильную среду. Например: php artisan migrate —env=production (или любой другой среды). Смотрите здесь.

Laravel 4: изменить «хост» в app/config/database.php файл из «localhost» в «127.0.0.1»

Laravel 5: изменить «DB_HOST» в .env файл из «localhost» в «127.0.0.1»

у меня была точно такая же проблема. Ни одно из вышеперечисленных решений не сработало для меня. Я решил проблему, изменив «хост» в /app/config/database.php файл от «localhost»до » 127.0.0.1″.

не уверен, почему «localhost» не делает работа по умолчанию, но я нашел этот ответ в аналогичном вопросе, решенном в сообщении symfony2. https://stackoverflow.com/a/9251924/1231563

обновление: Некоторые люди спрашивали, почему это исправление работает, поэтому я сделал немного исследований в этой теме. Похоже, что они используют разные типы соединений, как описано в этом посте https://stackoverflow.com/a/9715164/1231563

проблема, которая возникла здесь в том, что «localhost» использует сокет UNIX и не может найти базу данных в стандартном каталоге. Однако «127.0.0.1» использует TCP (Transmission Control Protocol), что по существу означает, что он работает через «локальный интернет» на вашем компьютере, будучи гораздо более надежным, чем сокет UNIX в этом случае.

у меня такая же проблема, и я запускаю Mac OS X 10.10 Yosemite. Я включил сервер Apache и PHP, который уже поставляется с ОС. Затем я просто настроил библиотеку mCrypt для начала работы. После этого, когда я работал с моделями и БД я получил ошибку:

причина, которую я нашел, заключается в том, что PHP и MySQL не могут подключиться сами. Чтобы устранить эту проблему, я выполняю следующие действия:

откройте терминал и подключитесь к mysql с:

он запросит у вас соответствующий пароль. Затем, как только вы получите MySQL promt, введите следующую команду:

mysql> show variables like ‘%sock%’

вы получите что-то вроде этого:

сохранить значение последней строки:

в папке проекта laravel найдите добавьте следующую строку в конце:

вы должны иметь что-то вроде этого:

‘mysql’ => array( ‘driver’ => ‘mysql’, ‘host’ => ‘localhost’, ‘database’ => ‘SchoolBoard’, ‘username’ => ‘root’, ‘password’ => ‘venturaa’, ‘charset’ => ‘utf8’, ‘collation’ => ‘utf8_unicode_ci’, ‘prefix’ => », ‘unix_socket’ => ‘/tmp/mysql.sock’, ),

теперь просто сохраните изменения и перезагрузите страницу и она должна работать! Я надеюсь, что это может быть полезно!

я столкнулся с [PDOException] SQLSTATE[HY000] [2002] No such file or directory ошибка по другой причине. Я только что закончил строить новый стек лампы на Ubuntu 12.04 с Apache 2.4.7, PHP v5.5.10 и MySQL 5.6.16. Я переместил свои сайты обратно и запустил их. Но, я не мог загрузить свой Laravel 4.2.x на основе сайта из-за [PDOException] выше. Итак, я проверил php -i | grep pdo и заметил эту строку:

но, в моем / etc / my.cnf файл носка на самом деле находится в /var/run/mysqld/mysqld.sock .

Итак, я открыл свой php.ini и установите значение pdo_mysql.default_socket :

затем я перезапустил apache и проверил php -i | grep pdo :

что установил его для меня.

ответ от @stuyam решил проблему «нет такого файла или каталога» для меня

короткий ответ: измените «хост» в /app/config/database.php файл от «localhost»до » 127.0.0.1″

но тогда у меня была «ошибка подключения отказано». Если у кого-то была такая же проблема, моим решением для этого было обновить приложение/config/local/database.php-файл, поэтому порт 8889:

Если вы используете Laravel Homestead, убедитесь, что вы вызываете команды на сервере.

затем просто cd в правый каталог и запустите свою команду там.

пользователь Мамп включить опцию Разрешить сетевой доступ к MySQL

добавить mysql.носок путь в базе данных.php-файл, как показано ниже пример

в моем случае у меня не было никаких проблем вообще, просто забыл запустить службу mysql.

sudo service mysqld start

Шаг 1

найдите путь к вашему unix_socket, для этого просто запустите netstat -ln | grep mysql

вы должны получить что-то вроде этого

Шаг 2

возьмите это и добавьте его в свой unix_socket параметр

надеюсь, что это помогает !!

Это потому, что PDO обрабатывает хост «localhost» специально:

Примечание: Unix только: когда имя хоста установлено в «localhost», то подключение к серверу осуществляется через доменный сокет. Если PDO_MYSQL-это скомпилированный против libmysqlclient, то расположение файла сокета в команде собраны в месте. Если PDO_MYSQL компилируется против mysqlnd сокет по умолчанию может быть установлен через pdo_mysql.default_socket установочный.

изменение localhost на 127.0.0.1 приведет к» принудительному » использованию TCP.

Примечание: mysqli_connect отлично работает с localhost.

основываясь на ответе от @dcarrith .

вместо редактирования конфигурационных файлов я создал псевдоним в том месте, которое ищет PHP, который подключается к реальному mysql.носок. (источник)

просто запустите эти две команды (перезапуск не требуется):

Я работаю на MAMP Pro и имел эту аналогичную проблему при попытке миграции (создание таблиц БД). Попробовал несколько из этих упомянутых предложений, но не сделал этого для меня.

Итак, просто (через час гугля) я добавил две вещи в /config/database.РНР.

работает теперь отлично!

по состоянию на Laravel 5 имя пользователя и пароль базы данных входит .env файл, который существует в каталоге проекта, например

Как вы можете видеть, эти переменные среды переопределяют строки «forge» здесь, поэтому их изменение не имеет никакого эффекта:

я столкнулся с этой проблемой при запуске PHPUnit в Elixir / Gulp и Homestead как моя Бродячая среда.

В моем случае я редактировал .файл env от DB_HOST=localhost до DB_HOST=192.168.10.10 здесь 192.168.10.10 это IP моего бродячего/усадебного хоста.

проверьте ваш порт тщательно . В моем случае это было 8889, и я использую 8888. измените » DB_HOST «с» localhost «на» 127.0.0.1 » и наоборот

это сработало после того, как я изменюсь с DB_HOST=localhost до DB_HOST=127.0.0.1 at .env file

Если вы используете Laravel Homestead, вот настройки

(включая Vagrant-виртуальную машину)

.Баш-профиль

попытка подключения к localhost:

попытка подключения к 127.0.0.1:

ок, просто прокомментируйте / удалите следующую настройку из моего.cnf (на OS X 10.5: /opt/local/etc/mysqlxx/my.cnf ) для получения:

конечно, остановите и запустите сервер MySQL.

Если кто-то все еще ищет ответ, просто проверьте ваш .env file. По какой-то причине laravel создать .ОКР.пример файла, так что все эти ответы не работает для меня. Я исправил свою проблему переименования .ОКР.пример .env

Это случилось со мной, потому что MySQL не работает. MySQL не запускался, потому что у меня отсутствовал .

этого требовал мой /usr/local/etc/my.cnf конфигурационный файл в виде глобуса включает ( include /usr/local/etc/my.cnf.d/*.cnf ).

под управлением mkdir /usr/local/etc/my.cnf.d , а затем запуск MySQL, Исправлена проблема.

при использовании VirtualMachine убедитесь, что вы ssh в эту машину и перейдите в папку приложения и вызовите команду php artisan migrate оттуда.

У меня были проблемы с доступом к моему сайту drupal, и у меня была проблема точно так же, как я исправил ее менее чем за 2 часа. Попробуйте в командной строке и перезапустите сервер или службу mysql. Введите это при входе в систему как корневой или суперпользователь, — обслуживание тузды перезапустить

Он должен работать. Если он не перезапустит ваш локальный веб-сервер, — перезапуск службы httpd

этого должно быть достаточно. Надеюсь, что это работает и для других сред. Овации.

в мае случае, я просто использовал

для моей установки личинок кузницы с использованием усадьбы. Я предполагаю, что это означало, что сайт обслуживался, но сервер MySQL никогда не загружался. Когда я использовал последнюю команду для запуска моего бродячего ящика, ошибка исчезла.

все эти ответы кажутся тяжелыми.

Я только что создал .env файл; отредактировал мой bootstrap/app.php file, и раскомментировал следующую строку.

надеюсь, это поможет кому-то

[это устарело, в базе данных хранится информация .ОКР сейчас] Более простой способ решить проблему путем редактирования

измените конфигурацию базы данных здесь, и она должна работать

в моем случае я запускал php artisan migrate на своем Mac-терминале, когда мне нужно было ssh в vagrant и запустить его оттуда. Надеюсь, что помогает кому-то головная боль.

Источник

PDOException SQLSTATE[HY000] [2002] нет такого файла или каталога

Я считаю, что я успешно развернул свой (очень простой) сайт в fortrabbit, но как только я подключусь к SSH для запуска некоторых команд (например, php artisan migrate или php artisan db:seed ) Я получаю сообщение об ошибке:

в какой — то момент миграция должна была сработать, потому что мои таблицы есть-но это не объясняет, почему это не работает для меня сейчас.

28 ответов:

сообщение об ошибке указывает, что соединение MySQL через сокет пробуется (который не поддерживается).

в контексте Laravel (artisan) вы, вероятно, хотите использовать другую / правильную среду. Например: php artisan migrate —env=production (или любой другой среды). Смотрите здесь.

Laravel 4: изменить «хост» в app/config/database.php файл из «localhost» в «127.0.0.1»

Laravel 5: изменить «DB_HOST» в .env файл из «localhost» в «127.0.0.1»

у меня была точно такая же проблема. Ни одно из вышеперечисленных решений не сработало для меня. Я решил проблему, изменив «хост» в /app/config/database.php файл от «localhost»до » 127.0.0.1″.

не уверен, почему «localhost» не делает работа по умолчанию, но я нашел этот ответ в аналогичном вопросе, решенном в сообщении symfony2. https://stackoverflow.com/a/9251924/1231563

обновление: Некоторые люди спрашивали, почему это исправление работает, поэтому я сделал немного исследований в этой теме. Похоже, что они используют разные типы соединений, как описано в этом посте https://stackoverflow.com/a/9715164/1231563

проблема, которая возникла здесь в том, что «localhost» использует сокет UNIX и не может найти базу данных в стандартном каталоге. Однако «127.0.0.1» использует TCP (Transmission Control Protocol), что по существу означает, что он работает через «локальный интернет» на вашем компьютере, будучи гораздо более надежным, чем сокет UNIX в этом случае.

у меня такая же проблема, и я запускаю Mac OS X 10.10 Yosemite. Я включил сервер Apache и PHP, который уже поставляется с ОС. Затем я просто настроил библиотеку mCrypt для начала работы. После этого, когда я работал с моделями и БД я получил ошибку:

причина, которую я нашел, заключается в том, что PHP и MySQL не могут подключиться сами. Чтобы устранить эту проблему, я выполняю следующие действия:

откройте терминал и подключитесь к mysql с:

он запросит у вас соответствующий пароль. Затем, как только вы получите MySQL promt, введите следующую команду:

mysql> show variables like ‘%sock%’

вы получите что-то вроде этого:

сохранить значение последней строки:

в папке проекта laravel найдите добавьте следующую строку в конце:

вы должны иметь что-то вроде этого:

‘mysql’ => array( ‘driver’ => ‘mysql’, ‘host’ => ‘localhost’, ‘database’ => ‘SchoolBoard’, ‘username’ => ‘root’, ‘password’ => ‘venturaa’, ‘charset’ => ‘utf8’, ‘collation’ => ‘utf8_unicode_ci’, ‘prefix’ => », ‘unix_socket’ => ‘/tmp/mysql.sock’, ),

теперь просто сохраните изменения и перезагрузите страницу и она должна работать! Я надеюсь, что это может быть полезно!

я столкнулся с [PDOException] SQLSTATE[HY000] [2002] No such file or directory ошибка по другой причине. Я только что закончил строить новый стек лампы на Ubuntu 12.04 с Apache 2.4.7, PHP v5.5.10 и MySQL 5.6.16. Я переместил свои сайты обратно и запустил их. Но, я не мог загрузить свой Laravel 4.2.x на основе сайта из-за [PDOException] выше. Итак, я проверил php -i | grep pdo и заметил эту строку:

но, в моем / etc / my.cnf файл носка на самом деле находится в /var/run/mysqld/mysqld.sock .

Итак, я открыл свой php.ini и установите значение pdo_mysql.default_socket :

затем я перезапустил apache и проверил php -i | grep pdo :

что установил его для меня.

ответ от @stuyam решил проблему «нет такого файла или каталога» для меня

короткий ответ: измените «хост» в /app/config/database.php файл от «localhost»до » 127.0.0.1″

но тогда у меня была «ошибка подключения отказано». Если у кого-то была такая же проблема, моим решением для этого было обновить приложение/config/local/database.php-файл, поэтому порт 8889:

Если вы используете Laravel Homestead, убедитесь, что вы вызываете команды на сервере.

затем просто cd в правый каталог и запустите свою команду там.

пользователь Мамп включить опцию Разрешить сетевой доступ к MySQL

добавить mysql.носок путь в базе данных.php-файл, как показано ниже пример

в моем случае у меня не было никаких проблем вообще, просто забыл запустить службу mysql.

sudo service mysqld start

Шаг 1

найдите путь к вашему unix_socket, для этого просто запустите netstat -ln | grep mysql

вы должны получить что-то вроде этого

Шаг 2

возьмите это и добавьте его в свой unix_socket параметр

надеюсь, что это помогает !!

Это потому, что PDO обрабатывает хост «localhost» специально:

Примечание: Unix только: когда имя хоста установлено в «localhost», то подключение к серверу осуществляется через доменный сокет. Если PDO_MYSQL-это скомпилированный против libmysqlclient, то расположение файла сокета в команде собраны в месте. Если PDO_MYSQL компилируется против mysqlnd сокет по умолчанию может быть установлен через pdo_mysql.default_socket установочный.

изменение localhost на 127.0.0.1 приведет к» принудительному » использованию TCP.

Примечание: mysqli_connect отлично работает с localhost.

основываясь на ответе от @dcarrith .

вместо редактирования конфигурационных файлов я создал псевдоним в том месте, которое ищет PHP, который подключается к реальному mysql.носок. (источник)

просто запустите эти две команды (перезапуск не требуется):

Я работаю на MAMP Pro и имел эту аналогичную проблему при попытке миграции (создание таблиц БД). Попробовал несколько из этих упомянутых предложений, но не сделал этого для меня.

Итак, просто (через час гугля) я добавил две вещи в /config/database.РНР.

работает теперь отлично!

по состоянию на Laravel 5 имя пользователя и пароль базы данных входит .env файл, который существует в каталоге проекта, например

Как вы можете видеть, эти переменные среды переопределяют строки «forge» здесь, поэтому их изменение не имеет никакого эффекта:

я столкнулся с этой проблемой при запуске PHPUnit в Elixir / Gulp и Homestead как моя Бродячая среда.

В моем случае я редактировал .файл env от DB_HOST=localhost до DB_HOST=192.168.10.10 здесь 192.168.10.10 это IP моего бродячего/усадебного хоста.

проверьте ваш порт тщательно . В моем случае это было 8889, и я использую 8888. измените » DB_HOST «с» localhost «на» 127.0.0.1 » и наоборот

это сработало после того, как я изменюсь с DB_HOST=localhost до DB_HOST=127.0.0.1 at .env file

Если вы используете Laravel Homestead, вот настройки

(включая Vagrant-виртуальную машину)

.Баш-профиль

попытка подключения к localhost:

попытка подключения к 127.0.0.1:

ок, просто прокомментируйте / удалите следующую настройку из моего.cnf (на OS X 10.5: /opt/local/etc/mysqlxx/my.cnf ) для получения:

конечно, остановите и запустите сервер MySQL.

Если кто-то все еще ищет ответ, просто проверьте ваш .env file. По какой-то причине laravel создать .ОКР.пример файла, так что все эти ответы не работает для меня. Я исправил свою проблему переименования .ОКР.пример .env

Это случилось со мной, потому что MySQL не работает. MySQL не запускался, потому что у меня отсутствовал .

этого требовал мой /usr/local/etc/my.cnf конфигурационный файл в виде глобуса включает ( include /usr/local/etc/my.cnf.d/*.cnf ).

под управлением mkdir /usr/local/etc/my.cnf.d , а затем запуск MySQL, Исправлена проблема.

при использовании VirtualMachine убедитесь, что вы ssh в эту машину и перейдите в папку приложения и вызовите команду php artisan migrate оттуда.

У меня были проблемы с доступом к моему сайту drupal, и у меня была проблема точно так же, как я исправил ее менее чем за 2 часа. Попробуйте в командной строке и перезапустите сервер или службу mysql. Введите это при входе в систему как корневой или суперпользователь, — обслуживание тузды перезапустить

Он должен работать. Если он не перезапустит ваш локальный веб-сервер, — перезапуск службы httpd

этого должно быть достаточно. Надеюсь, что это работает и для других сред. Овации.

в мае случае, я просто использовал

для моей установки личинок кузницы с использованием усадьбы. Я предполагаю, что это означало, что сайт обслуживался, но сервер MySQL никогда не загружался. Когда я использовал последнюю команду для запуска моего бродячего ящика, ошибка исчезла.

все эти ответы кажутся тяжелыми.

Я только что создал .env файл; отредактировал мой bootstrap/app.php file, и раскомментировал следующую строку.

надеюсь, это поможет кому-то

[это устарело, в базе данных хранится информация .ОКР сейчас] Более простой способ решить проблему путем редактирования

измените конфигурацию базы данных здесь, и она должна работать

в моем случае я запускал php artisan migrate на своем Mac-терминале, когда мне нужно было ssh в vagrant и запустить его оттуда. Надеюсь, что помогает кому-то головная боль.

Источник

If you work with MySQL then you’re probably familiar with the can’t connect to local mysql server through socket error message. And you’ll see error message like:


Error:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2 “No such file or directory”)

In this short article, we’ll show you how to troubleshoot and fix this issue in a jiffy.

And, don’t worry it’s a pretty straight up fix and you have nothing to worry about.

So let’s go.

  • What Is Can’t Connect to Local MySQL Server Through Socket Error?
  • How to Fix Can’t Connect to Local MySQL Server Through Socket Error
    • Solution #1: Check If MySQL Service is Runnning
    • Solution #2: Connect with 127.0.0.1
    • Solution #3: Modify the my.cnf file
    • Solution #4: Verify mysql.sock Location
    • Solution #5: Change MySQL Folder Permission
    • Solution #6: Multiple MySQL Instances
  • Conclusion on Can’t Connect to Local MySQL Server Through Socket

What Is Can’t Connect to Local MySQL Server Through Socket Error?

So what’s causing the can’t connect to local mysql server through socket error message?

This error message is basically telling you that the application is not able to locate the socket file needed to establish a MySQL connection.

And as you well know the socket file is used by the operating system to enable interface services such as MySQL or PHP to interact and communicate among each other.

For some people this appear message may occur when trying to restart MySQL and run the:

/usr/local/mysql/bin/mysql start

command resulting in the error message:

Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)

On the other hand, for others, this error message arises when they try to log into the MySQL database using any user credentials.

Then you have those we experience this same problem with their website application especially those built with PHP.

For example, all of a sudden the website refuses to work, and when you pry into the log file you see the error message logged there similar to this one:

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

[SPECIAL OFFER]: Fast MySQL & PHP Web Hosting

[BENEFITS]:

  • FREE 1-Click Install of Open Source Apps, Blog, CMS, and much more!
  • Support for PHP, MySQL, WordPress, Drupal, Joomla and much more!
  • Multi-Domain Hosting & 99.9% Uptime Guarantee!
  • Super Fast Servers with 24/7/365 Technical Support!

Click here to access this [SPECIAL OFFER]

How to Fix Can’t Connect to Local MySQL Server Through Socket Error

So how do you fix this can’t connect to local mysql server through socket error message?

Well, here are some steps you need to take to resolving this issue:

Solution #1: Check If MySQL Service is Runnning

First of all, check to make sure the mysqld service is running or not. To check if MySQL is running, run the following command:

mysqladmin -u root -p status

And if the service is not running, then, by all means, start it up by running the following command:

service mysqld start

Once you restart the service, try again to connect to MySQL.

Solution #2: Connect with 127.0.0.1

Another possible solution to the >can’t connect to local mysql server through socket> error message is to try and connect to the MySQL using the 127.0.0.1 ip address instead of localhost.

When you use localhost to connect to MySQL, the operating system uses the socket connector.

However, if you use 127.0.0.1 ip address, the operating system will use the TCP/IP connector.

So as a possible solution when you’re having issues with the socket connector, you can try to establish the connection using TCP/IP by specifying the 127.0.0.1 ip address instead of localhost.

Solution #3: Modify the my.cnf file

The my.cnf file is a configuration file used by MySQL. And it’s processed by either the mysqld or mysqladmin service depending on the options specified.

So locate this my.cnf file which is normally in the /etc/ directory and modify it accordingly as follows:

[mysqld]

socket=/var/lib/mysql/mysql.sock 

[client]

socket=/var/lib/mysql/mysql.sock

After modifying the file restart your MySQL service and try connecting again.

Solution #4: Verify mysql.sock Location

Another possible cause of this problem is that the mysql.sock file in another directory.

So you need to locate where the mysql.sock file and create a symlink to it.

Most times the file is located in either the /data/mysql_datadir/mysql.sock or /tmp/mysql.sock

So for instance, if you locate the file in /data/mysql_datadir/mysql.sock, all you need to do is create a symlink for it using the following command:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

Once you do this, go ahead and restart the MySQL service and try initiating the connection again.

[SPECIAL OFFER]: Fast MySQL & PHP Web Hosting

[BENEFITS]:

  • FREE 1-Click Install of Open Source Apps, Blog, CMS, and much more!
  • Support for PHP, MySQL, WordPress, Drupal, Joomla and much more!
  • Multi-Domain Hosting & 99.9% Uptime Guarantee!
  • Super Fast Servers with 24/7/365 Technical Support!

Click here to access this [SPECIAL OFFER]

Solution #5: Change MySQL Folder Permission

There one other possible solution fixing this issue and that is to change the MySQL folder’s permission.

And this can be done easily by running the following command if you’re working on a local environment:

sudo chmod -R 755 /var/lib/mysql/

After which you can restart mysql service:

service mysqld start

Then try to establish the connection again.

Solution #6: Multiple MySQL Instances

In some cases, the installation of multiple MySQL on the server environment causes this problem.

So you have a case whereby multiple instances of MySQL are running at the same time.

As such the issue running the following commands can fix the issue:

ps -A|grep mysql

Next, kill the mysql process by running this command:

sudo pkill mysql

Then do the same thing for mysqld:

ps -A|grep mysqld

Again, kill this process as well:

sudo pkill mysqld

Finally, go ahead run the following commands to restart and connect to the MySQL server:

sudo service mysql restart
mysql -u root -p

Conclusion on Can’t Connect to Local MySQL Server Through Socket

We hope one of the above possible solutions to the can’t connect to local mysql server through socket error resolves your situation.

[SPECIAL OFFER]: Fast MySQL & PHP Web Hosting

[BENEFITS]:

  • FREE 1-Click Install of Open Source Apps, Blog, CMS, and much more!
  • Support for PHP, MySQL, WordPress, Drupal, Joomla and much more!
  • Multi-Domain Hosting & 99.9% Uptime Guarantee!
  • Super Fast Servers with 24/7/365 Technical Support!

Click here to access this [SPECIAL OFFER]

Понравилась статья? Поделить с друзьями:
  • Error setup script exited with error
  • Error sqlsrv connect
  • Error sqlite cantopen 14
  • Error setup file gameinfo txt doesn t exist in subdirectory hl2
  • Error sql error code 303 conversion error from string