linux mysql更改生效_记一次Linux修改MySQL配置不生效的问题

53fbc380374e8c001fc927a6a709ddf0.png

背景

本身手上有一个项目服务用的是AWS EC2,最近从安全性和性能方面考虑,最近打算把腾讯云的MySQL数据库迁移到AWS RDS上,由于AWS的出口规则和安全组等问题,我须要修改默认的3306端口和Bind Address限制特定的IP访问,我在Stackoverflow上查询了如何修改,可是网上的资料大多比较老旧,不符合目前主流的MySQL版本(使用的MySQL 5.7.27,操做系统使用Ubuntu 18.04.1 LTS)mysql

过程

在 Stackoverflow上的高票回答很简单,修改只须要三步就能够完成程序员

/etc/my.cnf // 找到配置文件

port = 3306 // 修改内容

sudo service mysql restart // 重启MySQL

但实时并无那么简单,以上答案可能对旧版本管用,可是新版本你在/etc/my.cnf下根本找不到任何东西,文件都不存在sql

而后我去查阅的官方文档,找到的配置文件原来在目录:/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配置的内容,可是修改后的配置已经成功生效,确认是文件全局可读的安全问题致使rest

总结

最后是关于 MySQL 的安全规则致使修改配置不生效,固然这条规则,大部分状况下咱们是不知道的(若是没有完整阅读官网文档的话),在通过此次问题,我大概有以下几点总结,帮助你们在排查问题上少走弯路,尽快找到真实的问题:code

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

查看资料时间,网上不少资料时间太长,可能会误导你

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值