站内公告:

SMF - Just Installed!

Main Menu

求助如何让数据库外网访问

作者 cnhap, 2017-02-07, 19:59:11

« 上一篇主题 - 下一篇主题 »

cnhap

博主你好,我根据你之前的  https://cnzhx.net/blog/centos-rhel-install-lamp-phpmyadmin/  已经将系统、博客网站 安装好了,我现在 在学习C#程序 想要 让C#程序 可以访问  MariaDB 数据库进行数据操作, 现在遇到的问题是 不知道  MariaDB 用什么软件 可以内网 访问 检测 数据库 是否可以正常访问 ,可以 内网 正常访问了 我才好调试 我自己弄得C#程序 。请 楼主 发表一篇 博文 让我学习下吧。CentOS 7 系统 非常的不熟悉。

我已经 用  内网  http://192.168.1.2:4444/phpMyAdmin/  的方式 创建 用户名  密码 和 管理数据库 并 设置了对用的表。 现在 不知道 有没有什么 程序 可以 用 ip  用户名  密码  的 UI  程序 来 测试 本地 链接。

lonelicloud

你好,我可能没有正确理解你的意思。但是要提醒你一下,数据库提供公网访问会增加服务器被入侵的风险。

按照你的标题来看,就是配置远程访问数据库,对吧?这个配置倒是简单,只需要设定/修改几个参数,然后打开防火墙相应的端口就行了。具体的配置可以参考 https://mariadb.com/kb/zh-cn/configuring-mariadb-for-remote-client-access/。这是中文的 MariaDB 官方文档。

如果按照文档操作遇到具体实施过程的问题话,再提出来我们慢慢解决。
欢迎光临水景一页

问题解决后请「修改」原始帖子将其前缀改为「已解决」。

请阅读"论坛管理"里面的置顶内容,帮助维护论坛正常运行,方便你我他!

cnhap

#2
博主 你好 那篇 中文的 设置 文档 我没有找到 配置 文件的  位置
/etc/my.cnf.d
是这个文件夹下吗?

另外 是不是端口 也没有开放

[root@cnhap ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp3s0
  sources:
  services: dhcpv6-client http ssh
  ports: 443/tcp 4444/tcp
  protocols:
  masquerade: no
  forward-ports:
  sourceports:
  icmp-blocks:
  rich rules:

lonelicloud

引用自: cnhap 于 2017-02-07, 22:32:53
博主 你好 那篇 中文的 设置 文档 我没有找到 配置 文件的  位置
/etc/my.cnf.d
是这个文件夹下吗?
配置文件说的就是 MariaDB 的配置文件,那篇文章的第一小节就列出了不同系统下的配置文件位置。按照我的教程里安装的系统的话,就是这个文件,
/etc/my.cnf

引用自: cnhap 于 2017-02-07, 22:32:53
另外 是不是端口 也没有开放

[root@cnhap ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp3s0
  sources:
  services: dhcpv6-client http ssh
  ports: 443/tcp 4444/tcp
  protocols:
  masquerade: no
  forward-ports:
  sourceports:
  icmp-blocks:
  rich rules:
端口也需要额外开启。才发现这一部分在中文文档里没提,英文文档里结尾的地方有:
https://mariadb.com/kb/en/mariadb/configuring-mariadb-for-remote-client-access/
firewall-cmd --add-port=3306/tcp
firewall-cmd --permanent --add-port=3306/tcp

默认的端口是 3306。你也可以根据自己的需要换用别的端口。需要跟 MariaDB 配置文件里定义的一致。
欢迎光临水景一页

问题解决后请「修改」原始帖子将其前缀改为「已解决」。

请阅读"论坛管理"里面的置顶内容,帮助维护论坛正常运行,方便你我他!

cnhap

#4
博主 我没有 运行 你给的 2句命令 我是根据前面的 文档 运行的  firewall-cmd --zone=public --add-port=3306/tcp --permanent 这句 命令 我没有完全懂,执行后 是下面的内容


[root@cnhap ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp3s0
  sources:
  services: dhcpv6-client http ssh
  ports: 443/tcp 4444/tcp 3306/tcp
  protocols:
  masquerade: no
  forward-ports:
  sourceports:
  icmp-blocks:
  rich rules:

另外 我找到 配置文件了 配置 文件中 skip-networking  默认 就是注释的   #skip-networking

但 bind-address = <some ip-address>  这句没有找到


我想还想 问问 有没有 什么 windows 系统 下 可以 用的软件 用于测试 和 数据库的 连接  中文知道上 说 要设置 IP 我的服务器是 建立在家里 自己的服务器上 没有固定外网ip 我要让外网可以访问 要如何设置呀,我已经在phpMyAdmin创建好了 用户名 、密码、数据库 是不是 已经 可以外网 连接了。
用户名:PorWu
密码:*******
数据库:mydb

CREATE USER 'PorWu'@'%' IDENTIFIED BY '***';GRANT USAGE ON *.* TO 'PorWu'@'%' IDENTIFIED BY '***' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;


我登录数据库后 运行代码 后 的 结果

MariaDB [(none)]> SELECT User, Host FROM mysql.user WHERE Host <> 'localhost';
+-------+-----------+
| User  | Host      |
+-------+-----------+
| PorWu | %         |
| cnhap | %         |
| root  | 127.0.0.1 |
| root  | ::1       |
+-------+-----------+
4 rows in set (0.00 sec)

我想 让 外网 只能是 PorWu  这个用户 可以 访问  现在 设置的 对吗?

lonelicloud

因为没有这样配置过,所以我也不确定,只是根据一般经验帮你分析一下,所以很多配置如果不是十分确定,又找不到明确的说明,那就自己测试几次吧。

1. 防火墙端口你那条指令的配置结果是一样的,应该没问题了;

2. 配置文件里如果没有,或者已经注释掉了,那应该就不用管它了;或者为了更加确定,可以在 [mysqld] 条目下添加 IP 绑定,
[mysqld]
bind-address=0.0.0.0


3. 数据库连接/管理的程序,不管是 Windows 上的还是 Linux 上的,我都不了解,你得自己搜索一下了;我简单搜索了一下,一个比较明显的结果是 SQLyog MySQL client,收费但是可以试用 14 天,地址在这里:https://github.com/webyog/sqlyog-community/wiki/Downloads

4. 用户权限的设置我没有细看,但是看你的配置应该是没有问题的;

5. 如果你没有固定公网 IP 又想通过外网连接的话,似乎只能配置「动态 DNS 服务」了,这个你得自己去找了。但是你可以先在内网通过另一台主机使用内网 IP 连接一下测试一番。
欢迎光临水景一页

问题解决后请「修改」原始帖子将其前缀改为「已解决」。

请阅读"论坛管理"里面的置顶内容,帮助维护论坛正常运行,方便你我他!

cnhap

谢谢博主,博主 不在 国内吗 怎么 凌晨5点种回复呀
我已经 内网外网 测试成功了 可以 链接了。
我还想咨询下,我用的是软路由,windows 的主机 和Linux 的主机 对端口映射 支持不一样吗?
我想 MariaDB 的端口用默认的,我在路由器上 加上端口号映射 来访问数据库,我在路由器上 设置成
如 1400 跳转到 3306 这样   设置后 就链接不通了,并且 我还尝试过 http 8000 映射到 80 端口 网页 也打不开。可我之前 安装 windows 系统 的主机的 时候 用端口映射的 方法 是 可以连通的,是不是 Linux 不支持这样的功能,还是说要哪里设置下。

另外我还想问下,若我在配置文件my.cnf 里 修改MariaDB 的默认端口号,本机上的 WordPress 程序访问数据库会不会受到影响?
ms sql 的数据库 端口访问的话是 192.168.1.2,1400  用逗号的方式来 访问,MariaDB 是一样吗?
还想问问改了端口号 是不是相对要安全点。我是不是只用 防火墙开端口 my.cnf 改端口号 就可以了。其他地方需要设置吗。非常感谢博主一直以来的热心帮助,之前我的博客 就是在博主的帮助下 在配置成功的。

lonelicloud

引用自: cnhap 于 2017-02-08, 09:49:52
谢谢博主,博主 不在 国内吗 怎么 凌晨5点种回复呀
这个回帖时间都能暴露我的行踪啊 ;-)

引用自: cnhap 于 2017-02-08, 09:49:52
我还想咨询下,我用的是软路由,windows 的主机 和Linux 的主机 对端口映射 支持不一样吗?
我想 MariaDB 的端口用默认的,我在路由器上 加上端口号映射 来访问数据库,我在路由器上 设置成
如 1400 跳转到 3306 这样   设置后 就链接不通了,并且 我还尝试过 http 8000 映射到 80 端口 网页 也打不开。可我之前 安装 windows 系统 的主机的 时候 用端口映射的 方法 是 可以连通的,是不是 Linux 不支持这样的功能,还是说要哪里设置下。
你在路由上设置端口映射,跟主机类型应该没关系吧?我对软路由完全不认识,所以帮不了你了。但是有一点,不知道你有没有确认是否弄错:比如映射 8000 到 80 后,你访问服务器就要用 IP:8000 来访问了,而不是原来的 IP 直接访问(换成域名也一样)。

引用自: cnhap 于 2017-02-08, 09:49:52
另外我还想问下,若我在配置文件my.cnf 里 修改MariaDB 的默认端口号,本机上的 WordPress 程序访问数据库会不会受到影响?
ms sql 的数据库 端口访问的话是 192.168.1.2,1400  用逗号的方式来 访问,MariaDB 是一样吗?
还想问问改了端口号 是不是相对要安全点。我是不是只用 防火墙开端口 my.cnf 改端口号 就可以了。其他地方需要设置吗。非常感谢博主一直以来的热心帮助,之前我的博客 就是在博主的帮助下 在配置成功的。
如果你修改了 MariaDB 的默认端口号,则所有访问它的服务都需要修改端口号。这个应该很简单。WordPress 的设置可以参考这里: https://codex.wordpress.org/Editing_wp-config.php#MySQL_Alternate_Port
欢迎光临水景一页

问题解决后请「修改」原始帖子将其前缀改为「已解决」。

请阅读"论坛管理"里面的置顶内容,帮助维护论坛正常运行,方便你我他!

cnhap

#8
再次 感谢 博主的帮忙 我已经修改了默认的 端口号  修改后 WordPress 程序 没有受到影响 我内网还是可以打开呢,明天单位上在试试。英文不行 我的软肋呀。 博主 有兴趣 可以关注我的博客 https://cnhap.org/  之后准备 弄点 C#的小程序玩玩。  帖子 可以改成 已解决了 我没有权限修改,还想问问 博主的 这个 论坛 用的是什么 程序 是 开放的吗 在哪里下载,不行我也改造下^_^

lonelicloud

不客气,欢迎时不时来逛逛 :-) 你的博客看着很不错。话说你跟我一个中学同学名字一样 :-D

关于这个论坛,请参考这个帖子:https://cnzhx.net/bbs/index.php?topic=604.0

不过我觉得 phpBB 也很好,而且有打算迁移过去。不过现在太忙了,估计要到几年后了。
欢迎光临水景一页

问题解决后请「修改」原始帖子将其前缀改为「已解决」。

请阅读"论坛管理"里面的置顶内容,帮助维护论坛正常运行,方便你我他!