導讀 | 在本篇文章裏小編給各位分享的是關於MySQL中SQL Mode的查看與設置詳解內容,需要的朋友們可以參考下。 |
MySQL中SQL Mode的查看與設置
MySQL可以運行在不同的模式下,而且可以在不同的場景下運行不同的模式,這主要取決於系統變量 sql_mode 的值。本文主要介紹一下這個值的查看與設置,主要在Mac系統下。
對於每個模式的意義和作用,網上很容易找到,本文不做介紹。
按作用區域和時間可分爲3個級別,分別是會話級別,全局級別,配置(永久生效)級別。
會話級別:
查看-
select @@session.sql_mode;
修改-
set @@session.sql_mode='xx_mode' set session sql_mode='xx_mode' session均可省略,默認session,僅對當前會話有效
全局級別:
查看-
select @@global.sql_mode;
修改-
set global sql_mode='xx_mode'; set @@global.sql_mode='xx_mode';
需高級權限,僅對下次連接生效,不影響當前會話(親測過),且MySQL重啓後失效,因爲MySQL重啓時會重新讀取配置文件裏對應值,如果需永久生效需要修改配置文件裏的值。
配置修改(永久生效):
打開 vi /etc/my.cnf 在下面添加 [mysqld] sql-mode = "xx_mode" 注意:[mysqld]必須加,且sql-mode中間是“-”,而不是下劃線。
保存退出,重啓服務器,即可永久生效。
因爲Mac下安裝MySQL沒有配置文件,所以需要自己手動添加。
最後額外加一點東西,就是Mac下MySQL的啓動、停止、重啓等操作。
主要有兩種方式,
一是點擊”系統偏好設置“對應的MySQL面板,可實現管理。
二是命令行方式。
MySQL相關的執行腳本,常用的主要是下面兩個:
/usr/local/mysql/support-files/mysql.server /usr/local/mysql/bin/mysql mysql.server是控制服務器的啓停等操作。 mysql.server start|stop|restart|status mysql主要用於連接服務器。 mysql -uroot -p **** -h **** -D ** 有些需要sudo權限,且可將相關路徑添加到環境變量,可簡化書寫,至於如何添加是不做介紹了。
知識點擴展:
Strict Mode闡述
根據 mysql5.0以上版本 strict mode (STRICT_TRANS_TABLES) 的限制: 1).不支持對not null字段插入null值 2).不支持對自增長字段插入''值,可插入null值 3).不支持 text 字段有默認值 看下面代碼:(第一個字段爲自增字段) $query="insert into demo values('','$firstname','$lastname','$sex')"; 上邊代碼只在非strict模式有效。 Code代碼 $query="insert into demo values(NULL,'$firstname','$lastname','$sex')"; 上邊代碼只在strict模式有效。把空值''換成了NULL.