安裝了mysql卻沒有my.cnf配置文件是個很多新手都會遇到的問題。想必很多新手都經歷到過這樣的情景:准備修改mysql存儲空間(datadir)等情況時,按着網上的教學去做,突然發現居然沒有my.cnf;轉而搜索“mysql沒有my.cnf怎么辦”,mysql如何添加my.cnf"。。。但是網絡上的相關搜索中充斥着大量不同的信息(因為每個人遇到的情況都不一樣),且有一些寫的很模糊的文章又被垃圾網站運用爬蟲瘋狂轉載......大部分新手遇到的問題就是my.cnf到底要怎么配置,網上搜索出來的配置詳解大多比較復雜;其實,對於my.cnf新手僅需配置最基本的幾個信息就夠了(當然能參照文檔將my.cnf配置詳細了解肯定是最好的,新手可以慢慢來)。筆者提供了一種簡單的my.cnf配置方案,可以供新手們參考:
1.運行 mysql --help | grep my.cnf 查看my.cnf配置位置的讀取順序。/etc/my.cnf不存在,則我們需要在etc下創建my.cnf配置文件(mysql會優先度讀取)。
2.去/usr/share/mysql里將my-default.cnf文件copy到第一步查到的路徑里,命名為my.cnf。my-default.cnf可以作為我們的模板,這個文件里的參數比較少且都比較好理解。
3.進入數據庫mysql -u root -p,運用命令對my-default.cnf中注釋掉的幾個最基本參數進行查詢並填充回去:如show variables like '%basedir%'; 可以查到目前mysql的basedir信息,然后我們將my.cnf中注釋掉的basedir填為查詢到的數值。筆者是僅填寫了以下幾個參數(basedir、datadir、port、socket):
注意這些參數一定要根據用戶自己的實際情況來填寫(按照本步驟說的方法從數據庫里查詢得到)
4. 新增client參數,避免本地訪問出現錯誤:
本人在新增my.cnf文件同時,修改了mysql默認存儲空間(datadir),故對應的datadir和在原來datadir路徑下的socket需要更新為修改后的路徑(比如你將原始的datadir:/var/lib/mysql copy到 /opt/mysql,則/opt/mysql則為修改后的路徑)。這邊要求新增client參數就是避免在本地登錄mysql時,mysql依舊去讀舊的sock(/var/lib/mysql/mysql.sock),則會出現無法登錄的情況。
5.重啟mysql service mysql restart 然后再用命令show variables like '%datadir%'; 去查修改后的參數(如port、datadir等),如果修改成功就ok了
好吧!因為快下班了,周末即將到來!本文寫的也非常非常簡陋含糊!有空再補充!希望本文能給新手們一點參考,有疑問的可以留言大家一起探討學習!