【问题标题】:MariaDB remote accessMariaDB 远程访问
【发布时间】:2017-10-02 10:34:35
【问题描述】:

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

我做了几乎所有在谷歌列出的配置,我也恢复到原来的状态。

我目前的问题是我无法连接到我的远程mariadb。凭证绝对没问题。

我将/etc/mysql/mariadb.conf.d/50-server.cnf 文件更改为bind-address,在那里我提供了服务器的IP,我可以访问我的phpmyadmin 的IP,如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.

【问题讨论】:

  • 您检查过 MariaDB 服务器上的防火墙配置吗?端口 3306 应该打开。还将 bind-address 更改为 0.0.0.0 以便它会侦听所有 IP 地址。不要忘记重新启动 MariaDB 服务以激活更改。
  • @ThomasSnijder 您提到的所有内容都经过审核。端口已打开,我尝试了 bind-address 0.0.0.0,仍然无法正常工作
  • 您是否在 MariaDB 服务器上创建了一个允许 root 从给定 IP 地址连接的帐户?通常这样创建一个帐户:将 laravel.* 上的所有权限授予由 '' 标识的 root@localhost;使用此根时只能从本地主机连接。
  • 是的,我也创建了帐户。
  • 错误信息暗示存在防火墙问题或服务未运行。因此,您应该再次检查并确保其间的任何设备都接受端口 3306 上的连接。否则我也不知道。

标签: php mysql laravel mariadb


【解决方案1】:

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

$ sudo apparmor_status

确保 mysqld 未处于任何“强制”模式。

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

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

要禁用它,请在 /etc/apparmor.d/disable/ 中添加一个 simlink

$ 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-22
    • 2018-09-19
    • 2020-10-15
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    相关资源
    最近更新 更多