При работе с MySQLi (улучшенная версия MySQL) в PHP вы можете столкнуться с сообщением об ошибке «Доступ запрещен», которое указывает на то, что для указанного пользователя запрещено подключение к базе данных. В этой статье мы рассмотрим различные методы устранения и устранения этой ошибки, а также приведем примеры кода, которые помогут вам лучше понять решения.
- Проверка учетных данных базы данных.
Первым шагом в устранении ошибки отказа в доступе к MySQLi является проверка учетных данных базы данных, используемых для подключения к серверу MySQL. Убедитесь, что имя пользователя, пароль и имя хоста указаны правильно. Вот пример кода подключения MySQLi:
$servername = "localhost";
$username = "phpma";
$password = "YOUR_PASSWORD";
$database = "YOUR_DATABASE";
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
- Предоставьте достаточные привилегии.
Ошибки отказа в доступе могут возникнуть из-за недостаточных привилегий для указанного пользователя. Убедитесь, что у пользователя есть необходимые разрешения для подключения к серверу MySQL и доступа к нужной базе данных. Вы можете предоставить привилегии с помощью оператора GRANT в MySQL:
GRANT ALL PRIVILEGES ON your_database.* TO 'phpma'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD';
FLUSH PRIVILEGES;
- Проверьте доступ к хосту:
MySQL может ограничить доступ в зависимости от хоста, с которого установлено соединение. Убедитесь, что пользователю «phpma» разрешено подключение с хоста «localhost». Вы можете предоставить доступ всем хостам, используя подстановочный знак «%»:
GRANT ALL PRIVILEGES ON your_database.* TO 'phpma'@'%' IDENTIFIED BY 'YOUR_PASSWORD';
FLUSH PRIVILEGES;
-
Проверьте настройки брандмауэра и порта.
Брандмауэры или настройки порта на сервере, на котором размещена база данных MySQL, могут блокировать входящие соединения. Убедитесь, что порт MySQL (по умолчанию — 3306) открыт и доступен. Обратитесь к администратору сервера или хостинг-провайдеру за помощью в настройке брандмауэра и портов. -
Проверьте наличие опечаток и специальных символов.
Дважды проверьте имя пользователя, пароль и другие данные подключения на наличие опечаток или специальных символов. Специальные символы в паролях, возможно, придется экранировать или заключать в кавычки.
Ошибку «mysqli::real_connect(): (HY000/1045): доступ запрещен для пользователя ‘phpma’@’localhost’» можно устранить с помощью методов, упомянутых выше. Проверив учетные данные базы данных, предоставив достаточные привилегии, проверив доступ к хосту, проверив настройки брандмауэра и порта, а также обеспечив правильный синтаксис и обработку специальных символов, вы можете устранить ошибку отказа в доступе и установить успешное соединение с вашей базой данных MySQL.
Не забывайте всегда безопасно обращаться с конфиденциальной информацией и следовать рекомендациям по защите учетных данных вашей базы данных.