I got an issue with the db connection in Yii2 while doing the setup on portal.azure.com server.
I have tried to check the connection, but that works fine with the mysqli connection.
For more details please find the attachments.
Database Exception (#2002):
PDOException:
Thanks
Pramod Gharu
1,1053 gold badges9 silver badges18 bronze badges
asked Dec 3, 2016 at 6:08
I resolved it by adding ‘host=’ in dsn->mysql as below:-
‘dsn’ => ‘mysql:host=u*-****-azure-******-f.cloudapp.net;dbname=****’
answered Dec 3, 2016 at 7:42
check runned or failed mysql service
answered Feb 17, 2022 at 16:10
MySQL — система управления базами данных (СУБД) с открытым исходным кодом от компании Oracle. Она была разработана и оптимизирована специально для работы веб-приложений. MySQL является неотъемлемой частью таких веб-сервисов, как Facebook, Twitter, Wikipedia, YouTube и многих других.
Эта статья расскажет, как определять, с чем связаны частые ошибки на сервере MySQL, и устранять их.
Не удаётся подключиться к локальному серверу
Одной из распространённых ошибок подключения клиента к серверу является «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)».
Эта ошибка означает, что на хосте не запущен сервер MySQL (mysqld
) или вы указали неправильное имя файла сокета Unix или порт TCP/IP при попытке подключения.
Убедитесь, что сервер работает. Проверьте процесс с именем mysqld
на хосте сервера, используя команды ps или grep, как показано ниже.
$ ps xa | grep mysqld | grep -v mysqld
Если эти команды не показывают выходных данных, то сервер БД не работает. Поэтому клиент не может подключиться к нему. Чтобы запустить сервер, выполните команду systemctl.
$ sudo systemctl start mysql #Debian/Ubuntu
$ sudo systemctl start mysqld #RHEL/CentOS/Fedora
Чтобы проверить состояние службы MySQL, используйте следующую команду:
$ sudo systemctl status mysql #Debian/Ubuntu
$ sudo systemctl status mysqld #RHEL/CentOS/Fedora
Если в результате выполнения команды произошла ошибка службы MySQL, вы можете попробовать перезапустить службу и ещё раз проверить её состояние.
$ sudo systemctl restart mysql
$ sudo systemctl status mysql
Если сервер работает (как показано) и вы по-прежнему видите эту ошибку, вам следует проверить, не заблокирован ли порт TCP/IP брандмауэром или любой другой службой блокировки портов.
Для поиска порта, который прослушивается сервером, используйте команду netstat
.
$ sudo netstat -tlpn | grep "mysql"
Ещё одна похожая и часто встречающаяся ошибка подключения — «(2003) Can’t connect to MySQL server on ‘server’ (10061)». Это означает, что в сетевом соединении было отказано.
Следует проверить, работает ли в системе сервер MySQL (смотрите выше) и на тот ли порт вы подключаетесь (как найти порт, можно посмотреть выше).
Похожие частые ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:
ERROR 2003: Cannot connect to MySQL server on 'host_name' (111)
ERROR 2002: Cannot connect to local MySQL server through socket '/tmp/mysql.sock' (111)
Ошибки запрета доступа в MySQL
В MySQL учётная запись (УЗ) определяется именем пользователя и клиентским хостом, с которого пользователь может подключиться. УЗ может также иметь данные для аутентификации (например, пароль).
Причин для запрета доступа может быть много. Одна из них связана с учётными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении. Это означает, что имя пользователя, указанное в соединении, может не иметь прав доступа к базе данных.
В MySQL есть возможность создавать учётные записи, позволяющие пользователям клиентских программ подключаться к серверу и получать доступ к данным. Поэтому при ошибке доступа проверьте разрешение УЗ на подключение к серверу через клиентскую программу.
Увидеть разрешённые привилегии учётной записи можно, выполнив в консоли команду SHOW GRANTS
Входим в консоль (пример для Unix, для Windows консоль можно найти в стартовом меню):
В консоли вводим команду:
> SHOW GRANTS FOR 'tecmint'@'localhost';
Дать привилегии конкретному пользователю в БД по IP-адресу можно, используя следующие команды:
> grant all privileges on *.test_db to 'tecmint'@'192.168.0.100';
> flush privileges;
Ошибки запрещённого доступа могут также возникнуть из-за проблем с подключением к MySQL (см. выше).
Потеря соединения с сервером MySQL
С этой ошибкой можно столкнуться по одной из следующих причин:
- плохое сетевое соединение;
- истекло время ожидания соединения;
- размер BLOB больше, чем
max_allowed_packet
.
В первом случае убедитесь, что у вас стабильное сетевое подключение (особенно, если подключаетесь удалённо).
Если проблема с тайм-аутом соединения (особенно при первоначальном соединении MySQL с сервером), увеличьте значение параметра connect_timeout
.
В случае с размером BLOB нужно установить более высокое значение для max_allowed_packet
в файле конфигурации /etc/my.cnf
в разделах [mysqld]
или [client]
как показано ниже.
[mysqld]
connect_timeout=100
max_allowed_packet=500M
Если файл конфигурации недоступен, это значение можно установить с помощью следующей команды.
> SET GLOBAL connect_timeout=100;
> SET GLOBAL max_allowed_packet=524288000;
Слишком много подключений
Эта ошибка означает, что все доступные соединения используются клиентскими программами. Количество соединений (по умолчанию 151) контролируется системной переменной max_connections
. Устранить проблему можно, увеличив значение переменной в файле конфигурации /etc/my.cnf
.
[mysqld]
max_connections=1000
Недостаточно памяти
Если такая ошибка возникла, это может означать, что в MySQL недостаточно памяти для хранения всего результата запроса.
Сначала нужно убедиться, что запрос правильный. Если это так, то нужно выполнить одно из следующих действий:
- если клиент MySQL используется напрямую, запустите его с ключом
--quick switch
, чтобы отключить кешированные результаты; - если вы используете драйвер MyODBC, пользовательский интерфейс (UI) имеет расширенную вкладку с опциями. Отметьте галочкой «Do not cache result» (не кешировать результат).
Также может помочь MySQL Tuner. Это полезный скрипт, который подключается к работающему серверу MySQL и даёт рекомендации по настройке для более высокой производительности.
$ sudo apt-get install mysqltuner #Debian/Ubuntu
$ sudo yum install mysqltuner #RHEL/CentOS/Fedora
$ mysqltuner
MySQL продолжает «падать»
Если такая проблема возникает, необходимо выяснить, заключается она в сервере или в клиенте. Обратите внимание, что многие сбои сервера вызваны повреждёнными файлами данных или индексными файлами.
Вы можете проверить состояние сервера, чтобы определить, как долго он работал.
$ sudo systemctl status mysql #Debian/Ubuntu
$ sudo systemctl status mysqld #RHEL/CentOS/Fedora
Чтобы узнать время безотказной работы сервера, запустите команду mysqladmin
.
$ sudo mysqladmin version -p
Кроме того, можно остановить сервер, сделать отладку MySQL и снова запустить службу. Для отображения статистики процессов MySQL во время выполнения других процессов откройте окно командной строки и введите следующее:
$ sudo mysqladmin -i 5 status
Или
$ sudo mysqladmin -i 5 -r status
Заключение
Самое важное при диагностике — понять, что именно вызвало ошибку. Следующие шаги помогут вам в этом:
- Первый и самый важный шаг — просмотреть журналы MySQL, которые хранятся в каталоге
/var/log/mysql/
. Вы можете использовать утилиты командной строки вродеtail
для чтения файлов журнала. - Если служба MySQL не запускается, проверьте её состояние с помощью
systemctl
. Или используйте командуjournalctl
(с флагом-xe
) в systemd. - Вы также можете проверить файл системного журнала (например,
/var/log/messages
) на предмет обнаружения ошибок. - Попробуйте использовать такие инструменты, как Mytop, glances, top, ps или htop, чтобы проверить, какая программа использует весь ресурс процессора или блокирует машину. Они также помогут определить нехватку памяти, дискового пространства, файловых дескрипторов или какого-либо другого важного ресурса.
- Если проблема в каком-либо процессе, можно попытаться его принудительно остановить, а затем запустить (при необходимости).
- Если вы уверены, что проблемы именно на стороне сервера, можете выполнить команды:
mysqladmin -u root ping
илиmysqladmin -u root processlist
, чтобы получить от него ответ. - Если при подключении проблема не связана с сервером, проверьте, нормально ли работает клиент. Попробуйте получить какие-либо его выходные данные для устранения неполадок.
Перевод статьи «Useful Tips to Troubleshoot Common Errors in MySQL»
Привет, Александр.
Поставил Денвер, и такая вот петрушка, вроде все установилось, но….
-
Денвер, MySQL сервер не отвечает, ошибка 2002 (45.64 Кб) Просмотров: 21228
- MySQL сервер не отвечает, ошибка 2002.
- Sergej
- Сообщения: 24
- Зарегистрирован: 15 сен 2014, 21:44
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Александр » 19 окт 2014, 13:20
Вообще, когда Денвер запускаешь, mysql сервер стартует?
Попробуй, отключив Антивирус и Брандмауэр запусти Денвер.
Для начала посмотри в диспетчере задач Windows, там должен быть процесс mysqld.exe
Если он там есть потом тебе нужно в командной строке Windows ввести:
- Код: Выделить всё
telnet 127.0.0.1 3306
Должен быть какой-то ответ от MySQL сервера в виде строки с каким-то текстом (могут быть кракозябы) это значит, что сервер ответил.
Если же будет сообщение типа «Не у далось открыть подключение к этому узлу на порт 3306….» — значит не подключается.
Тогда пробуй команду:
- Код: Выделить всё
telnet localhost 3306
Если она будет успешной, то возможно, проблема из серии настройки сети ipv6 и т. п.
http://forum.dklab.ru/viewtopic.php?t=38843
Если не успешно, смотри кто слушает порт 3306
В командной строке Windows выполни:
- Код: Выделить всё
netstat -an
(в выводе правой кнопкой мыши ищи 3306)
или более детальная:
- Код: Выделить всё
netstat -ab
Ну и на всякий случай убедись, что порт MySQL в конфигурационном файле задан как 3306, также посмотри файл ошибок MySQL
Стандартный проводник Windows может не показывать эти файлы, тогда пользуйся каким-нибудь файловым менеджером.
Где у тебя расположены эти файлы, см. на форуме Денвера, обычно конфигурационный лежит в Z:usrlocalmysql5 , файл ошибок в Z:usrlocalmysql5data
http://www.denwer.ru/faq/other.html#h30-15
- Александр
- Сообщения: 394
- Зарегистрирован: 20 мар 2014, 17:05
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Sergej » 19 окт 2014, 14:43
В диспетчере такого процесса нет хотя изначально при загрузке денвер в командной строке пишет что-то вроде:
Что касаемо порта 3306 я так понимаю это к нему относится
- Код: Выделить всё
# The following options will be passed to all MySQL client.
[client]
port = 3306
socket = /tmp/mysql5.sock
character-sets-dir = /usr/local/mysql-5.5/share/charsets
# Кодировка консоли mysql.exe по умолчанию.
default-character-set = cp1251
# The MySQL server
[mysqld]
# Обработывать запросы ТОЛЬКО с локальной машины (повышает безопасность).
# Если вы хотите, чтобы MySQL-сервер был доступен из сети,
# уберите следующую ниже директиву.
bind-address = 127.0.0.1
port = 3306
Это в файле my.ini прописано
Файл с ошибками подкрепляю, погляди пожалуйста может чего увидишь
- Sergej
- Сообщения: 24
- Зарегистрирован: 15 сен 2014, 21:44
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Александр » 19 окт 2014, 17:30
Смотри в сторону конфигурационного файла и затребуемых там ресурсов памяти.
Вот похоже что обрывает процесс:
InnoDB: Error: auto-extending data file .ibdata1 is of a different size
InnoDB: 384 pages (rounded down to MB) than specified in the .cnf file:
InnoDB: initial 640 pages, max 0 (relevant if non-zero) pages!
141014 20:08:15 InnoDB: Could not open or create data files.
141014 20:08:15 InnoDB: If you tried to add new data files, and it failed here,
141014 20:08:15 InnoDB: you should now edit innodb_data_file_path in my.cnf back
141014 20:08:15 InnoDB: to what it was, and remove the new ibdata files InnoDB created
141014 20:08:15 InnoDB: in this failed attempt. InnoDB only wrote those files full of
141014 20:08:15 InnoDB: zeros, but did not yet use them in any way. But be careful: do not
141014 20:08:15 InnoDB: remove old data files which contain your precious data!
141014 20:08:15 [ERROR] Plugin ‘InnoDB’ init function returned error.
141014 20:08:15 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
141014 20:08:15 [ERROR] Unknown/unsupported storage engine: InnoDB
141014 20:08:15 [ERROR] Aborting
Пробей в Яндексе по этим ошибкам.
Вот, кажется наиболее простое (Дмитрий Кóтеров кстати, разработчик Денвера)
http://forum.dklab.ru/viewtopic.php?t=14113
http://forum.dklab.ru/viewtopic.php?p=72845#72845
Думаю примерно так: у MySQL есть разные движки для хранения данных, основные: MyISAM и InnoDB. InnoDB, кажется, в Денвере не используется.
В силу каких-то твоих особенностей (может ты раньше Mysql/Денвер устанавливал, но плохо удалил или еще бог знает что..), в общем, кажется этот InnoDB пытается создать дополнительное хранилище и натыкается на какое-то ограничение в конфигурации.
Тебе нужно почитать как в Денвере устроено конфигурирование MySQL (один конфигурационный файл или есть еще где-то, если в конфиге какие-то лимиты не прописаны, может они по умолчанию в MySQL идут).
Может потребуется удалить файл типа .ibdata1 не знаю. Все удаления лучше делай в последюю очередь, даже лучше не удалять, наверное, а просто переименовывать.
Последний раз редактировалось Александр 24 ноя 2014, 14:42, всего редактировалось 1 раз.
- Александр
- Сообщения: 394
- Зарегистрирован: 20 мар 2014, 17:05
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Sergej » 20 окт 2014, 20:10
Спасибо помогло, теперь надо разобраться с ограничениями, он выкидывает какие то лимиты на загрузку файлов
- Sergej
- Сообщения: 24
- Зарегистрирован: 15 сен 2014, 21:44
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Sergej » 21 окт 2014, 19:46
Привет! Как всегда нужна твоя помощь, с денвером вроде разобрался, но вот досада при закачке файлов сайта на сервер возникают проблемы, судя по различным комментариям в инете это нормально, при возникновении каких любо проблем в самом phpadmyn отражаются какие именно необходимо решить вопросы, так все и шло изначально, но вдруг столкнулся с такой проблемой (#1064 — You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near »2014-08-‘ at line 1) и никак не могу найти толкового ответа, может подскажешь что это?
- Sergej
- Сообщения: 24
- Зарегистрирован: 15 сен 2014, 21:44
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Александр » 21 окт 2014, 20:53
Привет.
Т. е. ты хочешь залить на локальный mysql-сервер дамп, сделанный на хостинге? ты его случайно не открывал простым блокнотом и потом пересохранял?
Пришли мне на почту сам дамп что ли.
Чтобы сразу исключить и на будущее, почитай про BOM
http://mywordpress.ru/support/viewtopic.php?id=2461
вот еще
http://sqlinfo.ru/articles/info/15.html
Я тебе, кстати, писал когда-то, что стандартными windows редакторами не пользуйся т. к. там всякие «сюрпризы» могут быть, используй либо notepad++ либо notepad2
http://notepad-plus-plus.org
- Александр
- Сообщения: 394
- Зарегистрирован: 20 мар 2014, 17:05
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Sergej » 21 окт 2014, 21:26
Я его открывал и пересохранял но через notepad++
- Sergej
- Сообщения: 24
- Зарегистрирован: 15 сен 2014, 21:44
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Александр » 21 окт 2014, 22:16
Я смотрю, дамп имеет кодировку Windows-1251. Похоже, что при экспорте на хостинге в PhpMyAdmin или какая программа там еще, не знаю.. была выставлена кодировка Windows-1251 (синоним CP1251) а нужна UTF-8, насколько я понимаю..
И ты наверное пытаешься на Денвере залить через PhpMyAdmin этот файл как файл, имеющий кодировку UTF-8.
Примерно так, в общем, похоже на какую-то несогласованность в кодировках.
И еще, смотрю в дампе стоит тип ENGINE=InnoDB. Похоже хостер так настроил СУБД тип InnoDB и экспорт в Windows 1251.
Короче, в такой ситуации, думаю тебе пока не стоит заливать базу назад на хостинг…
Но для локальных экспериментов попробуй в Notepad++ перекодировать этот файл в UTF8 без BOM и поиском/заменой поменяй InnoDB на MyISAM.
Локально не страшно пробовать. На хостинг, опять повторяю, наверное лучше пока тебе не пытаться базу перезаливать, пока не разберешься что к чему.
- Александр
- Сообщения: 394
- Зарегистрирован: 20 мар 2014, 17:05
Re: Денвер, MySQL сервер не отвечает, ошибка 2002
Sergej » 21 окт 2014, 22:50
Понял буду пробовать
- Sergej
- Сообщения: 24
- Зарегистрирован: 15 сен 2014, 21:44
Вернуться в SQL
I need help bad…I got this error trying to display a database using php:
mysqli_connect(): (HY000/2002): Can’t connect to local MySQL server
through socket ‘/Applications/MAMP/tmp/mysql/mysql.sock’ (2) in
/Applications/MAMP/htdocs/databases.php on line 7 Database connection
failed: Can’t connect to local MySQL server through socket
‘/Applications/MAMP/tmp/mysql/mysql.sock’ (2) (2002)
I’ve been trying to fix it for days, reading through this forum from people with the same issues, and applying the fixes (like this one http://tinyurl.com/q4cpxzj) with absolutely no luck.
Here’s some steps I’ve tried: Going into php.ini file and changing the socket to /tmp/mysql.sock (I also tried changing it to /Applications/MAMP/tmp/mysql/mysql.sock to see what happens, no good).
Tried doing the same to /etc/my.cnf file. No good.
Tried a bunch of other things I can’t even remember anymore.
Also, I’m using Mac 10.10.2 and I have MAMP installed. According to MAMP, only Apache is working (green light by Apache and nothing on MySQL) but I’ve downloaded MySQL and according to System Pref it is running, although it won’t let me stop MySQL server for some reason (when I click stop it would stop then restart again on its own).
Please help…
If it matters, here’s the php:
<?php
// 1. Create a database connection
$dbhost = "localhost";
$dbuser = "widget_cms";
$dbpass = "*********";
$dbname = "widget_corp";
$connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
// Test if connection succeeded
if(mysqli_connect_errno()) {
die("Database connection failed: " .
mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")"
);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Databases</title>
</head>
<body>
</body>
</html>
<?php
// 5. Close database connection
mysqli_close($connection);
?>
I need help bad…I got this error trying to display a database using php:
mysqli_connect(): (HY000/2002): Can’t connect to local MySQL server
through socket ‘/Applications/MAMP/tmp/mysql/mysql.sock’ (2) in
/Applications/MAMP/htdocs/databases.php on line 7 Database connection
failed: Can’t connect to local MySQL server through socket
‘/Applications/MAMP/tmp/mysql/mysql.sock’ (2) (2002)
I’ve been trying to fix it for days, reading through this forum from people with the same issues, and applying the fixes (like this one http://tinyurl.com/q4cpxzj) with absolutely no luck.
Here’s some steps I’ve tried: Going into php.ini file and changing the socket to /tmp/mysql.sock (I also tried changing it to /Applications/MAMP/tmp/mysql/mysql.sock to see what happens, no good).
Tried doing the same to /etc/my.cnf file. No good.
Tried a bunch of other things I can’t even remember anymore.
Also, I’m using Mac 10.10.2 and I have MAMP installed. According to MAMP, only Apache is working (green light by Apache and nothing on MySQL) but I’ve downloaded MySQL and according to System Pref it is running, although it won’t let me stop MySQL server for some reason (when I click stop it would stop then restart again on its own).
Please help…
If it matters, here’s the php:
<?php
// 1. Create a database connection
$dbhost = "localhost";
$dbuser = "widget_cms";
$dbpass = "*********";
$dbname = "widget_corp";
$connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
// Test if connection succeeded
if(mysqli_connect_errno()) {
die("Database connection failed: " .
mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")"
);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Databases</title>
</head>
<body>
</body>
</html>
<?php
// 5. Close database connection
mysqli_close($connection);
?>
Я пытаюсь использовать соединение PHP для подключения базы данных MySQL, которая находится на phpmyadmin. Ничего особенного в соединении просто пытаюсь увидеть, успешно оно установлено или нет. Я использую MAMP для размещения базы данных, соединение, которое я пытаюсь использовать, это:
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "root";
try {
$conn = new PDO("mysql:host=$servername;dbname=AppDatabase", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
Я использовал почтальон, чтобы проверить, работает ли соединение, но я продолжаю получать это сообщение об ошибке:
Ошибка подключения: SQLSTATE [HY000] [2002] Подключение отклонено
Прежде чем я получил сообщение об ошибке:
Ошибка подключения: SQLSTATE [HY000] [2002] Нет такого файла или каталога
Это было потому, что я установил имя сервера в localhost, изменив его на IP-адрес, который дал мне отказ в соединении, и я понятия не имею, что не так.
Любая помощь по этому поводу будет принята с благодарностью.
I use ubuntu 16.04.
PHP Version 7.0.4-7ubuntu2
.
Apache/2.4.18 (Ubuntu)
.
PHP extension: mysqli
(in phpmyadmin Written).
I got Upgrade my ubuntu from 15.10 to 16.04
and I have this error:
My project correctly run in my server but I can’t run that in my os:
Database Exception – yiidbException
SQLSTATE[HY000] [2002] No such file or directory
↵
Caused by: PDOException
SQLSTATE[HY000] [2002] No such file or directory
in /var/www/html/iicitySite/vendor/yiisoft/yii2/db/Connection.php at line 579
asked Apr 29, 2016 at 5:53
4
Changing «localhost» to «127.0.0.1» as your host
return [
'components' => [
'db' => [
'class' => 'yiidbConnection',
'dsn' => 'mysql:host=127.0.0.1;dbname=abc',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
answered Aug 6, 2016 at 8:52
vijay nathjivijay nathji
1,59813 silver badges23 bronze badges
1
For MAMP users solution is
'components' => [
'db' => [
'class' => 'yiidbConnection',
'dsn' => 'mysql:host=localhost;port=8889;dbname=mydbname;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock',
'username' => 'myuser',
'password' => 'mypassword',
'charset' => 'utf8',
],
],
answered Sep 10, 2017 at 10:55
sirjaysirjay
1,7373 gold badges32 silver badges52 bronze badges
Hope this answer will help You:
Change the Host name from localhost to 127.0.0.1
This is inside backendcommonconfigmain-local.php
Now you run php yii migrate .
Hope, It will successfully create the tables in Database
answered Aug 9, 2016 at 12:54
Deepak swainDeepak swain
3,3501 gold badge29 silver badges26 bronze badges
if you use mamp,don’t use «php» command in MAC OS, but use «php» in mamp, such as /Applications/MAMP/bin/php/php5.6.30/bin/php yii migrate
.
legoscia
39.7k22 gold badges114 silver badges165 bronze badges
answered May 15, 2017 at 9:41
I had this same problem too. Changing localhost
didn’t solve my problem. Instead, add your db port like this:
'dsn'=>'mysql:host=localhost:3307;dbname=geep'
rob006
21.2k5 gold badges53 silver badges73 bronze badges
answered May 23, 2018 at 11:42
Olamide226Olamide226
3975 silver badges12 bronze badges
I’m running on MAMP environment and works well using 2 solutions above
- change
localhost
to127.0.0.1
- remain as localhost and define mysql port even default port been used (
localhost:3306
)
answered Sep 7, 2018 at 1:17
For PHP 7.2.24-0ubuntu0.18.04.3,
- Get mysql socket path
- add socket info to the database config of yii2
To get the socket path login to the mysql and perform following steps
-
Open Terminal and perform following steps
mysql -u root -p mysql> show variables like '%sock%'; +-----------------------------------------+------------------------------------------------------+ | Variable_name | Value | +-----------------------------------------+------------------------------------------------------+ | mysqlx_socket | /tmp/mysqlx.sock | | performance_schema_max_socket_classes | 10 | | performance_schema_max_socket_instances | -1 | | socket | /opt/packages/lampstack-7.3.9-0/mysql/tmp/mysql.sock | +-----------------------------------------+------------------------------------------------------+ 4 rows in set (0.00 sec) exit
-
Next add following config information
'class' => 'yiidbConnection', 'dsn' => 'mysql:unix_socket=/opt/packages/lampstack-7.3.9-0/mysql/tmp/mysql.sock;dbname=basketmantra', 'username' => 'root', 'password' => 'root123', 'charset' => 'utf8',
I hope this helps
In Some cases you may use httpd or apache or lampp then also make sure to check php and mysql commands in terminal are same as versions web servers are using.
phpinfo() in web server is helpful to find out the versions web server is using
<?php
phpinfo();
?>
For commands
$ type php
php is hashed (/usr/bin/php)
$ type mysql
mysql is /opt/packages/lampstack-7.3.9-0/mysql/bin/mysql
answered Mar 21, 2020 at 13:50
GireeshGireesh
4687 silver badges13 bronze badges
Using yii2, my solution is to comment codes in common/main-local.php
For some reason, yii2 try to get main-local.php in production instead of main.php in the folder common, but when is commented it works (get DB configs on common/main.php
<?php
// common/main-local.php
return [
/* 'components' => [
'db' => [
'class' => 'yiidbConnection',
'dsn' => 'mysql:host=172.17.0.2;dbname=ememariadb',
'username' => 'dbsenha',
'password' => 'dbUser',
'charset' => 'utf8',
],
],*/
];
answered Jun 11, 2021 at 16:08
CoyasCoyas
731 silver badge10 bronze badges
In my case I have my setup running in Docker. I had the same error message and had to run the migrate command inside docker.
docker exec -it <container ID> bash
cd app
php yii migrate
answered Mar 4 at 14:33
Постоянно выскакивает ошибка Error 2002
интервал примерно 40 минут — 1 час.
Uncaught exception waDbException: Database error. See log for details. (2002) ## wa-system/database/waDbMysqliAdapter.class.php(33) #0 wa-system/database/waDbAdapter.class.php(30): waDbMysqliAdapter->connect(Array) #1 wa-system/database/waDbConnector.class.php(49): waDbAdapter->__construct(Array) #2 wa-system/database/waModel.class.php(75): waDbConnector::getConnection('default', false) #3 wa-system/contact/waContact.class.php(851): waModel->__construct() #4 wa-system/waSystem.class.php(996): waContact->getLocale() #5 wa-system/waSystem.class.php(1151): waSystem->getApps() #6 wa-system/waSystem.class.php(538): waSystem->appExists('webasyst') #7 wa-system/waSystem.class.php(485): waSystem->dispatchBackend('webasyst/') #8 index.php(7): waSystem->dispatch() #9 {main}
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111 "Connection refused") ## wa-system/database/waDbMysqliAdapter.class.php(33) #0 wa-system/database/waDbAdapter.class.php(30): waDbMysqliAdapter->connect(Array) #1 wa-system/database/waDbConnector.class.php(49): waDbAdapter->__construct(Array) #2 wa-system/database/waModel.class.php(75): waDbConnector::getConnection('default', false) #3 wa-system/user/waAuthUser.class.php(113): waModel->__construct() #4 wa-system/user/waAuthUser.class.php(52): waAuthUser->updateLastTime() #5 wa-system/user/waAuthUser.class.php(24): waAuthUser->init() #6 wa-system/waSystem.class.php(240): waAuthUser->__construct(NULL, Array) #7 wa-system/waSystem.class.php(281): waSystem::getCommonFactory('auth_user', 'waAuthUser', Array, NULL) #8 wa-system/waSystem.class.php(526): waSystem->getUser() #9 wa-system/waSystem.class.php(485): waSystem->dispatchBackend('webasyst/') #10 index.php(7): waSystem->dispatch() #11 {main}
интервал примерно 40 минут — 1 час.
Настроили автоочиску кэша SQL с интервалом в 1 час, т.к. быстро переполняется память.
Подскажите как исправить чтобы сайт не падал постоянно?
Работает на сервере VPS
Процессор 2 ядра 2x 2.13-2.5 ГГц
RAM 2 Гб
HDD 40 Гб RAID-10
IP-адреса 1 IPv4
Трафик Не ограничен 100 Mbps Shared
После перезапуска MySQL сервера у меня случился сбой, который выдавал ошибку ERROR 2002 (HY000). С такой проблемой я раньше не сталкивался, поэтому начал активно искать решение…
Непосредственно сам код ошибки выглядел так:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Для начала я попытался убить соответствующий PID, как рекомендуют на большинстве форумов, однако это ничего не дало. Поэтому я продолжил искать решение проблему и нашел команду, которая все исправила.
Вообще, эта проблема не новая и интернет переполнен различными вариантами решения. Свое решение я нашел в этом посте на StackOverflow.
sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql
После этого, проблема решилась и сервер успешно запустился, поэтому можно работать с данными дальше 😎