首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么mysql服务器接受非本地请求,而postgresql服务器却不接受?

问为什么mysql服务器接受非本地请求,而postgresql服务器却不接受?
EN

Unix & Linux用户
提问于 2019-03-20 18:41:14
回答 1查看 97关注 0票数 1

默认情况下,为什么mysql服务器接受非本地请求,而postgresql服务器却不接受?

代码语言:javascript
复制
$ nmap -p0-65535 192.168.1.97

Starting Nmap 7.60 ( https://nmap.org ) at 2019-03-20 14:34 EDT
Nmap scan report for ocean.fios-router.home (192.168.1.97)
Host is up (0.00036s latency).
Not shown: 65533 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
3306/tcp  open  mysql
33060/tcp open  mysqlx

Nmap done: 1 IP address (1 host up) scanned in 4.50 seconds

netstat能告诉我原因吗?

代码语言:javascript
复制
$ sudo netstat -ap | grep postg
tcp        0      0 localhost:postgresql    0.0.0.0:*               LISTEN      1567/postgres       
udp        0      0 localhost:57504         localhost:57504         ESTABLISHED 1567/postgres       
unix  2      [ ACC ]     STREAM     LISTENING     27116    1567/postgres        /var/run/postgresql/.s.PGSQL.5432

$ sudo netstat -ap | grep mysql
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN      23683/mysqld        
tcp6       0      0 [::]:33060              [::]:*                  LISTEN      23683/mysqld        
unix  2      [ ACC ]     STREAM     LISTENING     1169294  23683/mysqld         /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     LISTENING     1169513  23683/mysqld         /var/run/mysqld/mysqlx.sock
unix  2      [ ]         DGRAM                    1169211  23683/mysqld  

我如何配置mysql像postgresql一样工作,以便它正在运行而不接受非本地请求?

谢谢。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-03-20 19:15:00

没有必要建立防火墙来完成这样的任务。请注意,我并不是说防火墙是无用的,但是您只需要禁用所有地址侦听(0.0.0.0)。关于软件地址的最小特权可以等待连接。

PostgreSQL和MySQL是不同的软件,因此可以有不同的默认行为,如网络、用户访问、安装路径、数据库文件路径、所支持的文件系统等。另一件可能影响默认配置的事情是,您的发行版中对这个包的响应决定了软件应该使用什么作为默认值。

MySQL默认值是侦听所有网络地址(0.0.0.0),除非按照上面解释的发行版配置不同。

回到您的问题,要使MySQL只回答localhost,请访问它的配置文件(大多数情况在/etc/my.cnf或/etc/mysql/my.cnf)并添加或编辑以下行:

代码语言:javascript
复制
bind-address = 127.0.0.1

然后,重新启动mysql服务(取决于发行版,通常是systemctl restart mysql或systemctl restart mysqld)

使用ss命令进行双重检查:

代码语言:javascript
复制
ss -lntu | grep mysql
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/507510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档