一次Linux修改MySQL配置不生效的问题解决
作者:小二十七 发布时间:2023-06-29 20:41:01
背景
自己手上有一个项目服务用的是AWS EC2,最近从安全性和性能方面考虑,最近打算把腾讯云的MySQL数据库迁移到AWS RDS上,因为AWS的出口规则和安全组等问题,我需要修改默认的3306端口和Bind Address限制特定的IP访问,我在Stackoverflow上查询了如何修改,但是网上的资料大多比较老旧,不符合目前主流的MySQL版本(使用的MySQL 5.7.27,操作系统使用Ubuntu 18.04.1 LTS)
过程
在 Stackoverflow上的高票回答很简单,修改只需要三步就可以完成
/etc/my.cnf // 找到配置文件
port = 3306 // 修改内容
sudo service mysql restart // 重启MySQL
但实时并没有那么简单,以上答案可能对旧版本管用,但是新版本你在/etc/my.cnf下根本找不到任何东西,文件都不存在
然后我去查阅的官方文档,找到的配置文件原来在目录:/etc/mysql/my.cnf 下,但是不要觉得找到配置文件就万事大吉,当你打开文件你会看到画风变了,因为配置文件里面没有内容,而是引用了另外2个配置文件夹,/etc/mysql/my.cnf 具体内容是这样的
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
可以,至少有线索了,顺着路径去找,在2个目录下每个文件都看了下,最后看到 mysql.conf.d/mysqld.cnf 似乎是我们要找的文件(官方文档也验证了这一点),打开可以看到我们需要修改的文件属性
[mysqld]
prot = 3306
bind-address = 127.0.0.1 // 只允许本机访问
改成我需要的的配置参数后,我以为事情到这里就结束了,当我使用 sudo service mysql restart 重启服务的时候,我发现我的内网机器还是访问不了,我使用 netstat -ntlp 查看 Local Address,Foregin Address,发现我修改的配置后的配置没有生效,我陷入的深深的自我怀疑当中,仿佛线索在这里中断了
然后,有网友说提到说有可能是文件权限问题,如果文件权限过大(全局可写),MySQL 会出现安全考虑不会读取该配置文件,而且读取自身的配置副本文件,我执行命令,如看如下警告
mysql --help | grep my.cnf
mysql: [Warning] World-writable config file '/etc/mysql/mysql.conf.d/mysqld.cnf'
is ignored.
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
上面是指文件由于全局可写存在风险,被MySQL忽略,并且列出MySQL读取配置文件的顺序,这里是可以看到MySQL是存在多个my.cnf配置文件,有些是全局配置,有些是局部配置,找到线索后,处理起来就简单很多了,我们更改文件权限,再看看 mysql --help 就发现警告已经没有了,具体命令如下:
sudo chmod 644 /etc/mysql/mysql.conf.d/mysqld.cnf
mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
然后再执行 sudo service mysql restart,然后再看看 Local Address 和 Foreign Address 已经变成我们在my.cnf配置的内容,但是修改后的配置已经成功生效,确认是文件全局可读的安全问题导致
总结
最后是关于 MySQL 的安全规则导致修改配置不生效,当然这条规则,大部分情况下我们是不知道的(如果没有完整阅读官网文档的话),在经过这次问题,我大概有如下几点总结,帮助大家在排查问题上少走弯路,尽快找到真实的问题:
遇到问题首先应该看官网的最新文档
查看资料时间,网上很多资料时间太长,可能会误导你
认真查看警告信息,熟练掌握排查工具和命令
基础知识很重要,越是深的问题越考验程序员的内功
好了,以上就是这篇文章的全部内容了
来源:https://www.cnblogs.com/xiao2shiqi/p/11376969.html


猜你喜欢
- 十月开始新建了一个英文的网站,网站系统基于MovableType,模板自制。在做好基于页面的优化工作之后,逐步的开始内容建设和推广。主要观察
- “腾讯TT”具有亲切、友好的用户界面,腾讯TT”不仅提供了完善的多页面浏览功能,
- var Ajaxs = new Array(); function Ajax(
- 1 安装邮件列表程序apt-get install mailman2 修改配置 /etc/mailman/mm_cfg.py 此服务器采用e
- 公司的服务是用的docker ,发现磁盘man了,然后执行下面的命令就搞定了1、创建脚本文件vi cleandocker.sh内
- linux禁止ping的实现实例1、临时禁止PING操作的命令为:#echo 1>/proc/sys/net/ipv4/icmp_ec
- 常用组件主要包括Aspjpeg、Jmail、LyfUpload、动易、ISAPI_ReWrite等,本文就仅说这5种,其他类型组件可以根据需
- 我先谈一下我的就爱车(www.9aiche.com),这个站是我的站兼职做宣传和优化,我不太懂程序优化也不是很懂所以就边学边用了,我自已的站
- 记事本打开httpd.conf文件 ,该文件在apache的目录下,如: D:\AppServ\Apache2.2\conf,修改如下两处:
- 我们说的正文是指<body></body>中的内容,在SEO中该位置相对于<title>&l
- 早前Google Reader进行了界面及功能的大革新后,越来越多的用户开始关注它。和Gmail及Google的其它很多产品或服务一样,Go
- 网站定位准确,就可以让您的网站成为用户眼中的首选。成为用户眼中第二的网站,就等于把更多的用户推给了竞争对手,因为对于用户选择一个网站来说,仅
- 网络冲浪者对Google情有独钟,是由于Google所提供的快速搜索速度及高命中率搜索结果。这些都是基于Google的复杂文本匹配运算法则及
- 你的服务器上是否存有一些不能随意公开的重要数据呢?当然有吧。最近,偏偏服务器遭受的风险又特别大,越来越多的病毒、心怀不轨的黑客,以及那些商业
- 方法1、因为没有像PHP自带的ReWrite模块,所以需要下载IIS Rewrite模块:www.helicontech.com/downl
- 问题:生成静态都设置好了,权限也给足了,可是仍然提示“当前没有生成任务在执行!”,这是什么原因呢?解决:检查下configCreateHtm
- 所有搞网络营销的人都知道论坛营销基本是以量取胜,为什么说是以量取胜呢,因为你在一个论坛上只发一个帖子,基本上没什么效果,所以现在出现了很多如
- 一、关注于整体关键词开发如果你在新闻部门工作,你的定向关键词内容可能会包括以下的词汇类型:新闻品牌新闻频道新闻姓名新闻姓名姓名+主题事件、产
- 我们今天谈的话题就是怎么读取带有安全设置的NTFS卷中的文件,当然如果我们的Windows 2000没有出麻烦则不存在这些问题的。但是如果W
- 这里将按照PJBLOG投放广告位置来讲解。由于PJBLOG采用UTF-8编码,所以编辑代码时请使用支持UTF-8编码的编辑器。一.在PJBL