Для работы модуля нужен php7.4-mysql (в данном примере), установленный на стороне Userside
Заходим в mysql
mysql -u root -pПароль SELECT user FROM mysql.user;
Смотрим разрешения пользователя acp
SHOW GRANTS FOR 'acp'@'%';
ответ
MariaDB [(none)]> SHOW GRANTS FOR 'acp'@'%'; ERROR 1141 (42000): There is no such grant defined for user 'acp' on host '%'
Если пользователь может подключаться только с определенного хоста, например, localhost, то нужно указать это так:
SHOW GRANTS FOR 'acp'@'localhost'; | GRANT USAGE ON *.* TO `acp`@`localhost` IDENTIFIED BY PASSWORD '*98D84DA1681DC131CB0993CAB135D43F19205A30' | | GRANT ALL PRIVILEGES ON `acp`.* TO `acp`@`localhost`
Чтобы разрешить пользователю acp доступ ко всем хостам, необходимо добавить привилегии для подключения с хоста %. Для этого выполните следующий SQL-запрос:
GRANT ALL PRIVILEGES ON `acp`.* TO 'acp'@'%' IDENTIFIED BY 'G@h0km098'; FLUSH PRIVILEGES;
Проверка
SHOW GRANTS FOR 'acp'@'%';
ответ
| Grants for acp@% | +-------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO `acp`@`%` IDENTIFIED BY PASSWORD '*98D84DA1681DC131CB0993CAB135D43F19205A30' | | GRANT ALL PRIVILEGES ON `acp`.* TO `acp`@`%`
Найдите директиву bind-address. Если она установлена на 127.0.0.1, то сервер принимает подключения только с локального хоста:
bind-address = 127.0.0.1
Чтобы разрешить подключение с любого IP-адреса (Опасно) или укажите свой диаппазон, замените эту строку в следующих файлах
/etc/mysql/mariadb.conf.d/50-server.cnf /etc/mysql/mariadb.conf.d/60-galera.cnf
на
bind-address = 172.16.150.0/24
После этого перезапустите MySQL/MariaDB:
systemctl restart mysql
Проверка открытых портов с помощью netstat или ss
netstat -tuln | grep 3306 ss -tuln | grep 3306
Если в результате вы увидите что-то вроде 0.0.0.0:3306, значит, MySQL прослушивает соединения на всех интерфейсах.
Убедитесь, что брандмауэр (например, iptables, nftables,firewalld, ufw) не блокирует порт 3306.