Ошибка MySQL 2002 ("Connection refused") указывает на то, что ваше приложение не может подключиться к MySQL серверу. Вот несколько шагов, которые помогут вам решить эту проблему:
1. **Проверьте, запущен ли MySQL сервер**:
Убедитесь, что MySQL сервер работает. Выполните следующую команду в терминале:
```bash
sudo systemctl status mysql
```
Если сервер не запущен, вы можете запустить его с помощью:
```bash
sudo systemctl start mysql
```
2. **Проверьте параметры подключения**:
Убедитесь, что настройки подключения к базе данных в вашем приложении корректные (файл `dbconn.php` или аналогичный). Проверьте следующие параметры:
- Хост (обычно это `localhost` или `127.0.0.1`).
- Порт (по умолчанию для MySQL используется 3306).
- Имя пользователя и пароль.
3. **Проверьте, что MySQL слушает на правильном интерфейсе**:
Откройте файл конфигурации MySQL, который обычно находится по пути `/etc/mysql/my.cnf` или `/etc/my.cnf`. Найдите строку, начинающуюся на `bind-address`. Убедитесь, что она либо закомментирована, либо указано `0.0.0.0` (если вы хотите, чтобы MySQL слушал на всех интерфейсах) или `127.0.0.1` (если вы хотите ограничить подключение локально).
Пример:
```ini
#bind-address = 127.0.0.1
```
4. **Проверьте наличие брандмауэра**:
Если у вас включен брандмауэр (например, UFW или iptables), убедитесь, что он не блокирует доступ к MySQL. Для UFW:
```bash
sudo ufw allow 3306/tcp
```
5. **Проверка логов MySQL**:
Просмотрите логи MySQL, чтобы найти дополнительные подсказки о том, почему соединение отклоняется. Обычно логи находятся в `/var/log/mysql/error.log` или `/var/log/mysql/mysql.log`.
6. **Проверка прав доступа пользователя**:
Убедитесь, что пользователь, который используется для подключения, имеет необходимые права для доступа к базе данных. Вы можете использовать следующую команду MySQL для проверки прав:
```sql
SHOW GRANTS FOR 'username'@'localhost';
```
Если пользователя нет, создайте его:
```sql
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
```
7. **Перезагрузка MySQL**:
Если вы внесли изменения в конфигурацию, перезагрузите MySQL:
```bash
sudo systemctl restart mysql
```
После выполнения указанных шагов попробуйте снова подключиться к базе данных. Если ошибка сохраняется, уточните детали конфигурации и сообщения об ошибках для дальнейшего анализа.