seansie's blog

MySQL#0 新手入門:安裝、登入與新增使用者權限管理 | seansie blog

mysql介紹

MySQL,一款開放原始碼的關聯式資料庫管理系統,以其卓越的效能、可靠性和彈性,在資料庫領域獨樹一幟。它不僅能高效處理巨量資料,滿足各類應用場景的需求,還具備跨平台相容性,為開發者提供廣闊的選擇空間。

MySQL 的強大功能體現在它對 SQL 標準的全面支援,使得複雜的資料操作變得輕而易舉。同時,它擁有龐大而活躍的社群,為使用者提供豐富的學習資源和技術支援。

mysql可以適用於多種應用情境,無論是建構動態網站、開發企業級應用,還是部署在資源受限的嵌入式系統中,MySQL 都能勝任。它在資料儲存、檢索和管理方面的出色表現,使其成為眾多開發者和企業的首選資料庫解決方案。

更重要的是,MySQL 始終保持著與時俱進的步伐,不斷推出新功能和優化,以適應雲端運算和大數據等新興技術的發展趨勢。

安裝

在ubuntu可以透過apt安裝, 因為該檔案頗小,所以速度應該挺快的。

sudo apt install mysql-server

接著要確認mysql是否有成功啟動,先用root身分執行一下 mysql ,如果不能用root可以用sudo,原因請見下一節,如果沒有成功啟動,會有如下的錯誤訊息。

root@LAPTOP-MBDVAQ4B:~# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

如果沒有成功啟動的話,需要透過此命令來啟動。

seansie0830@LAPTOP-MBDVAQ4B:~$ sudo service mysql start
 * Starting MySQL database server mysqld                                                                                su: warning: cannot change directory to /nonexistent: No such file or directory

然後再以root身分來執行mysql這個命令,如果最後出現 mysql (詳情請見下節)就代表進入成功,可以輸入 exit 來離開這個環境。

以root身分登入

在 MySQL 中,root 帳號擁有最高權限,首次安裝 MySQL 時,預設只有 root 帳號可用。接下來,我們將說明如何使用 root 身分登入 MySQL 系統。請注意,此處的 root 帳號與 Linux 系統中的 root 帳號是不同的概念,請勿混淆。

MySQL 新版本(8.0 以上)簡化了 root 帳號的登入流程。系統會利用 Linux 的 root 帳號來驗證使用者身分,因此,只要使用 Linux 的 root 帳號執行 MySQL,系統就會直接預設您擁有 MySQL 的 root 權限。這種方式讓使用者更方便,因為只需記住一個密碼。

要使用這個方法,請先切換到 Linux 的 root 帳號,以進行驗證和登入。您可以使用以下命令,輸入 Linux 的密碼後,即可切換到 root 帳號(或是要用sudo也可以):

sudo -i

然後看到提示字元後面是 # 的時候就代表已經順利的切換成 root 帳號了,接著就可以執行mysql命令了

mysql

然後看到

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 8.0.39-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

的時候,就代表已經進入了mysql的命令提示字元,幾乎所有使用者的操作都需要在這裡完成,當然包括新增使用者。

新增使用者

可以使用這個命令來完成

CREATE USER 'guest'@'localhost' IDENTIFIED BY 'password';
  • 'password' 替換為您想要設定的實際密碼。
  • 'localhost' 表示這個使用者只能從本機連線到 MySQL 伺服器。如果您希望允許從任何主機連線,請將其替換為 '%'

然後就跟linux一樣,mysql也是有權限管理的機制,白話文就是每個使用者能碰的東西會不一樣,像是root使用者就可以碰所有東西,而其他普通使用者可能就會有所限制。

以下是授予guest使用者資料庫的所有權限的敘述示範

GRANT ALL PRIVILEGES ON database_name.* TO 'guest'@'localhost';

以該使用者身分登入

mysql -u guest -p
  • mysql:這是 MySQL 用戶端程式的名稱,用來讓linux系統執行之。
  • u guest:這部分指定了你要用何種使用者帳號來登入資料庫。這裡的 guest 表示你要用「guest」這個帳號來連線。
  • p:這個選項告訴 MySQL 用戶端程式,你接下來會輸入密碼。輸入這條指令後,程式會提示你輸入「guest」這個帳號的密碼。

簡單來說,這條指令就是叫 MySQL 程式用「guest」這個帳號,並提示你輸入密碼來登入資料庫。

請注意:在實際環境中使用「guest」帳號通常只會給予非常有限的權限,甚至可能根本不允許登入。這是為了保護資料庫的安全。

接著會出現enter password,請輸入密碼,為了資安考量,正常來說密碼是不會顯示在螢幕的,如果沒看到請繼續輸入不用擔心,輸入按下enter送出。

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.39-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

然後就會看到上述的畫面,這樣就是已經成功地以guest身分登入mysql伺服器了。