從零開始學MySQL(二)

来源:https://www.cnblogs.com/RajXie/archive/2019/05/21/10879088.html
-Advertisement-
Play Games

鑒於上節篇幅以安裝為主,因此對於調用mysql所需要使用的“命令”只是略微提及。隨之而來就會帶給讀者諸多不解了,因為你會思考,這串長長的字元到底有什麼特殊的含義呢?聰明的你可能早就抱著好奇心去“擺渡”一下了。而答案不過是在連接mysql伺服器時,應當使用的一種方式——即,身份驗證而已。另外一個情境是 ...


鑒於上節篇幅以安裝為主,因此對於調用mysql所需要使用的“命令”只是略微提及。隨之而來就會帶給讀者諸多不解了,因為你會思考,這串長長的字元到底有什麼特殊的含義呢?聰明的你可能早就抱著好奇心去“擺渡”一下了。而答案不過是在連接mysql伺服器時,應當使用的一種方式——即,身份驗證而已。另外一個情境是,先前筆者每每登錄總是需要鍵入這麼多個字元,久而久之就難免抱怨,“哎呀,好煩,每次登錄都要設定這些連接參數,諸如‘mysql -p -uroot -h......(此處省略更多參數)’,既然無法跳過這一步,那麼有沒有什麼好的方法可以減少文本的輸入量呢?”。相信您肯定知道提出這一齣問題意味著什麼。本節,我們就致力解決這兩個問題吧。

本文的規則:黑色字體為正常步驟,紅色字體為希望能引起讀者的註意,筆者用意大致是出於“警示”或“引導”這兩種。

本文閱讀建議:因分節(一)介紹的知識與平臺無關,即在所有系統上通用,建議詳讀;而分節(二)則是面向Linux系統,建議選讀。想要對此有所瞭解的讀者應先瀏覽一下大致的模塊,然後根據自己的需要選擇相應方法,詳細看一遍後進行嘗試。在這裡也提一下,對於Windows系統,其實現方法是差不多的,只要將調用mysql的命令及參數整合進環境變數或.bat(批處理文件)即可,故不做過多的介紹。

本文概覽:

(一)MySQL的連接參數

(二)在MySQL的連接參數上“偷懶”

若本文出現錯誤或有所遺漏等問題,還請讀者指出,鄙人不勝感激。

 

 

(一)MySQL的連接參數


這裡相當於是對上一節的補充,如果想將知識體系梳理完整,還請您務必這麼想。因為知識就是從已知中發現未知,從而進行擴展的,對吧?

(1)調用mysql所使用的命令提示符mysql [option]

看到option加了中括弧,有的小伙伴就十分清晰了——哦,這個option是“可選”的。

 

(2)沒錯,它確實是可選的,但下麵這種命令形式比較常見

mysql -h 主機名 -p -u 用戶名

ps: 登錄的時候,記得將主機名和用戶名換成你自己的喲。鍵入上述命令之後,你會收到“Enter password: ”的提示,密碼輸入無誤便可繼續收到“mysql> ”,這就意味這我們連接上伺服器了。往後就可以基於現有的表進行任意的查詢了。這裡還指出出,您可以將-h 主機名換為--host=主機名,將-p換位--password=用戶密碼,將--u 用戶名換為--user=用戶名

 

為什麼說它常見呢?這是因為執行mysql時,提供所有選項往往是因為面臨更多的需求,但通常至少需要指定用戶名和密碼。這是下限。

① 關於-h:MySQL採用的是“C/S”體繫結構,因此我們在進行查詢之前,需要先通過客戶端去連接伺服器。自然而然地,通過-h來指定伺服器名稱就不難理解了吧。有鑒於此,當我們在本地的伺服器上運行時,加不加-h便無所謂了,因為預設是127.0.0.1或者說是localhost嘛。

② 關於-p和-u:而用戶和密碼只是您進入伺服器資料庫的一個身份驗證而已(不是隨隨便便都可以讓所有人進入資料庫的,如果陌生人都可以隨意進入你家,那不就亂套了麽?),因此出於安全考慮,你說-p和-u是不是很有必要呢?

不建議的做法:參照-h和-u,同樣可以將密碼直接輸入,但註意密碼應該“緊跟在-p後面”,如-p123456,而不是-p 123456。值得註意的是,-h和-u後面的內容可以緊跟也可以先空一格後再輸入。(有些小伙伴就糾結為什麼?那你這樣想就可以了:別人很容易就能獲悉伺服器名和你的賬戶名,但你的密碼也是公開的麽?它們的性質肯定不一樣,因材施教唄。)

 

(3)連接到伺服器之後,想終止會話怎麼辦?沒關係,掌握下麵命令中的其中一個,你就可以隨時退出咯。

1 quit
2 exit
3 \q

 

 

(二)在MySQL的連接參數上“偷懶”


接下來,我們來探討一下,如何“偷懶”。

(1)將這些連接參數事先存儲在主目錄的一個選項文件里。

 

I. 如何實現:

① 首先,使用快捷鍵Ctrl + Alt + T打開命令行界面,輸入

vi ~/.my.cnf

 

② 其次,按下 i 鍵開啟插入模式,並輸入

[client]
host=主機名
user=用戶名
password=密碼

ps:請將上述的主機名、用戶名、密碼替換為你自己的。

額外說明:選項文件中的[client]是一個選項組。它作為選項組的開始標記,表示該組名後面的所有選項都適用於所有的客戶端程式。

其他選項參數可根據需要增減。比如是要連接到本地運行的mysqld伺服器,則無需加入host=主機名這個參數。你get到了嗎?

 

③ 接著,按下:,並輸入wq,保存文件並離開。

 

④ 最後,將文件許可權設定為只有自己可讀寫。

chmod 600 ~/.my.cnf

 

II. 如何測試:

在命令行界面直接鍵入mysql,如果可直接進入會話界面了,說明成功!

 

 

(2)利用shell的history命令功能,輸入重覆命令。

 

這裡需要用到的命令是:感嘆號字元( ! ),!my或!#均可以。

如果使用是!#,#需要您使用數字來進行替換。但您可能需要先通過history可以查詢到是第幾個命令。

② 如果使用!my,要確保以“my”這兩個字元足夠使得shell找到以my開頭的命令,我們的目標是最近調用mysql這行命令。

③ 若為上一個命令,可直接鍵入!! 。

 

 

(3)利用shell別名或腳本定義一個mysql命令行快捷方式。

 

I. 別名:

這裡需要用到的命令是:alias ,如alias='mysql -h主機名 -p -u用戶名'。請註意alias為內建命令,因此只在當前的shell進程生效。要使其永久生效,還需將它配置到shell程式的啟動文件里。若讀者賬戶的預設sh為bash,那麼就是.bashrc或.bash_profile文件了。這裡不做過多描述,感興趣的小伙伴可以“擺渡”一下。

 

II. 腳本:

① 首先,先創建一個以.sh為尾碼的文件。這裡將文件名命名為要打開的資料庫的名稱。

vi 資料庫名.sh

② 其次,按下 i 鍵,並輸入如下內容(註意將主機名、用戶名、資料庫名換成你自己的):

#! /bin/bash
exec mysql -h 主機名 -p -u 用戶名 資料庫名

③ 將文件設置為可執行文件。

chmod +x 資料庫名.sh

這樣,在命令行中輸入該文件名稱(註意:需要切換到文件所在目錄),即可啟動mysql並連接到相關的資料庫了。大功告成!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 任務 1 基本概念 從系統的角度看,任務是競爭系統資源的最小運行單元。任務可以使用或等待CPU、使用記憶體空間等系統資源,並獨立於其它任務運行。 Huawei LiteOS的任務模塊可以給用戶提供多個任務,實現了任務之間的切換和通信,幫助用戶管理業務程式流程。這樣用戶可以將更多的精力投入到業務功能的實 ...
  • 文章大綱 一、關於shell二、shell進階(重點)三、學習資料下載四、參考文章 一、關於shell 1. 什麼是shell 1.1 shell簡介 Shell(外殼) 是一個用 C 語言編寫的程式,它是用戶使用 Linux 的橋梁。Shell 既是一種命令語言,又是一種程式設計語言。 Shell ...
  • 一、yum更換國內源 運維開發技術交流群歡迎大家加入(QQ:722381733) 1、前往yum文件路徑地址 2、下載相應的原包地址 3、列出所有可安裝的包 4、如果一個163和base的源不夠用的情況下,可以安裝一個擴展源epel 二、yum下載rpm包 1、下載包不安裝 2、已經安裝的包要重新安 ...
  • 文章大綱 一、網路相關概述二、網路相關命令三、項目上線流程(必須掌握)四、學習資料下載五、參考文章 一、網路相關概述 1. 網路發展 1.1 信息傳遞遠古時期,人們就通過簡單的語言、壁畫等方式交換信息千百年來,人們一直在用語言、圖符、鐘鼓、煙火、竹簡、紙書等傳遞信息古代人的烽火狼煙、飛鴿傳信、 ...
  • 文章大綱 一、許可權概述二、許可權設置三、屬主與屬組設置四、擴展五、學習資料下載六、參考文章 一、許可權概述 總述:Linux系統一般將文件可存/取訪問的身份分為3個類別:owner、group、others,且3種身份各有read、write、execute等許可權。 1. 許可權介紹 什麼是許可權?在多用戶 ...
  • 文章大綱 一、設置主機名二、chkconfig三、ntp服務四、防火牆服務五、rpm管理(重點)六、cron/crontab計劃任務(重點)七、學習資料下載八、參考文章 自有服務,即不需要用戶獨立去安裝的軟體的服務,而是當系統安裝好之後就可以直接使用的服務(內置)。 一、設置主機名 回顧: ①臨時設 ...
  • linux系統因為備份、不同版本等問題,導致ECS Linux上存放有多個Nginx目錄,可以通過如下方法定位當前正在運行的Nginx的配置文件: 1. 查看nginx的PID,以常用的80埠為例: 2. 通過相應的進程ID(比如:4562)查詢當前運行的nginx路徑: 3. 獲取到nginx的 ...
  • 1.查看樹莓派系統掛載的儲存設備 使用工具查看系統識別到的硬碟設備,命令: /dev/sda 和 /dev/sdb 分別是兩塊硬碟。 2.修改硬碟分區 Linux和windows一樣,linux可以把一塊硬碟進行分區。 在使用 fdisk工具可以看到硬碟的詳細信息,和對應的分區表信息。我們對硬碟進行 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...