|
寫在開頭的小故事: 很久以前小石頭我在一家公司做運維工程師,當時我們有一臺認證服務器安裝了mysql5.5版本。有一天領導說防止它掛掉,做個主從復制吧,我開心的接受任務,但是讓某同事聽到了, 此同事代號x,小x上來就是一波跟我裝x,跟我說我們還要用5.5版本的,5.5是最好的版本,安裝一定要用源碼安裝,這樣性能才是最佳的,還有一堆blablabla.......... 總之我感覺沒一句是完全對的,我得出的結論是:You can you up , No can no bb................
下面我來寫我是怎么安裝mysql的,如果有哪些不對,歡迎指出。
step1: 下載mysql的安裝包,那么就有幾個問題了,如下: 下載什么平臺的mysql? 答:Linux版本,不管是centos還是debian我們都用Linux - Generic,也就是Linux上的通用版本。 用什么版本號的mysql? 答:5.5其實老了,有很多問題,盡量用新一點的,用5.6或5.7都行。 源碼安裝還是用官方編譯好的包? 答:都說源碼安裝定制度高,性能好,那我想問問你,你要定制哪些東西?性能提高多少?你不知道的話還是用官方編譯好的二進制包吧。 不過聽說intel有個很好的c++編譯器,真的能提高性能,但是付費的,沒用過。。。 去哪里下載mysql? 答:肯定是官網上,別在百度上亂找,官網地址:https://dev./downloads/mysql/ 我們先來安裝5.6吧,我直接用wget下載,也可去官網點擊下載:
step2: 安裝過程:
我們來驗證一下是不是真的啟動了:
我們看到了進程號為24517的mysql進程:
通過上面使用bin/mysqld_safe --user=mysql &方式啟動的mysql進程,會自動監(jiān)控mysql進程狀態(tài),如果mysql進程意外死掉,則會被重新調起來:
看我們手動把它殺掉了,然后它又restart了。。。。 如果想關掉進程,執(zhí)行下面命令:
我們還可以用下面這種方式啟動,當進程意外退出時,不會被自動調起:
上面兩種啟動方式了解就好,最佳做法是:
程序可以正常啟動了,下面說說配置文件吧。
step3: 一個相對較優(yōu)的配置文件:
我們將使用上面的配置文件,對數據庫進行重新初始化: 由于配置文件中指定了新的data目錄,所以我們把原來的干掉吧!
把上面的內容寫到/etc/my.cnf中,然后重新執(zhí)行scripts/mysql_install_db --user=mysql初始化數據庫,可以看到新的data目錄已經生成了:
別高興的太早!error.log里面的錯誤日志了解一下?
是的你猜的沒錯,我這機器硬盤一共就6G,滿了。。。那先改成1G
如果出錯了就自己看error.log具體問題具體分析,總有各種各樣的問題,初始化之前把/data/mysql_data等舊文件刪除,再重新初始化。 然后啟動數據庫:
然后把配置文件中的#autocommit = 0 去掉注釋,重啟數據庫讓此項生效。 如果初始化時沒把此項注釋,則你執(zhí)行mysql -uroot -p是連不上數據庫的,因為數據庫時的user表中根本就沒有生成root用戶,在5.7中這個問題已經沒有了。 最后mysql5.6中的test庫應該刪除,因為它是不安全的。
注意: 錯誤日志在哪里? 答:如果不在配置文件中指定, 則在/usr/local/mysql/data下會生成相應的*.err文件。 報出data目錄沒有權限? 答:data目錄的權限應該是mysql:mysql才對,如果之前系統(tǒng)安裝了mysql,則會在/etc/下存在舊的配置文件my.cnf,mysql會優(yōu)先讀取它,所以在安裝之前應該將舊的配置文件干掉,免去不必要的麻煩。 使用上面的配置文件初始化數據庫,執(zhí)行mysql -uroot -p登錄不上? 答:上面說了,初始化之前把autocommit = 0注釋掉,裝完了再打開,不然是生成不了root用戶的。mysql5.7版本無此問題。 |
|
|
來自: 昵稱54185769 > 《待分類》