我正在使用laravel 5.4,并且在具有最新mariaDB的远程服务器ubuntu 16.04上,

我做了几乎所有在google中列出的配置,并且我也恢复了原始状态。

我当前的问题是我无法连接到远程mariadb。凭证绝对正确。

我更改了/etc/mysql/mariadb.conf.d/50-server.cnfbind-address文件,在该文件中我给出了服务器的IP,在该IP中我可以像phpmyadmin一样访问我的1.1.1.1/phpmyadmin。当前的.env设置为:

DB_CONNECTION=mysql
DB_HOST=1.1.1.1
DB_PORT=3306
DB_DATABASE=*******
DB_USERNAME=root
DB_PASSWORD=********


但是它抛出的错误是SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.

最佳答案

检查您的AppArmor配置文件。它可能阻止了mysqld进程访问网络。

$ sudo apparmor_status

确保mysqld不在任何“强制”模式下。

检查/etc/apparmor.d/中是否有mysqld配置文件

$ ls /etc/apparmor.d/*mysqld*

要禁用它,请将simlink放在/etc/apparmor.d/disable/

$ sudo ln -s /etc/apparmor.d/<full_name_of_mysqld_file> /etc/apparmor.d/disable/

其次是

$ sudo apparmor_parser -R /etc/apparmor.d/<full_name_of_mysqld_file>

验证是否禁用了mysqld保护:

$ sudo aa-status

09-25 18:05