搜尋本站文章

2017-02-17

[SQL Server]:UPDATE 或 DELETE 陳述式,請勿使用 NOLOCK、READUNCOMMITTED


WITH (NOLOCK)、READUNCOMMITTED 是允許「中途讀取(Dirty Read)」。
這或許減少了「封鎖(Blocked Lock)」,但卻有許多副作用必須面對,將在後續文章討論此議題。

今 SQL Server,已經在 INSERT、UPDATE、DELETE 或 MERGE 陳述式上,禁止使用 NOLOCK、READUNCOMMITTED。

在 SQL Server 線上說明,先前已說明:
  • SQL Server 查詢最佳化工具會忽略套用在 UPDATE 或 DELETE 陳述式目標資料表的 FROM 子句中的 READUNCOMMITTED 和 NOLOCK 提示。
  • 請避免在新的開發工作中使用此內容中的這些提示,並規劃修改目前在使用這些提示的應用程式。




示範環境
SQL Server 2016 SP1 Enterprise Edition

範例程式碼



USE Northwind
GO
SELECT * FROM Products
GO

UPDATE Products WITH (NOLOCK)
SET UnitsInStock=99
WHERE ProductID=1


錯誤訊息:

訊息 1065,層級 15,狀態 1,行 22
NOLOCK 與 READUNCOMMITTED 鎖定提示不允許用在 INSERT、UPDATE、DELETE 或 MERGE 陳述式的目標資料表。


-- 01_不允許使用NOLOCK 與 READUNCOMMITTED 鎖定提示






NOLOCK、READUNCOMMITTED

是指定允許中途讀取。 不會發出任何共用鎖定來防止其他交易修改目前交易所讀取的資料,其他交易所設定的獨佔鎖定也不會封鎖目前交易,使它無法讀取鎖定的資料。
允許中途讀取可以提高並行程度,但代價是所讀取的資料修改後來會被其他交易回復。

這可能會使您的交易發生錯誤、為使用者提供永遠不被認可的資料,或是讓使用者看到記錄兩次 (或是根本看不到)。

READUNCOMMITTED 和 NOLOCK 提示只適用於資料鎖定。
所有的查詢 (包括具有 READUNCOMMITTED 和 NOLOCK 提示的查詢),都會在編譯和執行期間取得 Sch-S (結構描述穩定性) 鎖定。

因此,當並行交易在資料表上保有 Sch-M (結構描述修改) 鎖定時,查詢將會遭到封鎖。
例如,資料定義語言 (DDL) 作業會在修改資料表的結構描述資訊之前先取得 Sch-M 鎖定。

任何並行查詢,包括以 READUNCOMMITTED 或 NOLOCK 提示執行的查詢,會在嘗試取得 Sch-S 鎖定時遭到封鎖。
相反地,保有 Sch-S 鎖定的查詢將會封鎖嘗試取得 Sch-M 鎖定的並行交易。

無法針對插入、更新或刪除作業修改的資料表指定 READUNCOMMITTED 和 NOLOCK。
SQL Server 查詢最佳化工具會忽略套用在 UPDATE 或 DELETE 陳述式目標資料表的 FROM 子句中的 READUNCOMMITTED 和 NOLOCK 提示。

注意
SQL Server 的未來版本將移除套用到 UPDATE 或 DELETE 陳述式目標資料表的 FROM 子句中 READUNCOMMITTED 和 NOLOCK 提示的使用支援。
請避免在新的開發工作中使用此內容中的這些提示,並規劃修改目前在使用這些提示的應用程式。

-- 02_BOL_資料表提示_移除 NOLOCK 或 READUNCOMMITTED



-- 03_BOL_資料表提示_移除 NOLOCK 或 READUNCOMMITTED







參考資料

SQL Server 2016 中已被取代的 Database Engine 功能
https://msdn.microsoft.com/zh-tw/library/ms143729.aspx

資料表提示 (Transact-SQL)
https://msdn.microsoft.com/zh-tw/library/ms187373.aspx

答客問:WITH (NOLOCK) 與 unlock 的差異?
http://sharedderrick.blogspot.tw/2011/08/with-nolock-unlock.html

Bad habits : Putting NOLOCK everywhere
https://blogs.sentryone.com/aaronbertrand/bad-habits-nolock-everywhere/

SET TRANSACTION ISOLATION LEVEL (Transact-SQL)
https://msdn.microsoft.com/zh-tw/library/ms173763.aspx


[MySQL]:使用CONNECTION_ID() 查詢目前連線的連線識別碼

每一條客戶端的連線,系統都會配置一個專屬的「連線識別碼(Connection ID)」,或稱「執行緒識別碼(thread ID)」來識別。

可以使用以下的方式來查詢:


SELECT CONNECTION_ID();


-- 01_MySQL Workbench_Connection_ID



02_MySQL Workbench_Connection_ID



03_MySQL命令列_Connection_ID







注意事項

在 MySQL Workbench中,點選「New Query Tab」或工具列上「Create a New SQL tab for executing queries」的,都是在同一條連線上。

在撰寫Transaction交易程式時,要留意此事。

-- 04_New Query Tab



05_工具列_New Query Tab





參考資料

MySQL Information Functions
https://dev.mysql.com/doc/refman/5.7/en/information-functions.html

23.17 The INFORMATION_SCHEMA PROCESSLIST Table
https://dev.mysql.com/doc/refman/5.7/en/processlist-table.html

14.7.5.29 SHOW PROCESSLIST Syntax
https://dev.mysql.com/doc/refman/5.7/en/show-processlist.html

24.10.16.3 The threads Table
https://dev.mysql.com/doc/refman/5.7/en/threads-table.html

2017-02-15

[SQL Server]:Latch 與 Lock 的差異


「Latch(閂鎖)」

Latch 是SQL Server 內部儲存引擎的物件,用來同步處理資源,例如:記憶體的資料頁面、資料檔案的資料頁面等。

例如:
在記憶體緩衝區集區(Buffer)裡的資料頁面與磁碟上的資料檔案之資料頁面,需要作互動同步時,為了確保不會有多個使用者同時讀取/寫入記憶體的資料頁面。

SQL Server採取與處理資料表相同的機制,對記憶體中的資料頁面,實施加鎖的機制,藉此同步多個使用者的平行處理。
這個加鎖的機制,SQL Server採取的是 使用「Latch(閂鎖)」。
  • 資料庫管理師、程式設計師,不能控制「Latch」。


「Latch(閂鎖)」與「Lock(鎖定)」相同的是,都會出現「封鎖(Blocking)」。


「Lock(鎖定)」

是用來同步處理使用者物件,例如:資料表、資料列、索引等。

例如:
在開發並行交易程式時,設定要使用交易隔離層級(transaction isolation level),或是使用資料表的「鎖定提示(Locking Hints)」,來設計各種鎖定模式來鎖定目標資源。
  • 資料庫管理師、程式設計師,可以自行控制「Lock」。




在進行 SQL Server 效能調教時,可以利用 DMV sys.dm_os_wait_stats 得知執行緒因故所遇到的所有等候(Wait)之相關資訊。

利用此份彙總檢視來診斷 SQL Server 的效能問題,以及特定查詢和批次的效能問題。


-- sys.dm_os_wait_stats 得知執行緒因故所遇到的所有等候(Wait)之相關資訊。
-- 利用此份彙總檢視來診斷 SQL Server 的效能問題,以及特定查詢和批次的效能問題。

SELECT * FROM sys.dm_os_wait_stats; 

-- 01_sys.dm_os_wait_stats_彙總檢視來診斷 SQL Server 的效能問題,以及特定查詢和批次的效能問題



PAGEIOLATCH_DT
當工作在位於 I/O 要求中的緩衝區閂鎖待命時發生。閂鎖要求是終結模式。如果等候時間很長,表示磁碟子系統有問題。
PAGEIOLATCH_EX
當工作在位於 I/O 要求中的緩衝區閂鎖待命時發生。閂鎖要求是獨佔模式。如果等候時間很長,表示磁碟子系統有問題。
PAGEIOLATCH_KP
當工作在位於 I/O 要求中的緩衝區閂鎖待命時發生。閂鎖要求是保留模式。如果等候時間很長,表示磁碟子系統有問題。
PAGEIOLATCH_NL
僅供參考之用。不支援。我們無法保證未來的相容性。
PAGEIOLATCH_SH
當工作在位於 I/O 要求中的緩衝區閂鎖待命時發生。閂鎖要求是共用模式。如果等候時間很長,表示磁碟子系統有問題。
PAGEIOLATCH_UP
當工作在位於 I/O 要求中的緩衝區閂鎖待命時發生。閂鎖要求是更新模式。如果等候時間很長,表示磁碟子系統有問題。
PAGELATCH_DT
當工作不是在 I/O 要求中的緩衝區閂鎖待命時發生。閂鎖要求是終結模式。
PAGELATCH_EX
當工作不是在 I/O 要求中的緩衝區閂鎖待命時發生。閂鎖要求是獨佔模式。
PAGELATCH_KP
當工作不是在 I/O 要求中的緩衝區閂鎖待命時發生。閂鎖要求是保留模式。
PAGELATCH_NL
僅供參考之用。不支援。我們無法保證未來的相容性。
PAGELATCH_SH
當工作不是在 I/O 要求中的緩衝區閂鎖待命時發生。閂鎖要求是共用模式。
PAGELATCH_UP
當工作不是在 I/O 要求中的緩衝區閂鎖待命時發生。閂鎖要求是更新模式。




參考資料

什么是PAGELATCH和PAGEIOLATCH
https://blogs.msdn.microsoft.com/apgcdsd/2011/11/28/pagelatchpageiolatch/

SQL Server 的 Latches 物件
https://msdn.microsoft.com/zh-tw/library/ms177421.aspx

Explanation of SQL Server IO and Latches
https://www.mssqltips.com/sqlservertip/3088/explanation-of-sql-server-io-and-latches/

SQL SERVER – What is the Difference Between Latches and Locks
https://blog.sqlauthority.com/2014/03/16/sql-server-what-is-the-difference-between-latches-and-locks/

Welcome To TechBrothersIT: SQL SERVER DBA INTERVIEW QUESTIONS
http://www.techbrothersit.com/search/label/SQL%20SERVER%20DBA%20INTERVIEW%20QUESTIONS

Latch , lock , pin -- 差異
http://blog.itpub.net/35489/viewspace-664252

sys.dm_os_wait_stats (Transact-SQL)
https://technet.microsoft.com/zh-tw/library/ms179984(v=sql.105).aspx

以動態管理物件觀察 SQL Server(2)─找到最耗資源的執行計畫
http://www.runpc.com.tw/content/content.aspx?id=108039

王者歸來:SQL SERVER 2012實戰指南
http://www.books.com.tw/products/0010637404

在超過 64 個 CPU 之電腦上執行 SQL Server 的最佳作法
https://technet.microsoft.com/library/ee210547(sql.105).aspx

2017-02-12

[SQL Server 複寫]:產生「快照集(Snapshot)」期間,不會產生「共用鎖定(share locks)」


在「快照式複寫/交易式複寫」於建立「快照集(Snapshot)」期間,將設置「共用鎖定(share locks)」於發行集內所有資料表,其目的是避免去更新正在發行中的資料表。

若要避開「共用鎖定(share locks)」所造成的影響,可以使用幾個方式:


  • 「並行快照集處理(Concurrent Snapshot Processing)」、「資料庫快照集(database snapshot)」。
  • 調整複寫預存程序 sp_addpublication 的 @sync_method參數來達成:concurrent、database snapshot


(1)「並行快照集處理(Concurrent Snapshot Processing)」


  • 使用「並行快照集處理(Concurrent Snapshot Processing)」(此為交易式複寫的預設行為)。
  • 在建立整個快照集期間,不會產生「共用鎖定(share locks)」,這可以讓使用者在複寫於建立與初始化快照集期間,不受到影響繼續作業。
  • 產生所有資料表的原生模式大量複製程式輸出,但在快照集期間,不鎖定資料表。
  • 只支援交易式發行集使用這個項目。 不支援 Oracle 發行者使用這個值。


(2)使用「資料庫快照集(database snapshot)」


  • 從資料庫快照集產生所有資料表的原生模式大量複製程式輸出。
  • SQL Server 2005 Enterprise版本,開始支援資料庫快照,並非每一個版本都可以使用。
  • SQL Server 2016 SP1 Enterprise、Standard、Web、Express with Advanced Services、Express等版本,開始支援。






示範環境
SQL Server 2016 SP1 Enterprise Edition

(1)「快照式複寫」的發行集,sp_addpublication 的 @sync_method參數,預設使用:native

-- 31_快照式複寫_發行集_Native



使用 SQL Trace 觀察「DatabaseName」

  • Application Name:Snapshot BCP thread #3 for publication Pubs_Tran
  • DatabaseName: pubs



-- 32_Trace_快照式複寫_發行集_Native



-- 33_Trace_快照式複寫_發行集_Native


-- 34_系統檢視表_快照式複寫_發行集_Native






(2)「交易式複寫」的發行集,sp_addpublication 的 @sync_method參數,預設使用:concurrent

-- 41_交易式複寫_發行集_concurrent



-- 42_交易式複寫_發行集_database snapshot




使用 SQL Trace 觀察「DatabaseName」

  • ApplicationName:Snapshot BCP thread #3 for publication NW_Snapshot
  • DatabaseName: Replicatin Snapshot - NW_Snapshot - Northwind


-- 43_交易式複寫_發行集_database snapshot



-- 44_系統檢視表_交易式複寫_發行集_database snapshot






參數說明





錯誤訊息

訊息 14100,層級 16,狀態 1,行 142
當使用並行的快照集處理來訂閱發行集時,請指定所有的發行項。





參考資料

異動複寫
https://msdn.microsoft.com/zh-tw/library/ms151176.aspx

交易式複寫的運作方式
https://technet.microsoft.com/zh-tw/library/ms151706(v=sql.105).aspx

sp_addpublication (Transact-SQL)
https://msdn.microsoft.com/zh-tw/library/ms188738(v=sql.105).aspx

SQL Server 2012 版本支援的功能
https://msdn.microsoft.com/zh-tw/library/cc645993(v=sql.110).aspx

Transactional FAQs
http://www.replicationanswers.com/transactional.asp

sp_changepublication (Transact-SQL)
https://msdn.microsoft.com/zh-tw/library/ms188413.aspx

sp_addsubscription
https://msdn.microsoft.com/zh-tw/library/ms181702.aspx

Does Transactional Replication Include Structural Changes Made to a Database
http://www.sql-server-performance.com/2015/transactional-replication-replicates-the-structural-changes/

Adding Article in Existing Tranactional Replication -- Step by Step
http://ansqldba.blogspot.tw/2012/02/adding-new-article-to-existing.html

Specify all articles when subscribing to a publication using concurrent snapshot processing.
https://blogs.msdn.microsoft.com/repltalk/2012/04/04/specify-all-articles-when-subscribing-to-a-publication-using-concurrent-snapshot-processing/

SQL Server Transacational Replication Issue while adding a new article
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/4e57cc76-8ed4-4b27-b5f0-35b60a239b2d/sql-server-transacational-replication-issue-while-adding-a-new-article?forum=sqlreplication

Replication – Snapshot is not getting generated
https://learnsqlteam.com/2016/05/26/replication-snapshot-issue/

資料庫快照集 (SQL Server)
https://msdn.microsoft.com/zh-tw/library/ms175158.aspx

How to use ‘database snapshot’ sync_mode while creating a new Tran/snapshot publication using sp_addpublication
https://blogs.msdn.microsoft.com/mangeshd/2008/05/30/how-to-use-database-snapshot-sync_mode-while-creating-a-new-transnapshot-publication-using-sp_addpublication/

資料庫快照集 (Database Snapshot) 壞了、損毀,對於原本資料庫的影響?
http://sharedderrick.blogspot.tw/2008/09/database-snapshot.html

2017-02-10

安裝 SQL Server 2016 with SP1



版本資訊:SQL Server 2016 (SP1-GDR) (KB3207512) – 13.0.4199.0 (X64)

SQL Server 2016 的圖型介面工具:SSMS、SSDT,需要額外下載安裝。

(1)SSMS(SQL Server Management Studio)

免費下載的圖形工具,可以加以利用來存取、設定、管理及開發 SQL Server 的所有元件。
SSMS 利用許多豐富的指令碼編輯器來合併一群非常廣泛的圖形工具,使所有技術層級的開發人員及管理員都能夠存取。

SSMS 2016 16.5.3:安裝與檢查有無更新 

(2)SSDT(SQL Server Data Tools)

免費下載的新式開發工具,可用來建置 SQL Server 關聯式資料庫、Azure SQL Database、Integration Services 封裝、Analysis Services 資料模型以及 Reporting Services 報表。

安裝 SSDT 2016,版本:14.0.61021.0 




版本資訊

-- 查詢相關的版本資料
SELECT RIGHT(LEFT(@@VERSION,25),4) N'產品版本編號' , 
 SERVERPROPERTY('ProductVersion') N'版本編號',
 SERVERPROPERTY('ProductLevel') N'版本層級',
 SERVERPROPERTY('Edition') N'執行個體產品版本',
 DATABASEPROPERTYEX('master','Version') N'資料庫的內部版本號碼'
--
SELECT @@VERSION N'相關的版本編號、處理器架構、建置日期和作業系統'
GO

版本資訊
說明
產品版本編號
2016
版本編號
13.0.4199.0
版本層級
SP1
執行個體產品版本
Enterprise Edition(64-bit)
資料庫的內部版本號碼
852

-- 01_查詢相關的版本資料

SQL Server 2016 (SP1-GDR) (KB3207512) – 13.0.4199.0 (X64)




 -- 02_伺服器屬性_一般



 -- 03_SSMS_版本編號






請參考以下的安裝抓圖

示範環境:
作業系統:Windows Server 2016 Datacenter 版本。

更新日期:October 26, 2016
版本:14.0.61021.0

抓圖歷程

安裝 SQL Server 2016 with SP1





參考資料

SQL Server 評估版
https://www.microsoft.com/zh-tw/evalcenter/evaluate-sql-server-2016

SQL Server 2016 版本資訊
https://msdn.microsoft.com/zh-tw/library/dn876712(v=sql.130).aspx

SQL Server 2016 Service Pack 1 release information
https://support.microsoft.com/en-us/help/3182545/sql-server-2016-service-pack-1-release-information

Update Center for Microsoft SQL Server
https://msdn.microsoft.com/library/ff803383.aspx

安裝 SQL Server 2016 RTM 中文版本
http://sharedderrick.blogspot.tw/2016/11/sql-server-2016-rtm.html

2017-02-09

MySQL Workbench主要功能展示

請參考以下的安裝抓圖

示範環境:

  • MySQL Community Server 5.7.17
  • MySQL Workbench


MySQL Workbench主要功能展示
















參考資料

使用MySQL Workbench工具連線MySQL執行個體
http://sharedderrick.blogspot.tw/2017/02/mysql-workbenchmysql.html

安裝 MySQL Community Server 5.7.17
http://sharedderrick.blogspot.tw/2017/02/mysql-community-server-5717.html

使用MySQL Workbench工具,建立帳戶、設定權限
http://sharedderrick.blogspot.tw/2017/02/mysql-workbench.html

個別下載與安裝MySQL Workbench
http://sharedderrick.blogspot.tw/2017/02/mysql-workbench_9.html

個別下載與安裝MySQL Workbench


以Microsoft Windows作業系統環境為例,若要安裝MySQL Workbench,請事先安裝好:








請參考以下的安裝抓圖

示範環境:
作業系統:Windows Server 2016 Datacenter

個別下載與安裝MySQL Workbench



參考資料

Download MySQL Workbench
https://dev.mysql.com/downloads/workbench/

Visual C++ Redistributable Packages for Visual Studio 2013
https://www.microsoft.com/en-us/download/details.aspx?id=40784

Microsoft .NET Framework 4 Client Profile (Web Installer)
http://www.microsoft.com/download/en/details.aspx?id=17113

使用MySQL Workbench工具連線MySQL執行個體
http://sharedderrick.blogspot.tw/2017/02/mysql-workbenchmysql.html

安裝 MySQL Community Server 5.7.17
http://sharedderrick.blogspot.tw/2017/02/mysql-community-server-5717.html

使用MySQL Workbench工具,建立帳戶、設定權限
http://sharedderrick.blogspot.tw/2017/02/mysql-workbench.html

2017-02-07

使用MySQL Workbench工具,建立帳戶、設定權限


帳戶的密碼組態

可依據不同的需求層面來設定:

(1)若為開發人員用的個人帳戶,密碼可採取使用者自行保管機制。
若因故有無法登入,可採取重置密碼方式來解決問題。
設定「Expire Password」方式,讓開發人員於第一次登入系統時,強制設定新的密碼。

(2)若為應用程式使用的帳戶,其密碼需管制,將交由特定管理人員保管與組態。



實作練習:使用MySQL Workbench工具,建立帳戶、設定權限

示範環境:

  • MySQL Community Server 5.7.17
  • MySQL Workbench

任務:
  • 一、建立帳戶
  • 二、設定下次登入必須修改密碼
  • 三、設定權限




任務一:建立帳戶

步驟01:執行MySQL Workbench,使用管理者身分,登入到指定的MySQL執行個體。

步驟02:在左邊Navigator窗格,點選「Users and Privileges」。



步驟03:在「Users and Privileges」窗格,點選下方的「Add Account」。



步驟04:在「Login」頁籤,輸入以下參數:
「Login Name」:輸入新的帳戶名稱,例如:adm_user1。
「Authentication Tpye」:使用預設的Standard。

「Limit to Host Matching」:使用預設的「%」,這表示可以接受任何一台主機發出的連線。
「Password」:輸入該帳戶的密碼,長度應在8個字元以上,包含大小寫、數字以及標點符號,例如:AbcD123#。

「Confirm Password」:再度輸入AbcD123#。



步驟05:點選左下角的「Apply」,完成此帳戶的建立。



任務二:設定下次登入必須修改密碼

步驟01:在MySQL Workbench管理工具,點選先前所建立的帳戶:adm_user1。

步驟02:在該帳戶的「Login」頁籤,點選「Expire Password」按鈕。
可以觀察到系統提示說:密碼已經到期,使用者必須要更換密碼來使用此帳戶。






任務三:設定權限

步驟01:點選該帳戶的「Administrative Role」頁籤,觀察到可以設定的角色與權限。




步驟02:若要能夠管理此MySQL執行個體,在「Role」,可勾選:DBA,將自動加入到全部的角色,必具備執行全部工作的權限。


步驟03:點選「Apple」,套用此設定。



任務四:使用此帳戶登入MySQL執行個體,並執行SQL陳述式

步驟01:執行MySQL Workbench圖形介面工具。

步驟02:在MySQL Workbench工作區域,在「MySQL Connection」區域,點選 + 符號,建立新的執行個體連線。

步驟03:在「Setup New Connection」視窗,輸入以下參數:
「Connection Name」:輸入自訂的連線名稱,例如:cnn01_adm。
「Connection Method」:使用預設的Standard(TCP/IP)。

在「Parameters」頁籤,輸入以下參數:
「Hostname」:使用預設的127.0.0.1。

「Port」:使用預設的3306。
「Username」:使用預設的adm_user1。

點選「OK」,完成「Setup New Connection」此視窗的設定。



步驟04:在MySQL Workbench工作區域,可以看到先前所設定的執行個體連線資訊:cnn01_adm。

步驟05:在MySQL Workbench工作區域,點選先前所設定的執行個體連線資訊:cnn01_adm,點選「Connect」。



步驟06:在「Connect to MySQL Server」視窗,輸入以下參數:
「Password」:輸入帳戶adm_user1的密碼,例如:AbcD123#。
點選「OK」,完成設定。

由於先前已設此帳戶的密碼已到期,必須更改。

步驟07:在「Password Expired」視窗,輸入以下參數:
「Old Password」:輸入此帳戶原先的密碼,例如:AbcD123#。
「New Password」:輸入要變更的新密碼,例如:AbcD456#。

「Confirm」:再度輸入要變更的新密碼作為確認,例如:AbcD456#。
點選「OK」,完成此視窗的設定。





步驟08:在「Connect to MySQL Server」視窗,,輸入以下參數:
「Password」:輸入變更後的新密碼,例如:AbcD456#。



勾選「Save password in vault」。
點選「OK」,完成此視窗的設定。

步驟09:進入SQL Development的Visual SQL Editor工作區域,輸入以下SQL陳述式。


 
SELECT user(); 




步驟03:按下Ctrl+Enter,或黃色閃電狀的圖示,來執行上述SQL陳述式。

觀察執行結果,輸出為:adm_user1@localhost。




請參考以下的安裝抓圖

示範環境:

  • MySQL Community Server 5.7.17
  • MySQL Workbench


使用MySQL Workbench工具,建立帳戶、設定權限



參考資料

使用MySQL Workbench工具連線MySQL執行個體
http://sharedderrick.blogspot.tw/2017/02/mysql-workbenchmysql.html

安裝 MySQL Community Server 5.7.17
http://sharedderrick.blogspot.tw/2017/02/mysql-community-server-5717.html

使用MySQL Workbench工具連線MySQL執行個體


示範環境:

  • MySQL Community Server 5.7.17
  • MySQL Workbench




實作練習:以帳戶root,使用MySQL Workbench工具連線MySQL執行個體

任務:

  • 一、建立與指定的執行個體的連線資訊
  • 二、登入MySQL執行個體,執行SQL陳述式


任務一:建立與指定的執行個體的連線資訊

步驟01:執行MySQL Workbench圖形介面工具。



步驟02:在MySQL Workbench工作區域,在「MySQL Connection」區域,點選 + 符號,建立新的執行個體連線。

步驟03:在「Setup New Connection」視窗,輸入以下參數:
「Connection Name」:輸入自訂的連線名稱,例如:Local01。
「Connection Method」:使用預設的Standard(TCP/IP)。

在「Parameters」頁籤,輸入以下參數:
「Hostname」:使用預設的127.0.0.1。
「Port」:使用預設的3306。
「Username」:使用預設的root。



在「Password」區域,點選「Store in Vault」按鈕。

在「Store Password For Connection」視窗,輸入以下參數:
在「Password」:輸入此帳戶的密碼。


點選「OK」,完成此視窗的設定。


步驟04:點選「Test Connection」按鈕,確認回傳成功連線的訊息,點選「OK」,完成此視窗的設定。



步驟05:在「Setup New Connection」視窗,點選「OK」,完成此視窗的設定。



步驟06:在MySQL Workbench工作區域,可以看到先前所設定的執行個體連線資訊:Local01。





任務二:登入MySQL執行個體,執行SQL陳述式

步驟01:在MySQL Workbench工作區域,點選先前所設定的執行個體連線資訊:Local01。




步驟02:進入SQL Development的Visual SQL Editor工作區域,輸入以下SQL陳述式。


SELECT version();







步驟03:按下Ctrl+Enter,或黃色閃電狀的圖示,來執行上述SQL陳述式。

觀察執行結果,輸出為:5.7.17-log





請參考以下的安裝抓圖

示範環境:

  • MySQL Community Server 5.7.17
  • MySQL Workbench


使用MySQL Workbench工具連線MySQL執行個體




若輸入錯誤的密碼,將遭遇以下的錯誤訊息







移動到「海豚」圖示,可以觀察到右上角有反摺。再點選一次,MySQL Workbench會顯示出更多關於此連線的相關資訊。






參考資料

安裝 MySQL Community Server 5.7.17
http://sharedderrick.blogspot.tw/2017/02/mysql-community-server-5717.html