mysqli_real_connect(): (HY000/2002): нет такого файла или каталога
mysqli_real_connect(): (HY000/2002): No such file or directory
Ошибка PhpMyAdmin в MacOS. Я хочу ответить, я действительно не знаю, что мне нужно сделать, чтобы решить эту проблему.
Ответы
Ответ 1
изменить localhost на 127.0.0.1 в config.inc.php
$cfg['Servers'][$i]['host'] = '127.0.0.1';
Причиной этого является то, что pma пытается подключиться к mysql.socket, если вы используете localhost. Если вы используете 127.0.0.1, PMA создает TCP-соединение, которое должно работать.
Ответ 2
я пытаюсь это раньше
cd/opt/lampp/phpmyadmin
тогда
gedit config.inc.php
найти это,
$cfg['Servers'][$i]['host'] =
если есть localhost
измените его на 127.0.0.1
Примечание: если есть //, удаляем//до $cfg['Servers'][$i]['host']
Я снова проверил http://localhost/phpmyadmin/
mysqli сказал:
"phpMyAdmin попытался подключиться к серверу MySQL, и сервер отклонил соединение. Вы должны проверить хост, имя пользователя и пароль в своей конфигурации и убедиться, что они соответствуют информации, предоставленной администратором сервера MySQL".
Я снова открываю config.inc.php
и я нашел
$cfg['Servers'][$i]['password'] =
Заполните пароль паролем
Это сработало для меня. Это может сработать и для вас.
Ответ 3
phpmyadmin 2018 Октябрь
Найдите config.sample.inc.php
+ Изменить
$cfg['Servers'][$i]['host'] = 'localhost';
в
$cfg['Servers'][$i]['host'] = '127.0.0.1';
Сохранить.
Затем переименуйте файл и удалите образец из имени.
Ответ 4
mysqli_connect(): (HY000/2002): нет такого файла или каталога
Фон:
Я просто хотел запустить несколько тестов PHPUnit на моем Mac, используя терминал. Некоторые из классов, которые я хотел протестировать, были связаны с подключением MySQL DB, который был создан и управлялся PHPMyAdmin, и веб-приложение, с которым я работал, работало нормально на localhost. Поэтому, когда я запустил эти тестовые сценарии, я получил следующую ошибку на своем терминале:
mysqli_connect(): (HY000/2002): No such file or directory
Решение:
Так что с зудом мне пришлось решить его и запустить свой тест, я искал в нескольких потоках SO Q & A и пробовал. И сочетание изменений сработало для меня.
- Найдите ваш файл
config.inc.php
который относится к PHPMyAdmin. - Найдите строку
$cfg['Servers'][$i]['host']
основном эта строка могла быть закомментирована по умолчанию, если это так, пожалуйста, раскомментируйте ее. - И замените эту строку следующим:
$cfg['Servers'][$i]['host'] = '127.0.0.1';
- Сохраните его и перезапустите базу данных MySQL с панели управления XAMPP (manager-osx).
- Измените значение параметра
$host
в mysqli_connect()
на следующее:
$_connection = mysqli_connect(**"localhost: 3306"**, $_mysql_username, $_mysql_password, $_database);
Примечание: это 3306
мой номер порта MySQL, который по умолчанию. Вы должны лучше проверить, какой у вас номер порта MySQL, прежде чем следовать этим шагам.
И это все. Для меня работал только этот набор шагов и ничего больше. Я запустил свои модульные тесты, и они работали нормально, и данные БД также были корректно обновлены в соответствии с тестами.
Почему это работает:
Самая близкая причина, которую я мог бы найти, состоит в том, что это работает, потому что иногда метод mysqli_connect
требует рабочего сокета (IP-адрес хоста БД и номер порта) базы данных. Так что, если вы закомментировали $cfg['Servers'][$i]['host'] = '127.0.0.1';
или в качестве значения в нем укажите localhost, он игнорирует номер порта. Но если вы хотите использовать сокет, то вы должны использовать "127.0.0.1" или реальное имя хоста. (для меня это, кажется, независимо от того, какой номер порта по умолчанию у нас есть на самом деле, мы должны выполнить вышеуказанные шаги.) Для получения дополнительной информации прочитайте следующую ссылку PHPMyAdmin.
Надеюсь, что это может быть полезно для кого-то еще там.
Ура!
Ответ 5
Возможно, ваш SQL-сервер остановлен
sudo /etc/init.d/mysql start
Ответ 6
Прежде всего, убедитесь, что служба mysql запущена:
ps elf|grep mysql
вы увидите вывод, как это, если работает:
4 S root 9642 1 0 80 0 - 2859 do_wai 23:08 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/tomcat-machine.local.pid
4 S mysql 9716 9642 0 80 0 - 200986 poll_s 23:08 pts/0 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/tomcat-machine.local.err --pid-file=/var/lib/mysql/tomcat-machine.local.pid
затем измените localhost на 127.0.0.1 в config.inc.php
$cfg['Servers'][$i]['host'] = '127.0.0.1';
Пароль по умолчанию для пользователя "root" пуст "" ничего не вводите для пароля
Если он не позволяет пустой пароль, вам нужно снова отредактировать config.inc.php и изменить:
$cfg['Servers'][$i]['AllowNoPassword'] = true;
Проблема заключается в сочетании настроек конфигурации и MySQL не работает. Именно это помогло мне исправить эту ошибку.
Ответ 7
Я исправил проблему сегодня, используя следующие шаги:
-
Если config.inc.php не существует в каталоге phpMyadmin Скопируйте файл config.sample.inc.php в config.inc.php.
-
Добавить сокет в /* Server parameters */
$cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';
-
Сохраните файл и получите доступ к phpmyadmin через url.
Если вы используете mysql 8.0.12, вы должны использовать устаревшее шифрование паролей, поскольку сильное шифрование не поддерживается клиентом php.
Ответ 8
Если вы используете archlinux или Ubuntu, просто введите следующие команды:
$ cd/opt/lampp/phpmyadmin
затем
$ sudo gedit config.inc.php
Затем, когда вы получите доступ к файлу, найдите приведенные ниже сценарии,
//$ cfg ['Servers'] [$ i] ['host'] = 'localhost'
удалите " // ", чтобы он остался, как показано ниже:
$ cfg ['Servers'] [$ i] ['host'] = 'localhost'
Затем измените " localhost " на " 127.0.0.1 ", и скрипт должен повернуться, как показано ниже:
$ cfg ['Servers'] [$ i] ['host'] = '127.0.0.1'
Вернитесь в браузер и введите http://127.0.0.1/phpmyadmin/
Если он все еще отказывается
Вы должны проверить хост, имя пользователя и пароль в вашей конфигурации и убедиться, что они соответствуют информации, предоставленной администратором сервера MySQL.
затем вернитесь к тому же файлу config.inc.php, который вы редактировали, и сделайте следующее:
$ cd/opt/lampp/phpmyadmin
затем
$ sudo gedit config.inc.php
поиск сценария ниже
$ cfg ['Servers'] [$ i] ['password'] = ''
Заполните пароль своим корневым паролем
$ cfg ['Servers'] [$ i] ['password'] = 'ваш_пароль'
И это должно работать. Счастливого взлома друзья.
Ответ 9
Если ваш сайт работал нормально и теперь неожиданно ОШИБКА: (HY000/2002): No such file or directory
Тогда вы не должны изменять любой файл конфигурации!
Сначала проверьте файл error.log сервера, для Nginx он расположен:
/var/log/nginx/error.log
Или для Apache попробуйте:
/var/log/apache2/error_log
В моем случае я мог видеть PHP Fatal error: OUT OF MEMORY в error.log для nginx.
Решение: добавить больше оперативной памяти на сервер.
Я попытался перезагрузить веб-сервер перед обновлением/добавлением оперативной памяти. Затем я избавился от ERROR (HY000/2002) but got some ERROR 50X: Connection Error...
В этот момент я добавил 2 ГБ ОЗУ, перезагрузил веб-сервер и все работало нормально!
Когда веб-сервер был запущен, я заметил, что cron-jobs 200+ зависли из-за ошибки цикла в 1 PHP-скрипте.
Так что проверьте, какой скрипт потребляет память.
Ответ 10
Запуск сервера MySQL решил мою проблему
Ответ 11
Если вышеуказанные решения не работают, попробуйте изменить значение по умолчанию от 3306 до другого (т.е. 3307)
Ответ 12
Вам просто нужно переименовать ib_logfile0 и ib_logfile1 как ib_logfile_0 и ib_logfile_1. Тогда ваша проблема будет решена.