一次Linux下卸載安裝mysql-5.1.73的折騰
安裝準備: rpm -qa|grep -i mysql
命令敲完後出來一堆mysql,各式各樣的已安裝mysql包,什麽-java 、-Python等等不一而足,一看懵了!
發揮不敗精神,先了解情況,通過了解發現這是一臺全新服務器,這些都是安裝菜雞把系統自帶包都打上了,考慮再三還是卸載吧,簡單迅速!
卸載:rpm -ev
使用rpm -ev 卸載後,使用whereis mysql或者find / -name mysql查看還有哪些目錄留存,使用rm -rf 刪除目錄,刪就刪個徹底!!!!
ps:如果報error:Failed dependencies:.........等請帶上 --nodeps
附上繁瑣的卸載過程圖:
卸載完畢,進入yum簡單安裝環節:yum install (-y 等多個參數可選)
貼上安裝命令:yum install -y mysql-server mysql-devel
安裝完畢,啟動mysql,問題來了,啟動不起來!沒有任何反應,甚至沒有錯誤日誌!!!只有false
後來考慮到是不是SElinux阻止了,看了看果然是因為SElinux,執行國人的SElinux趕盡殺絕策略,關掉!!!
/usr/sbin/sertatus -v 或者getenforce ## 查看SElinux 狀態,enabled 為開啟,disable為關閉
臨時關閉使用:setenforce 0 ## 0為關閉 1為開啟
永久關閉請使用修改配置文件的辦法,修改完成後需要重啟服務器才能生效。
修改配置文件:/etc/selinux/config
將SELINUX=enforcing 改為SELINX=disable即可
再次使用:service mysqld start 數據庫啟動成功,呵呵下!!!!
下面進行mysql的基本配置以圖片解決(做下面的操作前,請記得service mysqld stop哈,不然出問題自己負責!):
設置mysql隨服務器啟動而啟動,其他軟件同理:
給mysql換個新家,即換個自己喜歡的目錄,不默認(默認有什麽不好,你懂的),順便給個軟鏈接:
接下來就是配置文件咯(/etc/my.cnf):
貼上某個遊戲公司工作,優化後的數據庫配置,以備不是之需!!!
[mysqld] ########basic settings######## datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql character-set-server=utf8 back_log = 600 #當達到最大連接數時,可以被存在堆棧中的連接 max_connections=1000 #最大連接數 max_prepared_stmt_count=124000 max_connect_errors = 6000 #對同一主機,超過6000中斷錯誤連接,將禁止連接 lower_case_table_names = 1 #不區分大小寫 table_open_cache= 4096 # 每打開一個表,讀入緩存的數據大小 table_definition_cache=8192 open_files_limit = 65535 #打開的文件的描述符的限制 max_allowed_packet = 4M #接受的數據包的大小,此為僅當需要時才會分配內存大小 query_cache_limit = 2M #指定單個查詢能夠使用的緩沖區大小,默認1M ft_min_word_len = 4 #分詞詞匯最小長度 transaction_isolation = REPEATABLE-READ #事件隔離級別,此為默認 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 #######log settings######## binlog_cache_size = 1M #一個事件,在沒有提交時,產生的日誌記錄到Cache中的大小 log_bin = /data/mysql-logs/binlog/mysql-bin binlog_format = mixed slow_query_log = 1 long_query_time = 1 #慢查詢時間 超過1秒則為慢查詢 slow_query_log_file = /data/mysql-logs/slow/mysql-slow.log expire_logs_days = 90 #超過90天的binlog刪除 log_queries_not_using_indexes = 1 log_slow_admin_statements = 1 log_slow_slave_statements = 1 min_examined_row_limit = 100 ##########InnoDB############ skip-external-locking #MySQL選項以避免外部鎖定。該選項默認開啟 default-storage-engine = InnoDB #默認存儲引擎 innodb_file_per_table = 1 #每個數據庫的每個表生成一個數據空間 innodb_open_files = 2000 #限制能夠打開的表的數據,默認300 innodb_buffer_pool_size = 64M #使用一個緩沖池來保存索引和原始數據 innodb_thread_concurrency = 0 #默認設置0,表示不限制並發數 innodb_flush_log_at_trx_commit = 2 #每次提交事件都會寫入日誌 innodb_log_buffer_size = 2M #確定寫日誌文件所用的內存大小 innodb_log_file_size = 32M #確定數據日誌的文件大小 innodb_log_files_in_group = 3 #以循環方式將日誌文件寫到多個文件 innodb_max_dirty_pages_pct = 90 #主線程刷新緩存池中的數據,使無用數據少於90% innodb_lock_wait_timeout = 120 #事件在被回滾之前可以等待一個鎖定的超時秒數 bulk_insert_buffer_size = 8M #批量插入緩存大小 myisam_sort_buffer_size = 8M #恢復表時使用的緩沖區大小 myisam_max_sort_file_size = 10G #使用快速排序方法來創建一個索引 myisam_repair_threads = 1 #在Repair by sorting過程中創建MyISAM表索引 interactive_timeout = 28800 #服務器關閉交互式連接前等待活動的秒數 wait_timeout = 28800 #服務器關閉非交互連接之前等待活動的秒數 [mysqldump] quick max_allowed_packet = 16M #服務器發送和接受的最大包長度 [myisamchk] key_buffer_size = 8M #指定用於索引的緩沖區大小 sort_buffer_size = 8M #執行排序使用的緩沖大小,增加ORDER BY速度 read_buffer_size = 4M #讀入緩存區大小,對表進行掃描請求分配的讀入緩沖區 tmp_table_size = 16M #heap(堆積)表緩沖大小 read_rnd_buffer_size = 8M #隨機讀緩存區大小,對任意順序查詢分配讀入緩沖區,用於順序查詢(禁止設置過大,避免消耗內存) join_buffer_size = 8M #聯合查詢操作所能使用的緩沖區大小 thread_cache_size = 8 #重新利用保存在緩存中的線程的數量 query_cache_size = 8M #查詢緩沖大小 write_buffer = 4M [mysqld_safe] log-error=/data/mysql-logs/error/mysql-error.log pid-file=/var/run/mysqld/mysqld.pid [client] default-character-set=utf8View Code
如果粘貼上面的配置文件直接使用,請記得刪除mysql目錄下面的ib_logfile0和ib_logfile1文件,至於為什麽自己好好讀讀配置文件,多看看mysql的文章,這裏不做描述,呵呵!
最後幾步操作,日誌文件分開存放(記得賦權哈,這裏以mysql-logs為例 chown mysql:mysql mysql-logs)
- 在數據目錄下開辟一個專用於數據庫日誌存放的目錄:/data/mysql-logs
- 在mysql-logs下分別建立mkdir error 、mkdir bin-log 、mkdir slow三大數據庫日誌存放目錄
順帶說下這幾個日誌的意義:
error:錯誤日誌,用於故障事件的排查
bin-log:二進制日誌,與完備配合,用於重大故障發生後的數據恢復
slow:慢查詢了,你想優化總要知道哪裏能優化吧!!哈哈哈!
啟動mysql:service mysqld start
完成後,記得設個密碼:mysqladmin -uroot password ‘*****’
至此,一個數據庫的部署算是基本完成了。。。
一次Linux下卸載安裝mysql-5.1.73的折騰