日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2025/4/16 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 记一次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.cnforder 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

    總結

    以上是生活随笔為你收集整理的记一次Linux修改MySQL配置不生效的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。