• 草原旅行地中国国家地理网 2020-01-20
  • 《归去来》:青年一代 在温柔的撕裂中觉醒 2020-01-20
  • 中共山西省委组织部公示 2020-01-02
  • 哪个不在痛打落水狗呢 2019-12-27
  • 水费欠账竟“穿越”16年?用户质疑:为何没见催缴过? 2019-12-23
  • 当今的公知精英都引导人产生一个共识:干什么都不重要,钱就是“事业和面子”。为了钱,出售自己,很现实。因此,许许多多的人只“信仰人民币”。 2019-12-14
  • 图解:中央批复了雄安规划纲要!“干货”一览 2019-12-14
  • 中国梦大国工匠篇——治国理政新实践山西篇系列专题——黄河新闻网 2019-12-12
  • 风水神话更危险的事,就是眼瞎,根本分不清谁对谁, 2019-12-12
  • (两会受权发布)政府工作报告 2019-12-11
  • 毛丹青:故乡是文学的起跑线 2019-12-10
  • 不简单的职业谈资中国国家地理网 2019-12-10
  • 袁亮任安徽理工大学校长 2019-12-08
  • 重庆“彩色S型公路”正式通车  市民开车排队体验 2019-12-08
  • 2017年全国“创新社会治理典型案例”征集活动专家评审结果 2019-12-03
  • 香港赛马会足智彩赔率:一次Linux修改MySQL配置不生效的问题解决

     更新时间:2019年08月19日 14:56:11   作者:小二十七   我要评论
    这篇文章主要给大家介绍了关于Linux修改MySQL配置不生效问题的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Linux系统具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    香港赛马会网站惠泽社绝杀八码 www.mwcrz.tw

    背景

    自己手上有一个项目服务用的是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. 基础知识很重要,越是深的问题越考验程序员的内功

    好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

    相关文章

    最新评论

  • 草原旅行地中国国家地理网 2020-01-20
  • 《归去来》:青年一代 在温柔的撕裂中觉醒 2020-01-20
  • 中共山西省委组织部公示 2020-01-02
  • 哪个不在痛打落水狗呢 2019-12-27
  • 水费欠账竟“穿越”16年?用户质疑:为何没见催缴过? 2019-12-23
  • 当今的公知精英都引导人产生一个共识:干什么都不重要,钱就是“事业和面子”。为了钱,出售自己,很现实。因此,许许多多的人只“信仰人民币”。 2019-12-14
  • 图解:中央批复了雄安规划纲要!“干货”一览 2019-12-14
  • 中国梦大国工匠篇——治国理政新实践山西篇系列专题——黄河新闻网 2019-12-12
  • 风水神话更危险的事,就是眼瞎,根本分不清谁对谁, 2019-12-12
  • (两会受权发布)政府工作报告 2019-12-11
  • 毛丹青:故乡是文学的起跑线 2019-12-10
  • 不简单的职业谈资中国国家地理网 2019-12-10
  • 袁亮任安徽理工大学校长 2019-12-08
  • 重庆“彩色S型公路”正式通车  市民开车排队体验 2019-12-08
  • 2017年全国“创新社会治理典型案例”征集活动专家评审结果 2019-12-03
  • 金多利彩票群 体彩组六六码遗漏 七乐彩走势图1 意甲积分榜 甘肃十一选五 红鹰彩票苹果 怎么靠发微信文章赚钱 彩票开奖号码公告 澳洲幸运8开奖号码 浙江十一选五开奖结果