Меню

Подключение к базе данных не удалось неизвестная ошибка код ошибки 2002

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»

1 2012-10-28 18:55:37 (изменено: Дeнис, 2012-10-28 19:13:00)

  • Дeнис
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2012-10-28
  • Сообщений: 2

Тема: Ошибка #2002 Невозможно подключиться к серверу MySQL

Доброго времени суток.Находил подобные вопросы в сети, но либо их решения мне не помогли, либо они так и оставались без ответов.
Имею VPS сервер с установленным php-fpm+nginx+mysql, из репозитория установил phpMyAdmin. Пытался через конфиги nginx настроить работу с PMA, (PMA установился в /usr/share/phpmyadmin, а сайт в /home/sitename/html) в итоге получил 503 ошибку, решил пойти проще и скопировал папку с файлами РМА в католог с сайтом, РМА запустился, но при вводе логина и пароля (логин и пароль от БД) выдает ошибку «#2002 Невозможно подключиться к серверу MySQL». Потом скачал PМA 3.5.3, закачал его в папку с сайтом, но при попытке входа в РМА получаю всё туже ошибку.
Содержимое конфига:

<?php
/*
 * Generated configuration file
 * Generated by: phpMyAdmin 3.5.3 setup script
 * Date: Sun, 28 Oct 2012 12:21:40 +0400
 */

/* Servers configuration */
$i = 0;

/* Server: MySQL server [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'MySQL server';
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'pass_db';

/* End of servers configuration */

$cfg['blowfish_secret'] = '538ceaf67c8508.82756758';
$cfg['DefaultLang'] = 'ru';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
?>

Связка php-fpm+nginx+mysql полностью рабочая, это подтверждается тем что такие функции как «mysql_connect(‘127.0.0.1’, ‘root’, ‘pass_db’);» выполняются успешно, да и Joomla встала и работает отлично.;
$cfg[

2 Ответ от Hanut 2012-10-29 00:23:16

  • Hanut
  • Hanut
  • Модератор
  • Неактивен
  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,722

Re: Ошибка #2002 Невозможно подключиться к серверу MySQL

Не вижу причину по которой phpMyAdmin не работает. Если скрипты на хосте запускаются и подключаются к БД, то и phpMyAdmin должен это делать. Попробуйте очистить куки браузера. И так же попробуйте в хост прописать localhost.

3 Ответ от Дeнис 2012-10-29 09:30:28

  • Дeнис
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2012-10-28
  • Сообщений: 2

Re: Ошибка #2002 Невозможно подключиться к серверу MySQL

Очистка куки не помогает, пробовал даже с другого компа. С прописыванием в хост localhost не все так просто, дело в том что скрипты выполняются из под chroot и не имеют доступа к этому самому localhost, и вместо него требуется указывать явный ip 127.0.0.1.

4 Ответ от Hanut 2012-10-29 10:09:30

  • Hanut
  • Hanut
  • Модератор
  • Неактивен
  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,722

Re: Ошибка #2002 Невозможно подключиться к серверу MySQL

Не знаю что подсказать. Поищите в логах ошибки, может будет за что уцепиться.

Привет, Александр.
Поставил Денвер, и такая вот петрушка, вроде все установилось, но….

Денвер, MySQL сервер не отвечает, ошибка 2002

Денвер, 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-адрес, который дал мне отказ в соединении, и я понятия не имею, что не так.

Любая помощь по этому поводу будет принята с благодарностью.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Подключение к базе данных не удалось неизвестная ошибка код ошибки 1698
  • Подключение к online sbis ru ошибка 12029 ошибка при отправке запроса