中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL數據庫配置詳解

發布時間:2020-08-02 00:34:39 來源:網絡 閱讀:386 作者:斷臂人 欄目:MySQL數據庫

下面是我生產環境中MySQL的配置詳解:

[mysqld]

mysql服務端配置


server-id=1

服務ID,每個服務的服務ID不同即可


log-bin=mysql-bin

定義bin_log的位置和名稱,mysql操作記錄二進制日志


relay_log=mysql-realy-bin

定義relay_log的位置和名稱,從服務器解析主服務器二進制文件后記錄的文件


relay_log_index=slave-mysql-realy-bin.index

定義relay_log_index的位置和名稱


expire_logs_days=15

超過15天的binlog刪除


binlog_format=mixed

mysql復制方式為混合模式


說明:mysql復制主要有三種方式:基于SQL語句的復制(statement-based replication, SBR),基于行的復制(row-based replication, RBR),混合模式復制(mixed-based replication, MBR)。對應的,binlog的格式也有三種:STATEMENT,ROW,MIXED。


① STATEMENT模式(SBR)


每一條會修改數據的sql語句會記錄到binlog中。優點是并不需要記錄每一條sql語句和每一行的數據變化,減少了binlog日志量,節約IO,提高性能。缺點是在某些情況下會導致master-slave中的數據不一致(如sleep()函數, last_insert_id(),以及user-defined functions(udf)等會出現問題)


② ROW模式(RBR)


不記錄每條sql語句的上下文信息,僅需記錄哪條數據被修改了,修改成什么樣了。而且不會出現某些特定情況下的存儲過程、或function、或trigger的調用和觸發無法被正確復制的問題。缺點是會產生大量的日志,尤其是alter table的時候會讓日志暴漲。


③ MIXED模式(MBR)


以上兩種模式的混合使用,一般的復制使用STATEMENT模式保存binlog,對于STATEMENT模式無法復制的操作使用ROW模式保存binlog,MySQL會根據執行的SQL語句選擇日志保存方式。


auto-increment-increment=2

自增量每次增加的值改為2


auto-increment-offset= 1

第一次加載數值時的偏移值的個位值是1


innodb_flush_log_at_trx_commit=1

# 0:如果innodb_flush_log_at_trx_commit的值為0,log buffer每秒就會被刷寫日志文件到磁盤,提交事務的時候不做任何操作(執行是由mysql的master thread線程來執行的。

# 主線程中每秒會將重做日志緩沖寫入磁盤的重做日志文件(REDO LOG)中。不論事務是否已經提交)默認的日志文件是ib_logfile0,ib_logfile1

# 1:當設為默認值1的時候,每次提交事務的時候,都會將log buffer刷寫到日志。

# 2:如果設為2,每次提交事務都會寫日志,但并不會執行刷的操作。每秒定時會刷到日志文件。要注意的是,并不能保證100%每秒一定都會刷到磁盤,這要取決于進程的調度。

# 每次事務提交的時候將數據寫入事務日志,而這里的寫入僅是調用了文件系統的寫入操作,而文件系統是有 緩存的,所以這個寫入并不能保證數據已經寫入到物理磁盤

# 默認值1是為了保證完整的ACID。當然,你可以將這個配置項設為1以外的值來換取更高的性能,但是在系統崩潰的時候,你將會丟失1秒的數據。

# 設為0的話,mysqld進程崩潰的時候,就會丟失最后1秒的事務。設為2,只有在操作系統崩潰或者斷電的時候才會丟失最后1秒的數據。InnoDB在做恢復的時候會忽略這個值。

# 總結

# 設為1當然是最安全的,但性能頁是最差的(相對其他兩個參數而言,但不是不能接受)。如果對數據一致性和完整性要求不高,完全可以設為2,如果只最求性能,例如高并發寫的日志服務器,設為0來獲得更高性能

replicate-ignore-db=sys

復制時忽略的數據庫


datadir=/data/mysql_data

數據存儲目錄


socket=/var/lib/mysql/mysql.sock

對服務器端指定套接字文件路徑

對mysql.sock來說,其作用是程序與mysqlserver處于同一臺機器,發起本地連接時可用。

character_set_server=utf8

設置字符集


sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

# mysql數據庫的中有一個環境變量sql_mode,定義了mysql應該支持的sql語法,數據校驗等

# STRICT_TRANS_TABLES:在該模式下,如果一個值不能插入到一個事務表中,則中斷當前的操作,對非事務表不做限制

# NO_ZERO_IN_DATE:這個模式影響了是否允許日期中的月份和日包含0。如果開啟此模式,2016-01-00是不允許的,但是0000-02-01是允許的。它實際的行為受到 strict mode是否開啟的影響1。

# NO_ZERO_DATE:設置該值,mysql數據庫不允許插入零日期。它實際的行為受到 strictmode是否開啟的影響2。

# ERROR_FOR_DIVISION_BY_ZERO:在INSERT或UPDATE過程中,如果數據被零除,則產生錯誤而非警告。如果未給出該模式,那么數據被零除時MySQL返回NULL

# NO_AUTO_CREATE_USER:禁止GRANT創建密碼為空的用戶

# NO_ENGINE_SUBSTITUTION:如果需要的存儲引擎被禁用或未編譯,那么拋出錯誤。不設置此值時,用默認的存儲引擎替代,并拋出一個異常

symbolic-links=0

不支持符號鏈接


log-error=/var/log/mysqld.log

錯誤日志文件目錄


pid-file=/var/run/mysqld/mysqld.pid

進程文件目錄


innodb_buffer_pool_size=8G

InnoDB緩沖池大小(這里設置為內存大小的一半)

# InnoDB使用一個緩沖池來保存索引和原始數據, 不像MyISAM

# 這里你設置越大,你在存取表里面數據時所需要的磁盤I/O越少.

# 在一個獨立使用的數據庫服務器上,你可以設置這個變量到服務器物理內存大小的80%

# 不要設置過大,否則,由于物理內存的競爭可能導致操作系統的換頁顛簸.

# 注意在32位系統上你每個進程可能被限制在 2-3.5G 用戶層面內存限制,

# 所以不要設置的太高.

innodb_log_file_size=256M

確定數據日志文件的大小,更大的設置可以提高性能,但也會增加恢復故障數據庫所需的時間


innodb_flush_method=O_DIRECT

InnoDB 用來刷新日志的方法為O_DSYNC

# 表空間總是使用雙重寫入刷新方法

#  默認值是 “fdatasync”, 另一個是 “O_DSYNC”.

# 一般來說,如果你有硬件 RAID 控制器,并且其獨立緩存采用 write-back 機制,并有著電池斷電保護,那么應該設置配置為 O_DIRECT

# 否則,大多數情況下應將其設為 fdatasync

max_connections=500

MySQL的最大連接數

# 如果服務器的并發連接請求量比較大,建議提高此值,以增加并行連接數量,當然這建立在機器能支撐的情況下,因為如果連接數越多,介于MySQL會為每個連接提供連接緩沖區,就會開銷越多的內存,所以要適當調整該值,不能盲目提高設值。可以過'conn%'通配符查看當前狀態的連接數量,以定奪該值的大小。

innodb_autoextend_increment=128

每次自動擴展的增量大小

# 增加InnoDB系統空間最簡單的方法就是,在配置文件中配置autoextend.

# #該innodb_autoextend_increment設置不會影響每個表的單獨表空間文件或常規表空間文件。無論innodb_autoextend_increment設置如何,這些文件都是自動擴展的 。初始擴展是少量的,之后以4MB的增量擴展。 

# 默認是8M, 如果一次insert數據量比較多的話, 可以適當增加.


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

来宾市| 湘阴县| 胶南市| 芜湖市| 当阳市| 高邮市| 正镶白旗| 阳原县| 砚山县| 来凤县| 容城县| 望城县| 通州市| 盐边县| 扎兰屯市| 长葛市| 扎囊县| 藁城市| 临泉县| 泽库县| 禄劝| 鄂尔多斯市| 锡林浩特市| 通海县| 南乐县| 铜陵市| 潞城市| 特克斯县| 砚山县| 海阳市| 桦甸市| 西林县| 泰顺县| 阿拉尔市| 梁平县| 黑山县| 吴忠市| 常山县| 麦盖提县| 涡阳县| 揭阳市|