本文目錄一覽:
- 1、怎麼配置mysql數據庫配置文件
- 2、MySQL配置文件(my.cnf)路徑查看及相關配置
- 3、mysql5.7配置文件怎麼配置
- 4、怎麼配置mysql初始化化配置文件
- 5、解壓縮版mysql的配置文件設置
- 6、mysql配置文件怎麼寫
怎麼配置mysql數據庫配置文件
一.首先把mysql的服務先停掉。
二.更改mysql配置文件my.ini中的數據庫存儲主路徑
三.將老的數據庫存儲主路徑中的數據庫文件和文件夾複製到新的存儲主路徑
將原文件夾中的所有文件和文件夾拷貝到你新建的文件夾目錄下。
四.重啟mysql服務
五.驗證更改數據庫存儲主路徑的操作是否成功!
MySQL配置文件(my.cnf)路徑查看及相關配置
查找my.cnf文件路徑;
從上可以看出, 服務器首先會讀取/etc/my.cnf文件,如果發現該文件不存在,再依次嘗試從後面的幾個路徑進行讀取。
參數詳解:
[client] #客戶端設置,即客戶端默認的連接參數
port = 3307 #默認連接端口
socket = /data/mysqldata/3307/mysql.sock #用於本地連接的socket套接字
default-character-set = utf8mb4 #編碼
[mysqld] #服務端基本設置
port = 3307 MySQL監聽端口
socket = /data/mysqldata/3307/mysql.sock #為MySQL客戶端程序和服務器之間的本地通訊指定一個套接字文件
pid-file = /data/mysqldata/3307/mysql.pid#pid文件所在目錄
basedir = /usr/local/mysql-5.7.11#使用該目錄作為根目錄(安裝目錄)
datadir = /data/mysqldata/3307/data #數據文件存放的目錄
tmpdir = /data/mysqldata/3307/tmp #MySQL存放臨時文件的目錄
character_set_server = utf8mb4 #服務端默認編碼(數據庫級別)
collation_server = utf8mb4_bin #服務端默認的比對規則,排序規則
user = mysql #MySQL啟動用戶
log_bin_trust_function_creators = 1 #This variable applies when binary logging is enabled. It controls whether stored function creators can be trusted not to create stored functions that will cause #unsafe events to be written to the binary log. If set to 0 (the default), users are not permitted to create or alter stored functions unless they have the SUPER #privilege in addition to the CREATE ROUTINE or ALTER ROUTINE privilege. 開啟了binlog後,必須設置這個值為1.主要是考慮binlog安全
performance_schema = 0 #性能優化的引擎,默認關閉
secure_auth = 1 #secure_auth 為了防止低版本的MySQL客戶端(
mysql5.7配置文件怎麼配置
Mysql的配置文件:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
這兩行的意思是配置文件在這兩個目錄下,也就是說你可以在這兩個目錄下配置,最好是不要直接改變
my.cnf文件, 因為它會導致一些問題, 比如當在升級 Ubuntu/Mysql 到一個新的版本時.這裡我們創建一個新文件:sudo vim
/etc/mysql/conf.d/utf8.cnf
utf8.cnf配置文件內容為:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
怎麼配置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的配置文件設置
工具/原料
win7操作系統
MySQLzip格式安裝包
方法/步驟
MySQL安裝文件分為兩種,一種是msi格式的,一種是zip格式的。如果是msi格式的可以直接點擊安裝,按照它給出的安裝提示進行安裝(相信大家的英文可以看懂英文提示),一般MySQL將會安裝在C:\Program Files\MySQL\MySQL Server 5.6 該目錄中;zip格式是自己解壓,解壓縮之後其實MySQL就可以使用了,但是要進行配置。
解壓之後可以將該文件夾改名,放到合適的位置,個人建議把文件夾改名為MySQL Server 5.6,放到C:\Program Files\MySQL路徑中。當然你也可以放到自己想放的任意位置。
完成上述步驟之後,很多用戶開始使用MySQL,但會出現圖示的錯誤。這是因為沒有配置環境變量所致。配置環境變量很簡單:
我的電腦-屬性-高級-環境變量
選擇PATH,在其後面添加: 你的mysql bin文件夾的路徑 (如:C:\Program Files\MySQL\MySQL Server 5.6\bin )
PATH=…….;C:\Program Files\MySQL\MySQL Server 5.6\bin (注意是追加,不是覆蓋)
配置完環境變量之後先別忙着啟動mysql,我們還需要修改一下配置文件(如果沒有配置,之後啟動的時候就會出現圖中的錯誤哦!:錯誤2 系統找不到文件),mysql-5.6.1X默認的配置文件是在C:\Program Files\MySQL\MySQL Server 5.6\my-default.ini,或者自己建立一個my.ini文件,
在其中修改或添加配置(如圖):
[mysqld]
basedir=C:\Program Files\MySQL\MySQL Server 5.6(mysql所在目錄)
datadir=C:\Program Files\MySQL\MySQL Server 5.6\data (mysql所在目錄\data)
以管理員身份運行cmd(一定要用管理員身份運行,不然權限不夠),
輸入:cd C:\Program Files\MySQL\MySQL Server 5.6\bin 進入mysql的bin文件夾(不管有沒有配置過環境變量,也要進入bin文件夾,否則之後啟動服務仍然會報錯誤2)
輸入mysqld -install(如果不用管理員身份運行,將會因為權限不夠而出現錯誤:Install/Remove of the Service Denied!)
安裝成功
安裝成功後就要啟動服務了,繼續在cmd中輸入:net start mysql(如圖),服務啟動成功!
此時很多人會出現錯誤,請看注意:
注意:這個時候經常會出現錯誤2和錯誤1067。
如果出現“錯誤2 系統找不到文件”,檢查一下是否修改過配置文件或者是否進入在bin目錄下操作,如果配置文件修改正確並且進入了bin文件夾,需要先刪除mysql(輸入 mysqld -remove)再重新安裝(輸入 mysqld -install);
如果出現錯誤1067,那就是配置文件修改錯誤,確認一下配置文件是否正確。
服務啟動成功之後,就可以登錄了,如圖,輸入mysql -u root -p(第一次登錄沒有密碼,直接按回車過),登錄成功!
END
注意事項
my.ini文件的編碼必須是英文編碼(如windows中的ANSI),不能是UTF-8或GBK等。
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 用戶層面內存限制,
# 所以不要設置的太高.
還沒完,字數受限制,這裡有詳細的參數說明:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/256532.html