安裝準備: rpm -qa|grep -i mysqljava
命令敲完後出來一堆mysql,各式各樣的已安裝mysql包,什麼-java 、-Python等等不一而足,一看懵了!node
發揮不敗精神,先了解狀況,經過了解發現這是一臺全新服務器,這些都是安裝菜雞把系統自帶包都打上了,考慮再三仍是卸載吧,簡單迅速!mysql
卸載:rpm -ev linux
使用rpm -ev 卸載後,使用whereis mysql或者find / -name mysql查看還有哪些目錄留存,使用rm -rf 刪除目錄,刪就刪個完全!!!!sql
ps:若是報error:Failed dependencies:.........等請帶上 --nodeps數據庫
附上繁瑣的卸載過程圖:緩存
卸載完畢,進入yum簡單安裝環節:yum install (-y 等多個參數可選)服務器
貼上安裝命令:yum install -y mysql-server mysql-devel併發
安裝完畢,啓動mysql,問題來了,啓動不起來!沒有任何反應,甚至沒有錯誤日誌!!!只有falsesocket
後來考慮到是否是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=utf8
若是粘貼上面的配置文件直接使用,請記得刪除mysql目錄下面的ib_logfile0和ib_logfile1文件,至於爲何本身好好讀讀配置文件,多看看mysql的文章,這裏不作描述,呵呵!
最後幾步操做,日誌文件分開存放(記得賦權哈,這裏以mysql-logs爲例 chown -R mysql:mysql mysql-logs)
順帶說下這幾個日誌的意義:
error:錯誤日誌,用於故障事件的排查
bin-log:二進制日誌,與完備配合,用於重大故障發生後的數據恢復
slow:慢查詢了,你想優化總要知道哪裏能優化吧!!哈哈哈!
啓動mysql:service mysqld start
完成後,記得設個密碼:mysqladmin -uroot password ‘*****’
至此,一個數據庫的部署算是基本完成了。。。