命令 启动顺序_笔记一: 启动选项与系统变量
啟動選項(startup options)
定義:?MySQL有很多設置項,如存儲引擎,客戶端連接數量,緩存大小等,這些設置項在配置文件中都有默認值,在啟動MySQL時可以在啟動命令后面加一些參數來修改這些默認值,對于這些在程序啟動時指定的設置項就稱為啟動選項
通用格式:?
--啟動選項1[=值1] --啟動選項2[=值2] ... --啟動選項n[=值n]命令行啟動選項規則:
?在選項名前加上--前綴
選項名是由多個單詞構成的,它們之間可以由短劃線-或_連接起來
各個啟動選項之間使用空白字符隔開
不需要值的啟動選項,不需要指定對應的值,需要指定值的啟動選項,需要顯式的指定它的值,有值的啟動選項時需要注意,選項名、=、選項值之間不可以有空白字符
例:??
禁止各客戶端使用使用TCP/IP網絡進行通信:
mysqld --skip-networking?與?mysqld --skip_networking?是等效的
設置默認存儲引擎:
mysqld --default-storage-engine=MyISAM查看MySQL支持的全部啟動選項以及它們的默認值:?--help
如:?mysql --help?,?mysqld_safe --help
上述都是長形式的選項,為使用方便,也可以使用短形式選項
短形式的選項名只有一個字母,在選項名前只加一個短劃線-前綴,區分大小寫,選項名和選項值之間可以沒有間隙,或者用空白字符隔開(-p選項較特殊,-p和密碼值之間不能有空白字符) 如:?mysqld -P3307?與?mysqld -P 3307 等價
在命令行中設置啟動選項只對當次啟動生效!下一次重啟程序的時候如果還想保留這些啟動選項的話,需要重復把這些選項寫到啟動命令行中
配置文件(選項文件)
MySQL程序在啟動時會尋找多個路徑下的配置文件,這些路徑有的是固定的,有的是可以在命令行指定的
Windows操作系統的配置文件
在Windows操作系統中,MySQL會按照下列路徑順序來尋找配置文件:
注意:?
?前三行路徑中,配置文件擴展名可以使用.ini,也可以使用.cnf
%WINDIR%指Windows目錄的位置,通常是C:\WINDOWS,可以使用命令echo %WINDIR%?進行查看
BASEDIR指MySQL安裝目錄
第4行指的是我們在啟動程序時可以通過指定defaults-extra-file參數的值來添加額外的配置文件路徑,如:?mysqld --defaults-extra-file=C:\Users\xiaohaizi\my_extra_file.txt
%APPDATA%表示Windows應用程序數據目錄,可以使用命令echo %APPDATA%?進行查看
.mylogin.cnf配置文件比較特殊,它不是一個純文本文件,而是使用mysql_config_editor實用程序創建的加密文件,文件中只能包含一些用于啟動客戶端軟件時連接服務器的一些選項,包括?host、user、password、port和?socket,且它只能被客戶端程序所使用
類Unix操作系統的配置文件
注意:
?SYSCONFDIR表示在使用CMake構建MySQL時使用SYSCONFDIR選項指定的目錄,默認情況下位于編譯安裝目錄下的etc目錄
MYSQL_HOME是一個環境變量,該變量的值是我們自己設置的,可設置也可不設置,該變量的值代表一個路徑,我們可以在該路徑下創建一個my.cnf配置文件,這個配置文件中只能放置關于啟動服務器程序相關的選項(其他的配置文件既能存放服務器相關的選項也能存放客戶端相關的選項,.mylogin.cnf?除外)
最后兩個以~開頭的路徑是用戶目錄,不同的類UNIX系統的用戶都可以在自己的用戶目錄下創建.my.cnf或者.mylogin.cnf,即不同登錄用戶使用的.my.cnf或者.mylogin.cnf配置文件是不同的
defaults-extra-file和.mylogin.cnf的含義同Windows
配置文件的內容
配置文件中的啟動選項被劃分為若干個組,每個組有一個組名,用中括號[]擴起來,每個組下邊可以定義若干個啟動選項
如下:?
[server]option1 #這是option1,該選項不需要選項值option2 = value2 #這是option2,該選項需要選項值...[mysqld]option1 #這是option1,該選項不需要選項值option2 = value2 #這是option2,該選項需要選項值...配置文件指定啟動選項規則:
?語法類似于命令行語法,但只能使用長形式的選項且不允許加--前綴
每行只指定一個選項,且=周圍可以有空白字符
可以使用#來添加注釋
不同的選項組是給不同的啟動命令使用的,如果選項組名稱與程序名稱相同,則組中的選項將專門應用于該程序。例如,?[mysqld]和[mysql]組分別應用于mysqld服務器程序和mysql客戶端程序.?特殊組:?[server]組作用于所有的服務器程序,[client]組作用于所有的客戶端程序,?mysqld_safe和mysql.server這兩個程序在啟動時都會讀取[mysqld]選項組中的內容
各程序啟動讀取組列表:
mysql.server程序僅支持start和stop作為命令行參數,它的啟動參數必須放在配置文件中
在選項組的名稱后加上特定的MySQL版本號,則表示只有指定版本號的mysqld程序才能使用這個選項組中的選項,如:?選項組[mysqld-5.7]只有版本號為5.7的mysqld程序才能使用。
配置文件的優先級
?MySQL將按照我們在上表中給定的順序依次讀取各個配置文件,如果該文件不存在則忽略
如果多個配置文件中設置了相同的啟動選項,則以最后一個配置文件中的為準
同一個配置文件的多個組設置了相同的啟動選項,以最后一個組的啟動選項為準
如果我們不想讓MySQL到默認的路徑下搜索配置文件(就是上表中列出的那些),可以在命令行指定defaults-file選項,如果選項指定的文件不存在或無法訪問,則會發生錯誤,?例如:?mysqld --defaults-file=/tmp/myconfig.txt
命令行和配置文件中啟動選項的區別
命令行上指定的絕大部分啟動選項都可以放到配置文件中?
部分專門為命令行設計的選項如defaults-extra-file、defaults-file本身就是用來指定配置文件路徑的,再放在配置文件中使用就沒意義了
如果同一個啟動選項既出現在命令行又出現在配置文件中,以命令行中的選項為準
系統變量
定義:?MySQL服務器程序運行過程中會用到許多影響程序行為的變量,這些變量被稱為MySQL系統變量,每個系統變量都有一個默認值,可以使用命令行或者配置文件中的選項在啟動服務器時改變一些系統變量的值,大多數的系統變量的值也可以在程序運行過程中修改,而無需停止并重新啟動?MySQL
系統變量的作用范圍
GLOBAL:全局變量,影響服務器的整體操作
SESSION:會話變量,影響某個客戶端連接的操作(SESSION有個別名叫LOCAL)
服務器啟動時,會將每個全局變量初始化為其默認值(可以通過命令行或選項文件更改這些默認值)。然后服務器還為每個連接的客戶端維護一組會話變量,客戶端的會話變量在連接時的初始值使用當前相應全局變量的值.
如:?default_storage_engine,服務器啟動時會初始化一個名為default_storage_engine,作用范圍為GLOBAL的系統變量,之后每一個客戶端連接到該服務器時,服務器都會單獨為該客戶端分配一個作用范圍為SESSION的default_storage_engine系統變量,該作用范圍為SESSION的系統變量的初始值為當前作用范圍為GLOBAL的同名系統變量的值
通過啟動選項設置的系統變量的作用范圍都是GLOBAL的
查看系統變量
SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式];省略作用范圍時默認查看的是SESSION作用范圍的系統變量
設置系統變量
一. 通過啟動選項設置
1.?通過命令行添加啟動選項??
如:?
mysqld --default-storage-engine=MyISAM --max-connections=102.?通過配置文件添加啟動選項
如:?
[server]default-storage-engine=MyISAMmax-connections=10二. 服務器程序運行過程中設置
SET [GLOBAL|SESSION] 系統變量名 = 值; # 方式一SET [@@(GLOBAL|SESSION).]var_name = XXX; # 方式二如果客戶端設置系統變量的時省略作用范圍,其默認作用范圍為SESSION
如果某個客戶端改變了某個系統變量在`GLOBAL`作用范圍的值,并不會影響該系統變量在當前已經連接的客戶端作用范圍為`SESSION`的值,只會影響后續連入的客戶端在作用范圍為`SESSION`的值
注意:?
?大部分的系統變量同時支持GLOBAL和SESSION作用范圍
?部分系統變量只有GLOBAL作用范圍,如max_connections,表示服務器程序最多支持同時連接多少個客戶端程序
部分系統變量只具有SESSION作用范圍,如insert_id,表示在對某個包含AUTO_INCREMENT列的表進行插入時,該列的初始值
有些系統變量是只讀的,不能設置值,如version,表示當前MySQL的版本
啟動選項和系統變量的區別
?啟動選項是在程序啟動時我們程序員傳遞的一些參數,系統變量是影響服務器程序運行行為的變量
大部分的系統變量都可以被當作啟動選項傳入
有些系統變量是在程序運行過程中自動生成的,不可以當作啟動選項用來設置,如auto_increment_offset、character_set_client
有些啟動選項也不是系統變量,比如defaults-file
狀態變量
為了更好的了解服務器程序的運行情況,MySQL服務器程序中維護了很多關于程序運行狀態的變量,它們被稱為狀態變量
如:?表示當前有多少客戶端與服務器建立了連接的Threads_connected,表示已經更新了多少行記錄的Handler_update
狀態變量是用來顯示服務器程序運行狀況的,它們的值只能由服務器程序自己設置
與系統變量類似,狀態變量也有GLOBAL和SESSION兩個作用范圍
查看狀態變量
SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式];類似的,如果不寫明作用范圍,默認的作用范圍是SESSION
總結
以上是生活随笔為你收集整理的命令 启动顺序_笔记一: 启动选项与系统变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java控制台等待输入
- 下一篇: 2008一打开项目就闪退_UE4[C++