mysql 指定域 mysql常用配置說明

2021-10-20 22:24:58 字數 4794 閱讀 3303

檢視配置# 要檢視預設值和自定義配置的值

mysqld --verbose --help

# 檢視 mysql 正在使用的引數值

mysqladmin variables

# 只檢視預設值

mysqld --no-defaults --verbose --help

常用配置說明

客戶端配置[client]

# 客戶端的預設連線埠

port=3306

# 本地通訊使用的套接字

socket=/run/mysqld/mysqld.sock

# 客戶端預設編碼

default-character-set=utf8mb4

服務端配置[mysqld]

# 監聽埠

port=3306

# 本地通訊使用的套接字

socket=/run/mysqld/mysqld.sock

# pid 檔案

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

# 記錄啟動、關閉、警告、錯誤等日誌

log_error=/var/log/mysql/error.log

# 啟動使用者

user=mysql

# 資料庫程式安裝目錄

basedir=/usr

# 資料庫檔案存放目錄

datadir=/data

# 臨時目錄

tmpdir=/tmp

# 跳過 myisam 資料表外部鎖定

# myisam 資料表在多程序共用同乙個資料庫目錄時訪問需要鎖定

skip-external-locking

# 禁用網域名稱解析

skip-name-resolve

# 禁用埠訪問

#skip-networking

# 繫結 ip 位址

bind-address=0.0.0.0

# myisam 儲存引擎的執行緒共享索引緩衝區大小

key_buffer_size=64m

# 併發連線時快取開啟表的最大總數

# 每當 mysql 訪問乙個表時,如果表緩衝區中還有空間,該錶就被開啟並放入其中,以此加速訪問表

# 通過 show global status like 'open%tables' 檢查峰值時間的狀態值 open_tables 和 opened_tables 來判斷是否需要增加 table_open_cache 的值

# 推薦設定值

# open_tables / opened_tables >= 0.85

# open_tables / table_open_cache <= 0.95

table_open_cache=512

# 設定 order by 和 group by 排序操作緩衝區大小

sort_buffer_size=1m

# 服務端最大允許接收的資料報大小

max_allowed_packet=1m

# 資料報緩衝區初始化大小,會根據需要最大增長至 max_allowed_packet

net_buffer_length=8k

# 對 myisam 資料表進行順序掃瞄時每個執行緒的緩衝區大小

read_buffer_size=1m

# 對任何資料表隨機掃瞄時每個執行緒的緩衝區大小

read_rnd_buffer_size=512k

# 在 repair table 期間對 myisam 索引進行排序或使用 create index 或 alter table 建立索引時分配的緩衝區大小

myisam_sort_buffer_size=16m

# 執行緒池大小

thread_cache_size=16

# 對於讀多寫少的環境設定 1 啟用查詢快取會對效能有所提公升

# 0 預設值,禁用查詢快取

# 1 快取所有以 select 開頭的可快取查詢結果,select sql_no_cache 除外

# 2 僅快取以 select sql_cache 開頭的可快取查詢結果

query_cache_type=1

# 啟用查詢快取時,會快取 select 語句和對應的結果集,設定查詢快取的大小

query_cache_size=16m

# 內部記憶體臨時表的最大大小,超出限制時會自動將其轉換為磁碟上的臨時表

tmp_table_size=32m

# 預設為 false 情況下

# 如果 timestamp 列未指定 null 屬性,該列會自動新增 not null 屬性,如果向列中插入 null 會自動設定為 current_timestamp 值

# 如果表中第乙個 timestamp 列未指定 null 屬性或預設值,也沒有指定 on update 語句,該列會自動新增 default current_timestamp 和 on update current_timestamp 屬性

# 非第乙個 timestamp 列,如果沒有指定未指定 null 屬性和預設值,該列會自動新增 default '0000-00-00 00:00:00'屬性

explicit_defaults_for_timestamp=true

# 最大併發連線數

max_connections=500

# 允許客戶端錯誤連線最大次數,超過將被拉黑

max_connect_errors=100

# 最大開啟檔案數

open_files_limit=65535

# 伺服器 id,互相通訊的伺服器 id 不允許重複

server-id=1

# 二進位制日誌,相對於 datadir 路徑

log-bin=/var/log/mysql/mysql-bin

#relay_log=/var/log/mysql/mysql-relay-bin

# 二進位制日誌格式

binlog_format=mixed

# 二進位制日誌保留天數

expire_logs_days=14

# 設定自增的增量

auto_increment_increment=1

# 設定自增起始值

auto_increment_offset=1

# 預設新資料表的儲存引擎

default_storage_engine=innodb

# 每個資料庫的每個表都會生成乙個資料空間(.ibd 檔案)

innodb_file_per_table=1

# 如果不指定,則所有 innodb tablespace 檔案只能存放在 datadir 中

# 如果指定為空,則可為 innodb tablespace 檔案指定不同路徑

# 如果指定路徑,則所有 innodb tablespace 檔案只能存放在指定路徑中

#innodb_data_home_dir=

# 設定儲存 innodb 資料表的表空間存放位置、最大長度等屬性

# 每個表空間檔案規則用 ; 間隔

# 最後乙個表空間可以使用 autoextend 和 max:n 屬性

innodb_data_file_path=ibdata1:10m:autoextend

# innodb 快取池大小

innodb_buffer_pool_size=128m

# 指定 innodb 事務日誌(如 ib_logfile0、ib_logfile1)存放路徑

innodb_log_group_home_dir=/var/log/mysql

# 每個 innodb 事務日誌大小

innodb_log_file_size=64m

# innodb 事務日誌緩衝區大小

innodb_log_buffer_size=8m

# innodb 事務日誌同步磁碟時機

# 0 每次 commit 將事務日誌寫進了日誌緩衝區,然後每隔一秒將緩衝區的事務日誌同步到磁碟,效能最好,但 mysqld 程序崩潰會導致上一秒鐘所有事務資料的丟失

# 1 每次 commit 將事務日誌同步到磁碟,mysqld 崩潰不會丟失資料,但頻繁的 io 操作導致效率低下

# 2 每次 commit 將事務日誌寫進了日誌緩衝區並同時寫入系統緩衝區,然後每隔一秒將緩衝區的事務日誌同步到磁碟, mysqld 崩潰時不會丟失日誌,折衷的舉措

innodb_flush_log_at_trx_commit=1

# 如果某個事務在等待 n 秒後仍未獲得所需要的資源,就執行 rollback 回滾該事務

innodb_lock_wait_timeout=50

# 預設的編碼

character-set-server=utf8mb4

# 預設的排序規則

collation-server=utf8mb4_general_ci

其他配置# mysqldump 工具的配置

[mysqldump]

quick

max_allowed_packet=16m

# mysql 工具的配置

[mysql]

# 自動補全表名、欄位名

auto-rehash

prompt="\\u@\\h:\\d \\p>"

default-character-set=utf8mb4

# myisamchk 工具的配置

[myisamchk]

key_buffer_size=64m

sort_buffer_size=1m

read_buffer=2m

write_buffer=2m

# mysqlhotcopy 工具的配置

[mysqlhotcopy]

interactive-timeout

mysql域是什麼意思 MySQL 域

一 什麼是域?域是一種在關係當中列所允許值的表示式。當定義乙個表的時候,會為每個列指派一種資料型別 如字元型或者是整型 這些資料型別提供了乙個廣泛域。資料庫管理系統將不會儲存那些違背約束的資料資訊。sql 92標準引入了使用者自定義域的概念。要使用使用者自定義域,必須先建立該自定義域。二 語法 1....

mysql 指定時間 MySQL查詢指定時間的資料

mysql查詢指定時間的資料 user event 使用者事件表 create time 表中儲存時間的字段 獲取當月資料 select from user event where date format create time,y m date format now y m 獲取3月份資料 sel...

mysql指定值排序 mysql某列指定值靠前排序

單個列靠前排序 mysql 某列指定值靠前排序 order by case select from jcxsw t company product order by case when id 263 then 1 else 4 end category id desc 這段sql 會先排列id 26...