2019.9.20更新
mysql5.7以上和5.7以下的版本存在參數配置不同 5.7以上報不存在的字段有 unknown variable 'innodb_additional_mem_pool_size=2M' 解決:移除這個配置 innodb_additional_mem_pool_size 和 innodb_use_sys_malloc 在 MySQL 5.7.4 中移除。 #unknown variable 'log-slow-queries' 解決: mysql5.6版本以上,取消了參數log-slow-queries,更改為slow-query-log-file 還需要加上 slow_query_log = on 否則,還是沒用 #log-slow-queries = /home/db/madb/log/slow-query.log slow_query_log = on slow-query-log-file = /home/db/madb/log/slow-query.log long_query_time = 1
5.7以上版本使用 character_set_server=utf8 代替default-character-set = utf8
#unknown variable myisam_max_extra_sort_file_size=100G
5.7版本沒有上面參數,去除
基本配置,這個配置可以直接復制到mysql根目錄下了my.ini文件中,
[client] port=3306 [mysql] no-beep # default-character-set= [mysqld] port=3306 # mysql根目錄 basedir="D:\AppServ\mysql5.7\" # 放所有數據庫的data目錄 datadir=D:\AppServ\mysql5.7\data # character-set-server= # 默認存儲引擎innoDB default-storage-engine=INNODB # Set the SQL mode to strict sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" #日志輸出為文件 log-output=FILE # 是否開啟sql執行結果記錄,必須要設置general_log_file參數,日志的路徑地址 # 即日志跟蹤,1為開啟,0為關閉 general-log=0 general_log_file="execute_sql_result.log" # 配置慢查詢,5.7版本默認為1 slow-query-log=1 slow_query_log_file="user-slow.log" long_query_time=10 #默認不開啟二進制日志 #log-bin=mysql-log #錯誤信息文件設置,會將錯誤信息放在data/mysql.err文件下 log-error=mysql.err # Server Id.數據庫服務器id,這個id用來在主從服務器中標記唯一mysql服務器 server-id=1 #lower_case_table_names: 此參數不可以動態修改,必須重啟數據庫 #lower_case_table_names = 1 表名存儲在磁盤是小寫的,但是比較的時候是不區分大小寫 #lower_case_table_names=0 表名存儲為給定的大小和比較是區分大小寫的 #lower_case_table_names=2, 表名存儲為給定的大小寫但是比較的時候是小寫的 lower_case_table_names=1 #限制數據的導入導出都只能在Uploads文件中操作,這個是在sql語句上的限制。 #secure-file-priv="D:\AppServ\mysql-5.7.23/Uploads" #值為null ,也就是注釋掉這個參數或者secure-file-priv=null。表示限制mysqld 不允許導入|導出 #值為/tmp/ ,即secure-file-priv="/tmp/" 表示限制mysqld 的導入|導出只能發生在/tmp/目錄下 #沒有具體值時,即secure-file-priv= 表示不對mysqld 的導入|導出做限制 # 最大連接數 max_connections=151 # 打開表的最大緩存數 table_open_cache=2000 # tmp_table_size 控制內存臨時表的最大值,超過限值后就往硬盤寫,寫的位置由變量 tmpdir 決定 tmp_table_size=16M # 每建立一個連接,都需要一個線程來與之匹配,此參數用來緩存空閑的線程,以至不被銷毀, # 如果線程緩存中有空閑線程,這時候如果建立新連接,MYSQL就會很快的響應連接請求。 # 最大緩存線程數量 thread_cache_size=10
MyISAM引擎的配置,不是很了解存儲引擎。先復制上來,做備份

#*** MyISAM Specific options MyISAM引擎的配置 # MySQL重建索引時所允許的最大臨時文件的大小 myisam_max_sort_file_size=100G myisam_sort_buffer_size=8M key_buffer_size=8M read_buffer_size=0 read_rnd_buffer_size=0
InnonDB配置

#*** INNODB Specific options InnoDB存儲引擎的配置 # InnoDB表的目錄共用設置。沒有在 my.cnf 進行設置,InnoDB 將使用MySQL的 datadir 目錄為缺省目錄。 # 如果設定一個空字串,可以在 innodb_data_file_path 中設定絕對路徑 #innodb_data_home_dir= # 通常設置為 1,意味着在事務提交前日志已被寫入磁盤, 事務可以運行更長以及服務崩潰后的修復能力。 # 如果你願意減弱這個安全,或你運行的是比較小的事務處理,可以將它設置為 0 ,以減少寫日志文件的磁盤 I/O。 innodb_flush_log_at_trx_commit=1 # InnoDB 將日志寫入日志磁盤文件前的緩沖大小 innodb_log_buffer_size=1M # InnoDB 用來高速緩沖數據和索引內存緩沖大小。 innodb_buffer_pool_size=8M innodb_log_file_size=48M # InnoDB 會試圖將 InnoDB 服務的使用的操作系統進程小於或等於這里所設定的數值。默認為8 innodb_thread_concurrency=9 innodb_autoextend_increment=64 innodb_buffer_pool_instances=8 innodb_concurrency_tickets=5000 innodb_old_blocks_time=1000 innodb_open_files=300 innodb_stats_on_metadata=0 innodb_file_per_table=1 innodb_checksum_algorithm=0 back_log=80 flush_time=0 join_buffer_size=256K max_allowed_packet=4M max_connect_errors=100 open_files_limit=4161 sort_buffer_size=256K table_definition_cache=1400 binlog_row_event_max_size=8K sync_master_info=10000 sync_relay_log=10000 sync_relay_log_info=10000