mysql安裝后,需要設置一些基本配置以更好的使用。
vi /etc/my.cnf
在文件末尾添加:
sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" plugin-load-add=validate_password.so validate-password=OFF lower_case_table_names = 1
配置項說明:
1.sql_mode
STRICT_TRANS_TABLES:在該模式下,如果一個值不能插入到一個事務表中,則中斷當前的操作,對非事務表不做任何限制
NO_ZERO_IN_DATE:在嚴格模式,不接受月或日部分為0的日期。如果使用IGNORE選項,我們為類似的日期插入'0000-00-00'。在非嚴格模式,可以接受該日期,但會生成警告。
NO_ZERO_DATE:在嚴格模式,不要將 '0000-00-00'做為合法日期。你仍然可以用IGNORE選項插入零日期。在非嚴格模式,可以接受該日期,但會生成警告
ERROR_FOR_DIVISION_BY_ZERO:在嚴格模式,在INSERT或UPDATE過程中,如果被零除(或MOD(X,0)),則產生錯誤(否則為警告)。如果未給出該模式,被零除時MySQL返回NULL。如果用到INSERT IGNORE或UPDATE IGNORE中,MySQL生成被零除警告,但操作結果為NULL
NO_AUTO_CREATE_USER:防止GRANT自動創建新用戶,除非還指定了密碼
NO_ENGINE_SUBSTITUTION:如果需要的存儲引擎被禁用或未編譯,那么拋出錯誤。不設置此值時,用默認的存儲引擎替代,並拋出一個異常
2.plugin-load-add
裝載插件
validate_password.so:加密認證插件
3.validate-password
是否開啟密碼認證
ON:開啟
OFF:關閉
4.lower_case_table_names
linux下:
數據庫名與表名是嚴格區分大小寫的;
表的別名是嚴格區分大小寫的;
列名與列的別名在所有的情況下均是忽略大小寫的;
變量名也是嚴格區分大小寫的;
為了不區分表名和字段名大小寫,需要對該參數進行設置
0:使用CREATE TABLE或CREATE DATABASE語句指定的大小寫字母在硬盤上保存表名和數據庫名。名稱比較對大小寫敏感。
1:表名在硬盤上以小寫保存,名稱比較對大小寫不敏感。MySQL將所有表名轉換為小寫在存儲和查找表上。該行為也適合數據庫名和表的別名。
2:表名和數據庫名在硬盤上使用CREATE TABLE或CREATE DATABASE語句指定的大小寫字母進行保存,但MySQL將它們轉換為小寫在查找表上。名稱比較對大小寫不敏感,即按照大小寫來保存,按照小寫來比較。
注釋:只在對大小寫不敏感的文件系統上適用! innodb表名用小寫保存。