一次Linux修改MySQL配置不生效的问题解决

作者:小二十七 时间:2023-06-29 20:41:01 

一次Linux修改MySQL配置不生效的问题解决

背景

自己手上有一个项目服务用的是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 的安全规则导致修改配置不生效,当然这条规则,大部分情况下我们是不知道的(如果没有完整阅读官网文档的话),在经过这次问题,我大概有如下几点总结,帮助大家在排查问题上少走弯路,尽快找到真实的问题:

  1. 遇到问题首先应该看官网的最新文档

  2. 查看资料时间,网上很多资料时间太长,可能会误导你

  3. 认真查看警告信息,熟练掌握排查工具和命令

  4. 基础知识很重要,越是深的问题越考验程序员的内功

好了,以上就是这篇文章的全部内容了

来源:https://www.cnblogs.com/xiao2shiqi/p/11376969.html

标签:linux,配置,mysql
0
投稿

猜你喜欢

  • 从侠客站长站的成长相信自己的路

    2009-03-11 17:30:00
  • 保护DNS服务器的几点方法总结!

    2010-02-21 17:35:00
  • GoDaddy空间如何在子域名及别名域名上设置404页面

    2010-04-12 12:33:00
  • Thinkpad VMware 安装虚拟机出现此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态(问题解决方法)

    2023-11-04 21:32:29
  • 微软计划明年二月推出支持电容触控面板手机

    2009-11-09 08:31:00
  • 谷歌推出新型扩展式广告 考虑用户体验感受

    2009-03-06 12:50:00
  • 美图秀秀2.0.6 新增时尚“阿宝”色特效

    2009-11-23 14:21:00
  • 利用分类信息平台进行有效的网上推广

    2009-01-22 20:53:00
  • Ubuntu18.04服务器密码忘记或被篡改如何重置密码

    2023-07-12 10:53:03
  • UCenter Home网站服务器搬家详解

    2009-02-15 09:53:00
  • WordPress一键安装:WordPressQI

    2010-03-21 13:26:00
  • 详解CentOS 6.5搭建Redis3.2.8单机分布式集群

    2023-07-16 09:54:01
  • 网站流量与盈利终端

    2007-11-05 13:58:00
  • 学习成果分享:与搜索友好的网站架设规范

    2009-01-23 13:56:00
  • linux下wget命令的基本使用方法

    2023-11-02 23:31:36
  • Ubuntu 20.04系统中安装vncserver的方法步骤

    2023-07-13 22:17:12
  • VMWare Workation双网卡配置IP地址的图文教程

    2023-11-04 19:19:30
  • 安装WordPress后必做的30件事

    2011-01-31 17:47:00
  • 对比百度和Google的收录习惯

    2007-11-12 22:28:00
  • 如何提高网站的Google PR值

    2007-10-12 19:12:00
  • asp之家 网站运营 m.aspxhome.com