濮阳杆衣贸易有限公司

主頁 > 知識庫 > 一次Linux修改MySQL配置不生效的問題解決

一次Linux修改MySQL配置不生效的問題解決

熱門標(biāo)簽:濮陽好的聯(lián)通400電話申請 400電話號碼辦理多少錢 地圖標(biāo)注如何改成微信號 地圖標(biāo)注黃河的位置 靈圖uu電子寵物店地圖標(biāo)注 山東企業(yè)外呼系統(tǒng)公司 百度地圖標(biāo)注公司位置要多少錢 虛假地圖標(biāo)注 承德地圖標(biāo)注公司


背景

自己手上有一個項目服務(wù)用的是AWS EC2,最近從安全性和性能方面考慮,最近打算把騰訊云的MySQL數(shù)據(jù)庫遷移到AWS RDS上,因為AWS的出口規(guī)則和安全組等問題,我需要修改默認(rèn)的3306端口和Bind Address限制特定的IP訪問,我在Stackoverflow上查詢了如何修改,但是網(wǎng)上的資料大多比較老舊,不符合目前主流的MySQL版本(使用的MySQL 5.7.27,操作系統(tǒng)使用Ubuntu 18.04.1 LTS)

過程

在 Stackoverflow上的高票回答很簡單,修改只需要三步就可以完成

/etc/my.cnf // 找到配置文件
port = 3306 // 修改內(nèi)容
sudo service mysql restart // 重啟MySQL

但實時并沒有那么簡單,以上答案可能對舊版本管用,但是新版本你在/etc/my.cnf下根本找不到任何東西,文件都不存在

然后我去查閱的官方文檔,找到的配置文件原來在目錄:/etc/mysql/my.cnf 下,但是不要覺得找到配置文件就萬事大吉,當(dāng)你打開文件你會看到畫風(fēng)變了,因為配置文件里面沒有內(nèi)容,而是引用了另外2個配置文件夾,/etc/mysql/my.cnf 具體內(nèi)容是這樣的

!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 // 只允許本機(jī)訪問

改成我需要的的配置參數(shù)后,我以為事情到這里就結(jié)束了,當(dāng)我使用 sudo service mysql restart 重啟服務(wù)的時候,我發(fā)現(xiàn)我的內(nèi)網(wǎng)機(jī)器還是訪問不了,我使用 netstat -ntlp 查看 Local Address,F(xiàn)oregin Address,發(fā)現(xiàn)我修改的配置后的配置沒有生效,我陷入的深深的自我懷疑當(dāng)中,仿佛線索在這里中斷了

然后,有網(wǎng)友說提到說有可能是文件權(quán)限問題,如果文件權(quán)限過大(全局可寫),MySQL 會出現(xiàn)安全考慮不會讀取該配置文件,而且讀取自身的配置副本文件,我執(zhí)行命令,如看如下警告

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

上面是指文件由于全局可寫存在風(fēng)險,被MySQL忽略,并且列出MySQL讀取配置文件的順序,這里是可以看到MySQL是存在多個my.cnf配置文件,有些是全局配置,有些是局部配置,找到線索后,處理起來就簡單很多了,我們更改文件權(quán)限,再看看 mysql --help 就發(fā)現(xiàn)警告已經(jīng)沒有了,具體命令如下:

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

然后再執(zhí)行 sudo service mysql restart,然后再看看 Local Address 和 Foreign Address 已經(jīng)變成我們在my.cnf配置的內(nèi)容,但是修改后的配置已經(jīng)成功生效,確認(rèn)是文件全局可讀的安全問題導(dǎo)致

總結(jié)

最后是關(guān)于 MySQL 的安全規(guī)則導(dǎo)致修改配置不生效,當(dāng)然這條規(guī)則,大部分情況下我們是不知道的(如果沒有完整閱讀官網(wǎng)文檔的話),在經(jīng)過這次問題,我大概有如下幾點總結(jié),幫助大家在排查問題上少走彎路,盡快找到真實的問題:

  1. 遇到問題首先應(yīng)該看官網(wǎng)的最新文檔
  2. 查看資料時間,網(wǎng)上很多資料時間太長,可能會誤導(dǎo)你
  3. 認(rèn)真查看警告信息,熟練掌握排查工具和命令
  4. 基礎(chǔ)知識很重要,越是深的問題越考驗程序員的內(nèi)功

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

標(biāo)簽:德宏 上海 鷹潭 安康 樂山 福州 淮安 泰安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《一次Linux修改MySQL配置不生效的問題解決》,本文關(guān)鍵詞  一次,Linux,修改,MySQL,配置,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《一次Linux修改MySQL配置不生效的問題解決》相關(guān)的同類信息!
  • 本頁收集關(guān)于一次Linux修改MySQL配置不生效的問題解決的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    三穗县| 乌什县| 六枝特区| 莎车县| 瑞丽市| 清新县| 宾阳县| 长海县| 那坡县| 无锡市| 富平县| 朝阳区| 汶上县| 景谷| 大连市| 红安县| 石棉县| 晋中市| 新郑市| 重庆市| 苏州市| 五大连池市| 正宁县| 昌黎县| 时尚| 武山县| 尖扎县| 都江堰市| 横峰县| 新昌县| 石柱| 南川市| 常熟市| 军事| 南丹县| 黑河市| 仙游县| 偃师市| 漯河市| 浦县| 锦屏县|