中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MariaDB創建,更改,刪除數據庫命令

發布時間:2020-06-07 09:30:03 來源:網絡 閱讀:3250 作者:喵來個魚 欄目:MySQL數據庫
創建新的MySQL數據庫
創建具有特定字符集的MySQL數據庫(UTF8)
刪除現有的MySQL數據庫
僅在不存在的情況下創建MySQL數據庫
僅當存在MySQL數據庫時才會丟失
更改db.opt的數據庫特性
升級數據目錄選項進行遷移和編碼

1.創建新的MySQL數據庫

要創建一個MariaDB數據庫,請使用create database命令,如下所示。

以下將創建一個名為“study”的數據庫。

MariaDB [(none)]> CREATE DATABASE study;
Query OK, 1 row affected (0.00 sec)

如果您有Oracle數據庫的背景信息,請不要在這里混淆術語“database”。

當我們在MySQL中創建一個“database”時,我們實際上正在創建一個“schema”。但是在MySQL和MariaDB世界中,它被真正稱為“database”而不是“schema”。

但是由于某些原因,如果您愿意,還可以使用以下“create schema”命令來創建數據庫。創建模式只不過是創建數據庫的同義詞,以下命令與上述create database完全相同。

MariaDB [(none)]> CREATE SCHEMA study;

請注意,只有擁有數據庫CREATE權限的用戶才能執行上述命令。

在典型的情況下,您將以root身份登錄到mysql并執行上述create database命令。

#mysql -u root -pMySecretPWD

CREATE DATABASE創建一個具有給定名稱的數據庫。要使用此語句,您需要數據庫的CREATE權限。CREATE SCHEMA是CREATE DATABASE的同義詞。如果你是MySQL的新手,這將解釋如何在Linux上安裝MySQL MariaDB。

2.創建具有特定字符集(UTF8)的MySQL數據庫

創建新數據庫時,創建數據庫將使用系統中的任何默認字符集,但是,如果您確切地知道您想要的字符集,則可以在數據庫創建過程中指定它們,如下所示。在下面的示例中,我們正在使用“utf8”字符集創建一個名為“boys”的mariadb數據庫。這里我們也指定了整理和字符集。

MariaDB [(none)]> CREATE DATABASE boys CHARACTER SET = utf8 COLLATE = utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

如果您想查看系統上的所有可用字符集,請使用以下show character set命令。

MariaDB [(none)]> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
| dec8     | DEC West European           | dec8_swedish_ci     |      1 |
| cp850    | DOS West European           | cp850_general_ci    |      1 |
| hp8      | HP West European            | hp8_english_ci      |      1 |
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |
| latin1   | cp1252 West European        | latin1_swedish_ci   |      1 |
| latin2   | ISO 8859-2 Central European | latin2_general_ci   |      1 |
..
..
| utf8     | UTF-8 Unicode               | utf8_general_ci     |      3 |

在創建數據庫中指定字符集時,此信息將存儲在該特定數據庫的db.opt文件中。

例如,對于“boys”數據庫,此db.opt文件將位于/ var / lib / mysql / boys目錄下,如下所示。

# cat /var/lib/mysql/boys/db.opt 
default-character-set=utf8
default-collation=utf8_general_ci

創建數據庫后,可以在MySQL數據庫中創建表。

3.刪除現有的MySQL數據庫

要從系統中刪除現有的mysql數據庫,請使用drop database命令,如下所示。

以下將刪除“study”數據庫。

MariaDB [(none)]> DROP DATABASE study;

請記住:

這是一個危險的命令,因為這將刪除數據庫中的所有表以及數據,然后刪除數據庫本身。要執行此命令,您將需要DROP特權對數據庫。另外,類似于創建數據庫和創建模式,您還可以使用drop database和drop schema。

以下兩個命令完全相同。

MariaDB [(none)]> DROP DATABASE study;
MariaDB [(none)]> DROP SCHEMA study;

刪除數據庫后,執行show數據庫,以確保不再列出數據庫。

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+

當您刪除數據庫時,還將從/ var / lib / mysql文件夾中刪除數據庫目錄以及包含db.opt的所有文件,如下所示。

# ls -l /var/lib/mysql/study/
ls: cannot access /var/lib/mysql/study/: No such file or directory

要記住的一件事是,如果您已經在數據庫目錄(即/ var / lib / mysql / study)下手動創建了一些文件,則上述drop database命令將不會刪除您的自定義文件或數據庫目錄本身。但是,它將刪除由mysql服務器本身創建的所有其他文件,包括表文件等。在相關的注釋中,如果您創建了任何TEMPORARY表,則不會刪除它們。但是,當創建的特定會話結束時,它們將被自動刪除。


4.如果不存在,請創建MySQL數據庫


如下所示,默認情況下,創建數據庫命令將在您嘗試創建已存在的數據庫時失敗。

MariaDB [(none)]> CREATE DATABASE study;
ERROR 1007 (HY000): Can't create database 'study'; database exists

如果您只是在命令行上執行此操作,那么可能會很好,因為您可以暗示忽略并繼續前進。但是,如果您在腳本中執行此操作,該腳本將從SQL命令檢查任何錯誤消息并存在腳本,那么我們有一個問題。

在這種情況下,請使用“if not exists”子句以及create database,如下所示。

MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS study;
Query OK, 1 row affected, 1 warning (0.00 sec)

這將僅在數據庫不存在時創建數據庫。但是,當數據庫存在時,它不會拋出任何錯誤消息。

5.如果存在,請丟棄MySQL數據庫

DROP DATABASE IF EXISTS study;  //如果存在,請丟棄MySQL數據庫
DROP SCHEMA IF EXISTS study;    //如果存在,請丟棄MySQL數據庫

當您嘗試刪除不存在的數據庫時,將收到以下錯誤消息。

MariaDB [none]> DROP DATABASE study;
ERROR 1008 (HY000): Can't drop database 'study'; database doesn't exist

當您從命令行進行交互式操作時,可能會出現這種情況。但是,如果從自動化腳本執行drop命令,并且不會看到錯誤消息,那么可能會停止腳本,然后使用IF EXISTS子句,如下所示。

MariaDB [none]> DROP DATABASE IF EXISTS study;
Query OK, 0 rows affected, 1 warning (0.00 sec)

與上述命令相同的行為,但不返回任何錯誤消息。

6.更改db.opt的數據庫特性

使用alter database命令,可以更改數據庫的某些特性。通常,您將使用它來更改在db.opt文件中設置的數據庫選項。例如,這里我們將db.opt中的study數據庫的字符集定義為LATIN

# cat /var/lib/mysql/study/db.opt 
default-character-set=latin1
default-collation=latin1_swedish_ci
..

現在,要將其更改為UTF8,我們可以使用alter database命令,如下所示。

MariaDB [(none)]> ALTER DATABASE study CHARACTER SET = utf8 COLLATE = utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

任何時候執行ALTER數據庫命令,您將看到更新的值反映在db.opt文件中,如下所示。

# cat /var/lib/mysql/study/db.opt 

default-character-set=utf8

default-collation=utf8_general_ci

要執行alter database命令,您將看到數據庫上的ALTER特權。

就像創建和刪除一樣,你也可以使用“schema”。以下兩個完全一樣,ALTER SCHEMA只是alter database的同義詞。

ALTER DATABASE study CHARACTER SET = utf8 COLLATE = utf8_general_ci;
ALTER SCHEMA study CHARACTER SET = utf8 COLLATE = utf8_general_ci;

另外,請注意,如果您已經在數據庫中,可以在“ALTER”命令中省略數據庫名稱,如下所示。

MariaDB [(none)]> USE study;
MariaDB [study]> ALTER DATABASE CHARACTER SET = utf8 COLLATE = utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

正如你在這里看到的,我用了改變數據庫。所以,在我的ALTER DATABASE中,我沒有指定數據庫名稱。

7.升級遷移和編碼的數據目錄選項

如果您正在運行MySQL數據庫的更改版本(5.1之前),并嘗試升級到5.1或更高版本的MySQL / MariaDB版本,則需要執行此操作。具有“升級數據目錄名稱”選項的以下命令將使用與MySQL 5.1或更高版本相匹配的適當編碼實現來更新數據庫目錄的名稱。這將確保數據庫名稱和數據庫目錄映射正確,名稱中沒有任何編碼問題。

再次,只有當您從舊版本的MySQL升級到5.1或更高版本時,才會使用此功能。當您在數據庫名稱中具有特殊字符時,如下所示,數據庫名稱中具有連字號(即,-ekek-東東)。

另外,請注意,“#mysql11#”是應該使用的關鍵字,后跟數據庫名稱。

ALTER DATABASE `#mysql11#study-boys` UPGRADE DATA DIRECTORY NAME;

在這個例子中,上面的命令會將數據庫名稱正確地編碼為“@ 002dstudy @ 002dboys”,它將使用@ 002d作為數據庫名稱中的破折號特殊字符。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

祁东县| 绥中县| 茶陵县| 台前县| 家居| 金门县| 淮南市| 化州市| 徐闻县| 保德县| 旬邑县| 独山县| 翼城县| 宣威市| 镇赉县| 东乌珠穆沁旗| 太和县| 同德县| 汝州市| 吉木乃县| 河池市| 南开区| 会同县| 加查县| 龙江县| 雅安市| 日喀则市| 故城县| 寿宁县| 九江市| 云梦县| 应城市| 赤壁市| 嫩江县| 黑河市| 永济市| 昌黎县| 泸西县| 武陟县| 西青区| 常德市|