mysql詳細的配置文件,MySQL的配置文件是

本文目錄一覽:

mysql配置文件怎麼寫

[client]

port = 3306

socket = /tmp/mysql.sock

[mysqld]

port = 3306

socket = /tmp/mysql.sock

basedir = /usr/local/mysql

datadir = /data/mysql

pid-file = /data/mysql/mysql.pid

user = mysql

bind-address = 0.0.0.0

server-id = 1 #表示是本機的序號為1,一般來講就是master的意思

skip-name-resolve

# 禁止MySQL對外部連接進行DNS解析,使用這一選項可以消除MySQL進行DNS解析的時間。但需要注意,如果開啟該選項,

# 則所有遠程主機連接授權都要使用IP地址方式,否則MySQL將無法正常處理連接請求

#skip-networking

back_log = 600

# MySQL能有的連接數量。當主要MySQL線程在一個很短時間內得到非常多的連接請求,這就起作用,

# 然後主線程花些時間(儘管很短)檢查連接並且啟動一個新線程。back_log值指出在MySQL暫時停止回答新請求之前的短時間內多少個請求可以被存在堆棧中。

# 如果期望在一個短時間內有很多連接,你需要增加它。也就是說,如果MySQL的連接數據達到max_connections時,新來的請求將會被存在堆棧中,

# 以等待某一連接釋放資源,該堆棧的數量即back_log,如果等待連接的數量超過back_log,將不被授予連接資源。

# 另外,這值(back_log)限於您的操作系統對到來的TCP/IP連接的偵聽隊列的大小。

# 你的操作系統在這個隊列大小上有它自己的限制(可以檢查你的OS文檔找出這個變量的最大值),試圖設定back_log高於你的操作系統的限制將是無效的。

max_connections = 1000

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

max_connect_errors = 6000

# 對於同一主機,如果有超出該參數值個數的中斷錯誤連接,則該主機將被禁止連接。如需對該主機進行解禁,執行:FLUSH HOST。

open_files_limit = 65535

# MySQL打開的文件描述符限制,默認最小1024;當open_files_limit沒有被配置的時候,比較max_connections*5和ulimit -n的值,哪個大用哪個,

# 當open_file_limit被配置的時候,比較open_files_limit和max_connections*5的值,哪個大用哪個。

table_open_cache = 128

# MySQL每打開一個表,都會讀入一些數據到table_open_cache緩存中,當MySQL在這個緩存中找不到相應信息時,才會去磁盤上讀取。默認值64

# 假定系統有200個並發連接,則需將此參數設置為200*N(N為每個連接所需的文件描述符數目);

# 當把table_open_cache設置為很大時,如果系統處理不了那麼多文件描述符,那麼就會出現客戶端失效,連接不上

max_allowed_packet = 4M

# 接受的數據包大小;增加該變量的值十分安全,這是因為僅當需要時才會分配額外內存。例如,僅當你發出長查詢或MySQLd必須返回大的結果行時MySQLd才會分配更多內存。

# 該變量之所以取較小默認值是一種預防措施,以捕獲客戶端和服務器之間的錯誤信息包,並確保不會因偶然使用大的信息包而導致內存溢出。

binlog_cache_size = 1M

# 一個事務,在沒有提交的時候,產生的日誌,記錄到Cache中;等到事務提交需要提交的時候,則把日誌持久化到磁盤。默認binlog_cache_size大小32K

max_heap_table_size = 8M

# 定義了用戶可以創建的內存表(memory table)的大小。這個值用來計算內存表的最大行數值。這個變量支持動態改變

tmp_table_size = 16M

# MySQL的heap(堆積)表緩衝大小。所有聯合在一個DML指令內完成,並且大多數聯合甚至可以不用臨時表即可以完成。

# 大多數臨時表是基於內存的(HEAP)表。具有大的記錄長度的臨時表 (所有列的長度的和)或包含BLOB列的表存儲在硬盤上。

# 如果某個內部heap(堆積)表大小超過tmp_table_size,MySQL可以根據需要自動將內存中的heap表改為基於硬盤的MyISAM表。還可以通過設置tmp_table_size選項來增加臨時表的大小。也就是說,如果調高該值,MySQL同時將增加heap表的大小,可達到提高聯接查詢速度的效果

read_buffer_size = 2M

# MySQL讀入緩衝區大小。對錶進行順序掃描的請求將分配一個讀入緩衝區,MySQL會為它分配一段內存緩衝區。read_buffer_size變量控制這一緩衝區的大小。

# 如果對錶的順序掃描請求非常頻繁,並且你認為頻繁掃描進行得太慢,可以通過增加該變量值以及內存緩衝區大小提高其性能

read_rnd_buffer_size = 8M

# MySQL的隨機讀緩衝區大小。當按任意順序讀取行時(例如,按照排序順序),將分配一個隨機讀緩存區。進行排序查詢時,

# MySQL會首先掃描一遍該緩衝,以避免磁盤搜索,提高查詢速度,如果需要排序大量數據,可適當調高該值。但MySQL會為每個客戶連接發放該緩衝空間,所以應盡量適當設置該值,以避免內存開銷過大

sort_buffer_size = 8M

# MySQL執行排序使用的緩衝大小。如果想要增加ORDER BY的速度,首先看是否可以讓MySQL使用索引而不是額外的排序階段。

# 如果不能,可以嘗試增加sort_buffer_size變量的大小

join_buffer_size = 8M

# 聯合查詢操作所能使用的緩衝區大小,和sort_buffer_size一樣,該參數對應的分配內存也是每連接獨享

thread_cache_size = 8

# 這個值(默認8)表示可以重新利用保存在緩存中線程的數量,當斷開連接時如果緩存中還有空間,那麼客戶端的線程將被放到緩存中,

# 如果線程重新被請求,那麼請求將從緩存中讀取,如果緩存中是空的或者是新的請求,那麼這個線程將被重新創建,如果有很多新的線程,

# 增加這個值可以改善系統性能.通過比較Connections和Threads_created狀態的變量,可以看到這個變量的作用。(–表示要調整的值)

# 根據物理內存設置規則如下:

# 1G  — 8

# 2G  — 16

# 3G  — 32

# 大於3G  — 64

query_cache_size = 8M

#MySQL的查詢緩衝大小(從4.0.1開始,MySQL提供了查詢緩衝機制)使用查詢緩衝,MySQL將SELECT語句和查詢結果存放在緩衝區中,

# 今後對於同樣的SELECT語句(區分大小寫),將直接從緩衝區中讀取結果。根據MySQL用戶手冊,使用查詢緩衝最多可以達到238%的效率。

# 通過檢查狀態值’Qcache_%’,可以知道query_cache_size設置是否合理:如果Qcache_lowmem_prunes的值非常大,則表明經常出現緩衝不夠的情況,

# 如果Qcache_hits的值也非常大,則表明查詢緩衝使用非常頻繁,此時需要增加緩衝大小;如果Qcache_hits的值不大,則表明你的查詢重複率很低,

# 這種情況下使用查詢緩衝反而會影響效率,那麼可以考慮不用查詢緩衝。此外,在SELECT語句中加入SQL_NO_CACHE可以明確表示不使用查詢緩衝

query_cache_limit = 2M

#指定單個查詢能夠使用的緩衝區大小,默認1M

key_buffer_size = 4M

#指定用於索引的緩衝區大小,增加它可得到更好處理的索引(對所有讀和多重寫),到你能負擔得起那樣多。如果你使它太大,

# 系統將開始換頁並且真的變慢了。對於內存在4GB左右的服務器該參數可設置為384M或512M。通過檢查狀態值Key_read_requests和Key_reads,

# 可以知道key_buffer_size設置是否合理。比例key_reads/key_read_requests應該儘可能的低,

# 至少是1:100,1:1000更好(上述狀態值可以使用SHOW STATUS LIKE ‘key_read%’獲得)。注意:該參數值設置的過大反而會是服務器整體效率降低

ft_min_word_len = 4

# 分詞詞彙最小長度,默認4

transaction_isolation = REPEATABLE-READ

# MySQL支持4種事務隔離級別,他們分別是:

# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.

# 如沒有指定,MySQL默認採用的是REPEATABLE-READ,ORACLE默認的是READ-COMMITTED

log_bin = mysql-bin

binlog_format = mixed

expire_logs_days = 30 #超過30天的binlog刪除

log_error = /data/mysql/mysql-error.log #錯誤日誌路徑

slow_query_log = 1

long_query_time = 1 #慢查詢時間 超過1秒則為慢查詢

slow_query_log_file = /data/mysql/mysql-slow.log

performance_schema = 0

explicit_defaults_for_timestamp

#lower_case_table_names = 1 #不區分大小寫

skip-external-locking #MySQL選項以避免外部鎖定。該選項默認開啟

default-storage-engine = InnoDB #默認存儲引擎

innodb_file_per_table = 1

# InnoDB為獨立表空間模式,每個數據庫的每個表都會生成一個數據空間

# 獨立表空間優點:

# 1.每個表都有自已獨立的表空間。

# 2.每個表的數據和索引都會存在自已的表空間中。

# 3.可以實現單表在不同的數據庫中移動。

# 4.空間可以回收(除drop table操作處,表空不能自已回收)

# 缺點:

# 單表增加過大,如超過100G

# 結論:

# 共享表空間在Insert操作上少有優勢。其它都沒獨立表空間表現好。當啟用獨立表空間時,請合理調整:innodb_open_files

innodb_open_files = 500

# 限制Innodb能打開的表的數據,如果庫里的表特別多的情況,請增加這個。這個值默認是300

innodb_buffer_pool_size = 64M

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

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

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

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

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

# 所以不要設置的太高.

還沒完,字數受限制,這裡有詳細的參數說明:

Centos7查看Mysql配置文件

my.cnf 是mysql啟動時加載的配置文件,一般會放在mysql的安裝目錄中,用戶也可以放在其他目錄加載。

安裝mysql後,系統中會有多個 my.cnf 文件,有些是用於測試的。

安裝locate

命令

輸出

當我們需要修改配置文件時,需要找到mysql啟動時是加載了哪個 my.cnf 文件。

啟動mysql後,我們查看mysql的進程,看看是否有設置使用指定目錄的 my.cnf 文件,如果有則表示mysql啟動時是加載了這個配置文件。

命令

輸出

可以看到 /usr/local/Cellar/mysql/5.6.24/my.cnf 就是mysql啟動加載的配置文件。

如果上面的命令沒有輸出,表示沒有設置使用指定目錄的 my.cnf 。

如果沒有設置使用指定目錄的 my.cnf ,mysql啟動時會讀取安裝目錄根目錄及默認目錄下的 my.cnf 文件。

查看mysql啟動時讀取配置文件的默認目錄

命令

輸出

這些就是mysql默認會搜尋 my.cnf 的目錄,順序排前的優先。

如果沒有設置使用指定目錄 my.cnf 文件及默認讀取目錄沒有 my.cnf 文件,表示mysql啟動時並沒有加載配置文件,而是使用默認配置。

需要修改配置,可以在mysql默認讀取的目錄中,創建一個 my.cnf 文件(例如: /etc/my.cnf ),把需要修改的配置內容寫入,重啟mysql後即可生效。

怎麼配置mysql數據庫配置文件

一、mysql_install_db說明

當MySQL的系統庫(mysql系統庫)發生故障或需要新加一個mysql實例時,需要初始化mysql數據庫。

需要使用的命令:/usr/local/mysql/bin/mysql_install_db

#/usr/local/mysql/bin/mysql_install_db –help 可以查看幫助信息如下

Usage: /usr/local/mysql/bin/mysql_install_db [OPTIONS]

–basedir=path The path to the MySQL installation directory.

–cross-bootstrap For internal use. Used when building the MySQL system

tables on a different host than the target.

–datadir=path The path to the MySQL data directory.

–force Causes mysql_install_db to run even if DNS does not

work. In that case, grant table entries that normally

use hostnames will use IP addresses.

–ldata=path The path to the MySQL data directory.

–rpm For internal use. This option is used by RPM files

during the MySQL installation process.

–skip-name-resolve Use IP addresses rather than hostnames when creating

grant table entries. This option can be useful if

your DNS does not work.

–srcdir=path For internal use. The directory under which

mysql_install_db looks for support files such as the

error message file and the file for popoulating the

help tables.

–user=user_name The login username to use for running mysqld. Files

and directories created by mysqld will be owned by this

user. You must be root to use this option. By default

mysqld runs using your current login name and files and

directories that it creates will be owned by you.

All other options are passed to the mysqld program

除了支持以上的參數,還支持mysqld的參數。

二、舉例:

本文以新加一個mysql實例為例。例如服務器上已經安裝了3306端口的mysql服務,需要再啟一個3308端口的mysql服務。

假設mysql安裝在/usr/local/mysql路徑下,找一個磁盤空間剩餘比較大的盤,如/data1,把3308端口的mysql的數據保存在/data1下

#mkdir /data1/mysql_3308

#mkdir /data1/mysql_3308/data

#chown -R mysql:mysql /data1/mysql_3308

複製一個mysql配置文件my.cnf到/data1/mysql_3308目錄下

#vi /data1/mysql_3308/my.cnf

修改配置文件,將端口和相關目錄的都改為新的設置,如下:

[client]

character-set-server = utf8

port = 3308

socket = /tmp/mysql_3308.sock

[mysqld]

user = mysql

port = 3308

socket = /tmp/mysql_3308.sock

basedir = /usr/local/mysql

datadir = /data1/mysql_3308/data

log-error = /data1/mysql_3308/mysql_error.log

pid-file = /data1/mysql_3308/mysql.pid

……其他略

確保配置文件無誤。

運行下面命令進行數據庫的初始化:

#/usr/local/mysql/bin/mysql_install_db –defaults-file=/data1/mysql_3308/my.cnf –datadir=/data1/mysql_3308/data

完成後新的3308數據庫就初始化好了,如果有報錯,則按照報錯的提示查看報錯日誌,一般情況下都是my.cnf配置文件的問題,修正後即可。

三、啟動新mysql

啟動3308端口的mysql服務

#/usr/local/mysql/bin/mysqld_safe –defaults-file=/data1/mysql_3309/my.cnf

檢查是否啟動

#ps aux|grep mysql

如果有3308字樣說明已經啟動成功

可將啟動命令加入/etc/rc.local隨服務器啟動

新加的mysql沒有設置root密碼,可以通過下面命令設置root密碼:

#/usr/local/mysql/bin/mysqladmin -S /tmp/mysql_3308.sock -u root password ‘new-password’

mysql啟動時如何制定配置文件

步驟:

1、查找my.ini位置,可通過windows服務所對應mysql啟動項,查看其對應屬性-可執行文件路徑,獲取my.ini路徑。

“D:\MySQL\MySQL Server 5.5\bin\mysqld” –defaults-file=”D:\MySQL Data\my.ini” MySQL55

2、編輯my.ini中對應datadir

改前:datadir=”D:\MySQL Data\data\”

改後:datadir=”D:\MySQL Data\MySQL Server 5.5\data\”

3、重整mysql對應數據文件目錄(若不做,則mysql無法正常啟動)

4、查找註冊表,修改mysql啟動項所關聯的defaults-file路徑:

KEY_LOCAL_MACHINE/SYSTEM/Services/MySQL55

修改完後,刷新windows服務,再次查看mysql啟動項屬性-可執行文件路徑,結果如下:

“D:\MySQL\MySQL Server 5.5\bin\mysqld” –defaults-file=”D:\MySQL Data\MySQL Server 5.5\my.ini” MySQL

確保將my.ini移植到正確的目錄下。

5、重啟mysql,配置成功。

mysql配置文件在哪兒

首先,我們需要找到mysql的安裝目錄。點擊進入。

進入後,我們可以發現如圖的文件。

我們找到名為my.ini的文件。

這個文件就是mysql的配置文件。

原創文章,作者:NXTJK,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/331183.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
NXTJK的頭像NXTJK
上一篇 2025-01-16 15:47
下一篇 2025-01-16 15:47

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • 金融閱讀器提示配置文件無法識別

    在使用金融閱讀器過程中,有時會遇到提示配置文件無法識別的情況。這種情況通常是由於配置文件中存在錯誤或不完整所導致的。本文將從多個方面對此問題進行詳細的闡述,並提供相應解決方法。 一…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL數據庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28
  • CentOS 7在線安裝MySQL 8

    在本文中,我們將介紹如何在CentOS 7操作系統中在線安裝MySQL 8。我們會從安裝環境的準備開始,到安裝MySQL 8的過程進行詳細的闡述。 一、環境準備 在進行MySQL …

    編程 2025-04-27
  • 如何在Linux中添加用戶並修改配置文件

    本文將從多個方面詳細介紹在Linux系統下如何添加新用戶並修改配置文件 一、添加新用戶 在Linux系統下創建新用戶非常簡單,只需使用adduser命令即可。使用以下命令添加新用戶…

    編程 2025-04-27
  • 如何使用MySQL字段去重

    本文將從多個方面為您詳細介紹如何使用MySQL字段去重並給出相應的代碼示例。 一、SELECT DISTINCT語句去重 MySQL提供了SELECT DISTINCT語句,通過在…

    編程 2025-04-27
  • MySQL正則表達式替換

    MySQL正則表達式替換是指通過正則表達式對MySQL中的字符串進行替換。在文本處理方面,正則表達式是一種強大的工具,可以方便快捷地進行字符串處理和匹配。在MySQL中,可以使用正…

    編程 2025-04-27

發表回復

登錄後才能評論