DataGrip - MySQL入門必知!!!

如果你已經對datasource、database和schema有清晰的認知了(雖然我認爲這樣的人都不會打開這篇博文了)

那您可以離開本頁了,不想浪費您的時間~

像我這麼的人一般能百度到的東西都不會拿出來寫...

但是這次我研究的這個事兒,應該是全網無人總結的(問題的表象無人說,問題的本質當然是有大佬解釋的啦,看下去就知道我在說啥了~)


背景描述:

今天在看別人的servlet代碼的時候突然發現

這個東西應該是數據庫名吧,咦我怎麼記得我在DG裏默認的數據庫裏沒有這個東西呢?打開DG一看,果然

但是我連接過其他的項目的數據庫,是有這個東西的,那個時候沒深究。

於是我就去請教我的小夥伴(他用的是navicat),他說Database就是數據庫的名字啊,於是他給我演示了一下在navicat上新建一個數據庫的操作……

但是我回來找類似create/new database的操作,愣是沒找到,我還百度了好久,沒有能解決我疑惑的

我還實驗性地這樣做:

測試連接直接紅了,說明沒找到這個數據庫。(說明了兩個問題,第一這不是新建數據庫的操作!第二本地沒有這個數據庫!)

第二點好理解,確實沒有這個數據庫,因爲我本來就是想要通過這個方法來創建它。

第一點就很疑惑了,如果我把database去掉,是可以新建一個schema(注意我的用詞不是數據庫)的,但是這也不是新建數據庫啊

讓我來總結一下我的問題。

DG項目結構如下:

在我的理解裏,

1:DG項目創建的一個數據庫連接,看到的MySQL-@localhost 是連接的名稱

2:概念模糊,應該是個集合一樣的東西

3:集合裏的實體對象,創建的時候也是new schema

4:很明顯這就是表啊

而就是我對schema的理解不夠到位,而引發了我所有的疑惑和不解

對1和4的理解是肯定沒有問題的,於是我去搜了一下schema的概念,參考如下(百度第一條)

https://blog.csdn.net/u010429286/article/details/79022484

原來在MySQL裏,schema和我們說的數據庫(database)是差不多一樣的概念,也就是說我們新建schema就是新建數據庫(database),也就是說2是數據庫的集合結構,3就是數據庫本身

於是我打開本地mysql server,show databases一下:

我再到DG中,創建一個新的連接如下:

紅字是時區錯誤!說明不是database沒找到!

我們改一下時區,新增一條serverTimezone即可

再測試一下:

奈斯 兄嘚!

讓我們打開來看一下:

連接到了我本地的web_cms數據庫,沒毛病

然後看到上面的 1 of 7 我就豁然開朗了,這玩意兒用於調節DG中展示的視圖,你可以選擇你想看哪幾個數據庫

這說明了一個問題,這個連接雖然指定了連接的database,但是我們用的是root賬號,所以可以看所有的數據庫,這個所有指的是localhost:3306下的即我們這個數據庫服務下的所有數據庫!


總結:

總算明白了DG的構造,讓我拿上面那個圖再來總結一下

1:連接

2:該連接下,你能訪問的數據庫們

3:一個數據庫

4:數據表

我們創建的連接是對應一個數據庫服務的,而這個連接我認爲應該稱之爲 數據源 以防跟數據庫混淆。

其實在DG中已經做了提示了,

我們這樣創建的就是數據源,在連接成功後我們可以在Schemas選項中選擇我們要連接的數據庫,

所以我覺得database這個選框其實沒什麼必要?畢竟連接前可以在Schemas中選擇,連接後又可以使用視圖來屏蔽/展示……

還是說除了root賬戶都需要通過指定database的方式來連接呢?這個問題沒有測試,有興趣的小夥伴可以去試試!

再回頭看本文最開始提出的疑惑,爲什麼打開本地數據源的連接屬性裏,沒有database這個屬性呢。因爲這是數據源啊!又不是數據庫!再問頭都打爛掉!你看到別的有這個屬性的,因爲它們都是針對某個特定數據庫連接!

如果要創建數據庫,就new schema!

 

 

發佈了4 篇原創文章 · 獲贊 1 · 訪問量 7562
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章