mysql 重啟命令以及mysql mode的問題

2021-06-12 17:42:40 字數 2804 閱讀 7590

伺服器的啟動和停止

停止:net stop mysql

啟動:net start mysql 

-------------------------mysql  mode相關問題------------------

一、mysql sql mode簡介

mysql伺服器能夠工作在不同的sql模式下,並能針對不同的客戶端以不同的方式應用這些模式。這樣,應用程式就能對伺服器操作進行量身定製以滿足自己的需求。這類模式定義了mysql應支援的sql語法,以及應該在資料上執行何種確認檢查。這樣,就能在眾多不同的環境下、與其他資料庫伺服器一起更容易地使用mysql。可以使用「--sql-mode="modes"」選項,通過啟動mysqld來設定預設的sql模式。從mysql 4.1開始,也能在啟動之後,使用set [session|global] sql_mode='modes'語句,通過設定sql_mode變數更改模式。

通常在linux下安裝完mysql後,預設的sql-mode值是空,在這種情形下mysql執行的是一種不嚴格的檢查,例如日期字段可以插入』0000-00-00 00:00:00』這樣的值,還有如果要插入的字段長度超過列定義的長度,那麼mysql不會終止操作,而是會自動截斷後面的字元繼續插入操作,如下例:

mysql> create table t5 (c1 char(3));

mysql> insert into t5 values('abcd');

mysql> select * from t5;

+------+

| c1   |

+------+

| abc  |

+------+

1 row in set (0.00 sec)

我們發現插入的字元被自動截斷了,但是如果我們本意希望如果長度超過限制就報錯,那麼我們可以設定sql_mode為strict_trans_tables,如下:

mysql> set session sql_mode='strict_trans_tables'

這樣我們再執行同樣的操作,mysql就會告訴我們插入的值太長,操作被終止,如下:

mysql> insert into t5 values('abcd');

error 1406 (22001): data too long for column 'c1' at row 1

經常使用的sql_mode值如下表:

sql_mode值

描述ansi

更改語法和行為,使其更符合標準sql。

strict_trans_tables

如果不能將給定的值插入到事務表中,則放棄該語句。對於非事務表,如果值出現在單行語句或多行語句的第1行,則放棄該語句。本節後面給出了更詳細的描述。

traditional

make mysql的行為象「傳統」sql資料庫系統。該模式的簡單描述是當在列中插入不正確的值時「給出錯誤而不是警告」。注釋:一旦發現錯誤立即放棄insert/update。如果你使用非事務儲存引擎,這種方式不是你想要的,因為出現錯誤前進行的資料更改不會「滾動」,結果是更新「只進行了一部分」。

說明:如果把sql_mode的值設定成後面的兩個值(也就是我們說的嚴格模式),那麼當在列中插入或更新不正確的值時,mysql將會給出錯誤,並且放棄insert/update操作。在我們的一般應用中建議使用這兩種模式,而不是使用預設的空或ansi模式。但是需要注意的問題是,如果資料庫執行在嚴格模式下,並且你的儲存引擎不支援事務,那麼有資料不一致的風險存在,比如一組sql中有兩個dml語句,如果後面的乙個出現了問題,但是前面的已經操作成功,那麼mysql並不能回滾前面的操作。因此說設定sql_mode需要應用人員權衡各種得失,從而得到乙個合適的選擇。

sql_mode的值還有很多,這裡不再累述,可以參考相關的手冊。

如果mysql與其它異構資料庫之間有資料移植的需求的話,那麼下面的sql_mode的組合設定可以達到相應的效果:

資料庫sql_mode值

db2pipes_as_concat、ansi_quotes、ignore_space、no_key_options、no_table_options、no_field_options

maxdb

pipes_as_concat、ansi_quotes、ignore_space、no_key_options、no_table_options、no_field_options、 no_auto_create_user

mssql

pipes_as_concat、ansi_quotes、ignore_space、no_key_options、no_table_options、 no_field_options

oracle

pipes_as_concat、ansi_quotes、ignore_space、no_key_options、no_table_options、no_field_options、no_auto_create_user

postgresql

pipes_as_concat、ansi_quotes、ignore_space、no_key_options、no_table_options、no_field_options

sql mode 還可以實現對資料效驗和轉移等功能如:

①效驗日期資料合法性.

②在insert或update過程中,如果被零除(或mod(x,0)),則產生錯誤

③將『"』視為識別符引號(『`』引號字元)

④禁用反斜線字元(『\』)做為字串內的退出字元。啟用no_backslash_escapes模式,反斜線則成為普通字元。

⑤將||視為字串連線操作符(+)(同concat()),而不視為or。

mysql safe後重啟 重啟提示mysqld

有人給出以下解決方案 1,利用phpmyadmin 當前資料庫 wp posts表 結構 第一行 名字為id的那行 修改 勾選a i 儲存 檢視額外變成 auto increment 重新整理後台問題解決 2,檢查你的資料庫配置檔案my.cnf或my.ini 開啟你的mysql資料庫配置檔案 lin...

linux重啟mysql命令

如何啟動 停止 重啟mysql 一 啟動方式 1 使用 service 啟動 service mysqld start 2 使用 mysqld 指令碼啟動 etc inint.d mysqld start 3 使用 safe mysqld 啟動 safe mysqld 二 停止 1 使用 servi...

LINUX重啟MYSQL的命令

一 啟動方式 1 使用 service 啟動 service mysqld start 2 使用 mysqld 指令碼啟動 etc inint.d mysqld start 3 使用 safe mysqld 啟動 safe mysqld 二 停止 1 使用 service 啟動 service my...