溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中SQL Mode的查看與設置詳解

發(fā)布時間:2020-09-27 16:39:07 來源:腳本之家 閱讀:237 作者:藏色散人 欄目:MySQL數(shù)據(jù)庫

MySQL中SQL Mode的查看與設置

MySQL可以運行在不同的模式下,而且可以在不同的場景下運行不同的模式,這主要取決于系統(tǒng)變量 sql_mode 的值。本文主要介紹一下這個值的查看與設置,主要在Mac系統(tǒng)下。

對于每個模式的意義和作用,網(wǎng)上很容易找到,本文不做介紹。

按作用區(qū)域和時間可分為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沒有配置文件,所以需要自己手動添加。

ps

最后額外加一點東西,就是Mac下MySQL的啟動、停止、重啟等操作。

主要有兩種方式,

一是點擊”系統(tǒng)偏好設置“對應的MySQL面板,可實現(xiàn)管理。

二是命令行方式。

MySQL相關的執(zhí)行腳本,常用的主要是下面兩個:

/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權限,且可將相關路徑添加到環(huán)境變量,可簡化書寫,至于如何添加是不做介紹了。

知識點擴展:

Strict Mode闡述

根據(jù) 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.

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI