自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何從命令行管理MySQL數(shù)據(jù)庫(kù)和用戶

數(shù)據(jù)庫(kù) MySQL
本教程介紹了如何使用命令行來創(chuàng)建和管理MySQL或MariaDB數(shù)據(jù)庫(kù)和用戶。 MySQL是最受歡迎的開源關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。 MySQL服務(wù)器允許我們創(chuàng)建大量用戶和數(shù)據(jù)庫(kù)并授予適當(dāng)?shù)臋?quán)限,以便用戶可以訪問和管理數(shù)據(jù)庫(kù)。

如何從命令行管理MySQL數(shù)據(jù)庫(kù)和用戶

本教程介紹了如何使用命令行來創(chuàng)建和管理MySQL或MariaDB數(shù)據(jù)庫(kù)和用戶。 MySQL是***的開源關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。 MySQL服務(wù)器允許我們創(chuàng)建大量用戶和數(shù)據(jù)庫(kù)并授予適當(dāng)?shù)臋?quán)限,以便用戶可以訪問和管理數(shù)據(jù)庫(kù)。

在你開始之前

在開始本教程之前,我們假設(shè)您已經(jīng)在系統(tǒng)上安裝了MySQL或MariaDB服務(wù)器。 所有命令將作為root用戶在MySQL提示符內(nèi)執(zhí)行。

要打開MySQL提示符,輸入以下命令并在提示時(shí)輸入MySQL root用戶密碼:

 

  1. mysql -u root -p 

創(chuàng)建一個(gè)新的MySQL數(shù)據(jù)庫(kù)

要?jiǎng)?chuàng)建新的MySQL或MariaDB數(shù)據(jù)庫(kù),請(qǐng)運(yùn)行以下命令,只需將database_name替換為要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)的名稱即可:

 

  1. CREATE DATABASE database_name; 

輸出:

 

  1. Query OK, 1 row affected (0.00 sec) 

如果您嘗試創(chuàng)建一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù),您將看到以下錯(cuò)誤消息:

 

  1. ERROR 1007 (HY000): Can't create database 'database_name'; database exists 

為避免出現(xiàn)錯(cuò)誤,如果您嘗試創(chuàng)建的名稱相同的數(shù)據(jù)庫(kù)存在,則可以使用以下命令:

 

  1. CREATE DATABASE IF NOT EXISTS database_name; 

輸出:

 

  1. Query OK, 1 row affected, 1 warning (0.00 sec) 

在上面的輸出中,您可以看到查詢OK,這意味著查詢成功,并且有1個(gè)警告告訴我們數(shù)據(jù)庫(kù)已經(jīng)存在,并且沒有創(chuàng)建新的數(shù)據(jù)庫(kù)。

列出所有MySQL數(shù)據(jù)庫(kù)

我們可以使用以下命令列出MySQL或MariaDB服務(wù)器上存在的所有數(shù)據(jù)庫(kù):

 

  1. SHOW DATABASES; 

輸出:

 

  1. +--------------------+  
  2. Database          |  
  3. +--------------------+  
  4. | information_schema |  
  5. | database_name      |  
  6. | mysql              |  
  7. | performance_schema |  
  8. | sys                |  
  9. +--------------------+  
  10. rows in set (0.00 sec) 

 

information_schema,mysql,performance_schema和sys數(shù)據(jù)庫(kù)是在安裝時(shí)創(chuàng)建的,它們存儲(chǔ)有關(guān)所有其他數(shù)據(jù)庫(kù),系統(tǒng)配置,用戶,權(quán)限和其他重要數(shù)據(jù)的信息。 這些數(shù)據(jù)庫(kù)對(duì)于MySQL安裝的正確功能是必需的。

刪除一個(gè)MySQL數(shù)據(jù)庫(kù)

要?jiǎng)h除MySQL或MariaDB,請(qǐng)運(yùn)行以下命令:

 

  1. DROP DATABASE database_name; 

輸出:

  1. Query OK, 0 rows affected (0.00 sec) 

如果您嘗試刪除不存在的數(shù)據(jù)庫(kù),您將看到以下錯(cuò)誤消息:

  1. ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist 

為了避免這個(gè)錯(cuò)誤,你可以使用下面的命令:

  1. DROP DATABASE IF EXISTS database_name; 

輸出:

 

  1. Query OK, 0 rows affected, 1 warning (0.00 sec) 

在上面的輸出中,您可以看到Query OK,這意味著查詢成功,并且有1個(gè)警告告訴我們數(shù)據(jù)庫(kù)不存在。

創(chuàng)建一個(gè)新的MySQL用戶帳戶

MySQL中的用戶帳戶由用戶名和主機(jī)名部分組成。

要?jiǎng)?chuàng)建一個(gè)新的MySQL或MariaDB用戶帳戶,請(qǐng)運(yùn)行以下命令,只需將'database_user'替換為您要?jiǎng)?chuàng)建的用戶的名稱即可:

 

  1. CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password'

在上面的命令中,我們將主機(jī)名部分設(shè)置為localhost,這意味著該用戶將只能從本地主機(jī)(即從運(yùn)行MySQL服務(wù)器的系統(tǒng))連接到MySQL服務(wù)器。 如果您想授予來自其他主機(jī)的訪問權(quán)限,只需使用遠(yuǎn)程計(jì)算機(jī)IP更改本地主機(jī),或者為主機(jī)部分使用'%'通配符,這意味著用戶帳戶將能夠從任何主機(jī)連接。

與使用數(shù)據(jù)庫(kù)時(shí)一樣,在嘗試創(chuàng)建已存在的用戶帳戶時(shí)可避免出現(xiàn)錯(cuò)誤,您可以使用:

 

  1. CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password'

輸出:

 

  1. Query OK, 0 rows affected, 1 warning (0.00 sec) 

更改MySQL用戶帳戶密碼

更改MySQL或MariaDB用戶帳戶密碼的語(yǔ)法取決于您在系統(tǒng)上運(yùn)行的服務(wù)器版本。

您可以通過發(fā)出以下命令找到您的服務(wù)器版本:

 

  1. mysql --version 

如果你有MySQL 5.7.6或更高版本或MariaDB 10.1.20及更新版本,要更改密碼,請(qǐng)使用以下命令:

 

  1. ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password'

如果您有MySQL 5.7.5及更高版本或MariaDB 10.1.20及更高版本,請(qǐng)使用:

SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

在這兩種情況下,輸出應(yīng)如下所示:

 

  1. Query OK, 0 rows affected (0.00 sec) 

列出所有MySQL用戶帳戶

我們可以通過查詢mysql.users表來列出所有MySQL或MariaDB用戶帳戶:

 

  1. SELECT user, host FROM mysql.user

輸出應(yīng)該如下所示。 此輸出列出了在Ubuntu機(jī)器上運(yùn)行的MySQL 5.7服務(wù)器的默認(rèn)用戶以及我們之前添加的兩個(gè)額外用戶帳戶'database_user'@'%'和'database_user'@'localhost'。

輸出:

 

  1. +------------------+-----------+  
  2. user            | host      |  
  3. +------------------+-----------+  
  4. | database_user    | %        |  
  5. | database_user    | localhost |  
  6. | debian-sys-maint | localhost |  
  7. | mysql.session    | localhost |  
  8. | mysql.sys        | localhost |  
  9. | root            | localhost |  
  10. +------------------+-----------+  
  11. rows in set (0.00 sec) 

 

刪除MySQL用戶帳戶

要?jiǎng)h除用戶帳戶,請(qǐng)使用以下命令:

 

  1. DROP USER 'database_user@'localhost'; 

輸出:

 

  1. DROP USER 'database_user@'localhost'; 

如果您嘗試刪除不存在的用戶帳戶,則會(huì)發(fā)生錯(cuò)誤。

 

  1. ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost' 

與處理數(shù)據(jù)庫(kù)時(shí)一樣,以避免錯(cuò)誤可以使用:

 

  1. DROP USER IF EXISTS 'database_user'@'localhost'

輸出:

 

  1. Query OK, 0 rows affected, 1 warning (0.00 sec) 

授予MySQL用戶帳戶的權(quán)限

有多種類型的權(quán)限可以授予用戶帳戶。 您可以在這里找到MySQL支持的完整權(quán)限列表。 在本指南中,我們將通過幾個(gè)例子:

要通過特定數(shù)據(jù)庫(kù)將用戶帳戶的所有權(quán)限擴(kuò)大,請(qǐng)使用以下命令:

 

  1. GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost'

要將所有權(quán)限擴(kuò)展到所有數(shù)據(jù)庫(kù)上的用戶帳戶,請(qǐng)使用以下命令:

 

  1. GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost'

要通過數(shù)據(jù)庫(kù)中特定的表格將所有權(quán)限提供給用戶帳戶,請(qǐng)使用以下命令:

 

  1. GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost'

如果您只想授予特定數(shù)據(jù)庫(kù)類型的用戶帳戶的特定權(quán)限,請(qǐng)執(zhí)行以下操作:

 

  1. GRANT SELECTINSERTDELETE ON database_name.* TO database_user@'localhost'

撤銷MySQL用戶帳戶的權(quán)限

如果您需要從用戶帳戶中撤銷一個(gè)或多個(gè)權(quán)限或所有權(quán)限,則語(yǔ)法與授予它的幾乎相同。 例如,如果要通過特定數(shù)據(jù)庫(kù)撤消用戶帳戶的所有特權(quán),請(qǐng)使用以下命令:

 

  1. REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost'

顯示MySQL用戶帳戶權(quán)限

要查找授予特定MySQL用戶帳戶類型的權(quán)限:

 

  1. SHOW GRANTS FOR 'database_user'@'localhost'

顯示:

 

  1. +---------------------------------------------------------------------------+  
  2. | Grants for database_user@localhost                                      |  
  3. +---------------------------------------------------------------------------+  
  4. GRANT USAGE ON *.* TO 'database_user'@'localhost'                        |  
  5. GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' |  
  6. +---------------------------------------------------------------------------+  
  7. rows in set (0.00 sec) 

 

結(jié)論

本教程只介紹基礎(chǔ)知識(shí),但對(duì)于任何想要了解如何從命令行管理MySQL數(shù)據(jù)庫(kù)和用戶的人來說,這應(yīng)該是一個(gè)很好的開始。

OK,就這樣! 如果您有任何問題或反饋,請(qǐng)隨時(shí)發(fā)表評(píng)論。

Ubuntu 16.04 上安裝 MySQL 5.7 教程 https://www.linuxidc.com/Linux/2017-05/143864.htm 

責(zé)任編輯:龐桂玉 來源: Linux公社
相關(guān)推薦

2018-06-19 16:05:27

LinuxStratis存儲(chǔ)

2012-02-08 16:37:36

ibmdw

2020-12-06 08:00:46

scanimage命令行Linux

2016-12-15 08:30:02

Linux命令

2010-10-12 17:23:40

MySQL命令行

2024-11-18 15:05:34

MySQL數(shù)據(jù)庫(kù)

2010-10-12 16:55:50

MYSQL命令行

2019-08-27 08:00:10

OpenStack命令虛擬機(jī)

2019-07-15 05:50:19

Linux命令行VirtualBox版

2010-05-25 17:01:44

MySQL命令行

2022-08-14 19:19:14

Linux

2014-06-09 10:23:20

2014-09-04 09:53:43

LinuxDigitalOcea

2010-10-14 09:36:47

MySQL命令行

2014-10-22 12:03:14

Linux嗅探HTTP

2019-01-22 13:46:01

LinuxUnix系統(tǒng)命令行

2014-06-06 10:00:56

命令行監(jiān)控Nginx Web服務(wù)

2021-09-18 09:19:21

Linux

2020-10-31 08:20:39

curl命令命令行互聯(lián)網(wǎng)

2023-08-01 13:31:18

模型Alpacaicuna
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)