這篇文章主要為大家展示了“如何從CLI管理MySQL數(shù)據(jù)庫(kù)”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何從CLI管理MySQL數(shù)據(jù)庫(kù)”這篇文章吧。
創(chuàng)新互聯(lián)建站云計(jì)算的互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)13年的服務(wù)器租用、成都溫江機(jī)房、云服務(wù)器、網(wǎng)頁(yè)空間、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn),已先后獲得國(guó)家工業(yè)和信息化部頒發(fā)的互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)許可證。專業(yè)提供云主機(jī)、網(wǎng)頁(yè)空間、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。在開(kāi)始之前,請(qǐng)確保您具有以下內(nèi)容:
有效的阿里云帳戶。
運(yùn)行操作系統(tǒng)(例如Ubuntu或Centos)和MySQL數(shù)據(jù)庫(kù)服務(wù)器或ApsaraDB for RDS實(shí)例的ECS實(shí)例。您可以選擇這兩種配置中的任何一種。
如果您使用的是ApsaraDB,則使用MySQL主帳戶用戶名和密碼
如果已在ECS實(shí)例上部署MySQL數(shù)據(jù)庫(kù),則具有sudo權(quán)限的非root用戶。
首先,如果要連接到ApsaraDB for RDS,請(qǐng)確保已為計(jì)算機(jī)的IP地址創(chuàng)建了白名單組。
如果您從阿里巴巴ECS實(shí)例運(yùn)行MySQL,則需要使用服務(wù)器的公共IP地址與其進(jìn)行SSH連接。
無(wú)論您的連接方法和產(chǎn)品類型如何(ApsaraDB或帶有MySQL服務(wù)器的ECS實(shí)例),連接到MySQL的基本語(yǔ)法如下所示:
連接到ECS實(shí)例時(shí)的MySQL連接語(yǔ)法:
$ mysql -uroot -p
連接到ApsaraDB for RDS時(shí)的MySQL連接語(yǔ)法:
$ mysql -uroot -h -p
例
$ mysql -uroot -hserver -name .mysql.rds.aliyuncs.com -p
出現(xiàn)提示時(shí)輸入密碼,然后按Enter繼續(xù):
一旦連接到MySQL數(shù)據(jù)庫(kù),就可以執(zhí)行SQL(結(jié)構(gòu)化查詢語(yǔ)言)命令來(lái)管理MySQL實(shí)例,包括創(chuàng)建; 用戶,數(shù)據(jù)庫(kù),表,列/字段。您還可以在任何數(shù)據(jù)庫(kù)表上執(zhí)行CRUD(創(chuàng)建讀取更新和刪除)操作。
您可以運(yùn)行以下命令查看阿里巴巴MySQL服務(wù)器上的可用數(shù)據(jù)庫(kù);
mysql> show databases ;
+ -------------------- +
| 數(shù)據(jù)庫(kù) |
+ -------------------- +
| information_schema |
| mysql |
| performance_schema |
| sys |
+ -------------------- +
4行中 集合(0.01秒)
要在您的阿里巴巴MySQL服務(wù)器上創(chuàng)建數(shù)據(jù)庫(kù),請(qǐng)使用以下命令:
mysql> create database test1;
請(qǐng)記住將“sample2”替換為數(shù)據(jù)庫(kù)的選名稱。
您可以通過(guò)'use'命令在MySQL中從一個(gè)數(shù)據(jù)庫(kù)切換到另一個(gè)數(shù)據(jù)庫(kù)。例如,要切換到上面創(chuàng)建的數(shù)據(jù)庫(kù),請(qǐng)使用以下命令:
mysql> 使用 test1
切換到數(shù)據(jù)庫(kù)后,可以使用以下語(yǔ)法創(chuàng)建表;
mysql> create table (field1數(shù)據(jù)類型,field2數(shù)據(jù)類型)
MySQL支持多種數(shù)據(jù)類型,您可以在此處參考完整列表
您應(yīng)該根據(jù)應(yīng)用程序的需要使用正確的數(shù)據(jù)類型。
例如,要?jiǎng)?chuàng)建一個(gè)名為students的表,其中包含兩個(gè)字段(student_id和student_name),我們可以使用以下語(yǔ)法:
mysql> CREATE TABLE學(xué)生(id INT NOT NULL,student_name VARCHAR(30)NOT NULL);
要查看所選數(shù)據(jù)庫(kù)中的所有表,請(qǐng)使用以下語(yǔ)法:
mysql> show tables ;
+ ----------------- +
| Tables_in_test1 |
+ ----------------- +
| 學(xué)生|
+ ----------------- +
1 行 中 集合(0.01秒)
要獲取上面創(chuàng)建的表的結(jié)構(gòu),可以使用下面的SQL語(yǔ)句;
mysql> 描述學(xué)生;
+ -------------- + ------------- + ------ + ----- + ------- - + ------- +
| 領(lǐng)域 | 輸入| 空 | 鑰匙 | 默認(rèn) | 額外的|
+ -------------- + ------------- + ------ + ----- + ------- - + ------- +
| id | int(11)| 沒(méi)有 | | NULL | |
| student_name | varchar(30)| 沒(méi)有 | | NULL | |
+ -------------- + ------------- + ------ + ----- + ------- - + ------- +
2排在 組(0.02秒)
您可以通過(guò)命令行管理MySQL數(shù)據(jù)庫(kù)表上的記錄。CRUD是Create,Read,Update和Delete的首字母縮寫(xiě)。
要在數(shù)據(jù)庫(kù)表中插入記錄,請(qǐng)使用以下語(yǔ)法:
插入 到 < 表名稱>(列1,列2,欄3),值(column1value,column2value,column3value);
請(qǐng)注意列數(shù)和值應(yīng)匹配。
例如,要在學(xué)生表中插入3個(gè)學(xué)生,我們可以使用以下SQL命令:
的MySQL> 插入 到學(xué)生(ID,student_name)值('1' ,'John Doe的');
查詢 OK,1 行受影響(0.02秒)
的MySQL> 插入 到學(xué)生(ID,student_name)值('2' ,'理查德羅伊');
查詢 OK,1 行受影響(0.01秒)
的MySQL> 插入 到學(xué)生(ID,student_name)值('3' ,'Jane Doe的');
查詢 OK,1 行受影響(0.01秒)
檢索記錄是MySQL CRUD操作的一部分。要讀取記錄,請(qǐng)使用select語(yǔ)句。
mysql> 從表中選擇 column1,column2,..。columnx ;
例如,您可以使用以下命令從student表中檢索所有學(xué)生和所有列:
mysql> select * from students;
+ ---- + -------------- +
| id | student_name |
+ ---- + -------------- +
| 1 | John Doe
| 2 | 理查德羅|
| 3 | Jane Doe |
+ ---- + -------------- +
3排在 組(0.02秒)
有時(shí),您可能只想從表中檢索某些列。例如,要檢索沒(méi)有名字的學(xué)生的ID,我們可以使用以下語(yǔ)法:
mysql> 從學(xué)生中選擇 id ;
+ ---- +
| id |
+ ---- +
| 1 |
| 2 |
| 3 |
+ ---- +
3排在 組(0.01秒)
您可以使用'where'子句在檢索記錄時(shí)過(guò)濾記錄。例如,您可以使用以下語(yǔ)法僅檢索ID為“2”的學(xué)生:
的MySQL> 選擇 * 從學(xué)生其中 ID = '2' ;
+ ---- + -------------- +
| id | student_name |
+ ---- + -------------- +
| 2 | 理查德羅|
+ ---- + -------------- +
1 行 中 集合(0.01秒)
從阿里巴巴MySQL數(shù)據(jù)庫(kù)中檢索記錄時(shí),您可能會(huì)覺(jué)得需要通過(guò)以下語(yǔ)法按升序或降序?qū)λ鼈冞M(jìn)行排序:
mysql> SELECT表達(dá)式FROM 表 [ WHERE條件] ORDER BY表達(dá)式[ ASC | DESC ];
使用上面的學(xué)生表,我們可以按字母順序排列學(xué)生的名字;
mysql> select * from students order by student_name asc ;
+ ---- + -------------- +
| id | student_name |
+ ---- + -------------- +
| 3 | Jane Doe |
| 1 | John Doe
| 2 | 理查德羅|
+ ---- + -------------- +
3排在 組(0.01秒)
在生產(chǎn)環(huán)境中,編輯和更新MySQL記錄是不可避免的。為此,請(qǐng)使用以下命令:
mysql> 更新 table_name SET column1 = value1,column2 = value2 ... WHERE 條件 ;
例如,您可以使用以下SQL命令更新學(xué)生ID“2”并將名稱更改為James Smith:
mysql> 更新學(xué)生設(shè)置 student_name = 'James Smith' ,其中 id = '2' ;
查詢 OK,1 行受影響(0.02秒)
匹配的行數(shù):1 已更改:1 警告:0
如果再次運(yùn)行select語(yǔ)句,您將看到學(xué)生名稱已成功更新:
mysql> select * from students;
+ ---- + -------------- +
| id | student_name |
+ ---- + -------------- +
| 1 | John Doe
| 2 | 詹姆斯史密斯|
| 3 | Jane Doe |
+ ---- + -------------- +
3排在 組(0.02秒)
如果要從表中完全刪除記錄,請(qǐng)使用以下SQL語(yǔ)法:
mysql> 從table_name中刪除 WHERE column = value
例如,您可以使用以下命令刪除ID為3的學(xué)生;
mysql> 從 id = '3'的學(xué)生中刪除 ;
查詢 OK,1 行受影響(0.02秒)
如果您有大量記錄并且想要在單個(gè)命令中擦除整個(gè)表,請(qǐng)使用truncate語(yǔ)句:
mysql> truncate [ 表名]
要?jiǎng)h除學(xué)生表中的所有記錄,請(qǐng)鍵入:
mysql> 截?cái)鄬W(xué)生;
查詢正常,0行受影響(0.02秒)
如果您嘗試再次檢索記錄,MySQL將顯示一個(gè)空集:
mysql> select * from students;
空集(0.02秒)
您可以使用以下語(yǔ)法將列添加到現(xiàn)有表:
mysql> Alter table_name add [ column name] [ data type]
例如,要使用Varchar作為數(shù)據(jù)類型添加名為“class”的列,并將長(zhǎng)度值30添加到學(xué)生的表中,請(qǐng)使用以下命令:
mysql> Alter 表學(xué)生添加類Varchar(30);
查詢正常,0行受影響(0.02秒)
記錄:0重復(fù):0 警告:0
要唯一標(biāo)識(shí)表中的每條記錄,應(yīng)添加主鍵(PK)。您應(yīng)該將它添加到最獨(dú)特的列中,不可能有重復(fù)項(xiàng)。
mysql> Alter 表 添加 主 鍵(column_name);
例如,在我們的學(xué)生表中,id字段是唯一的,因?yàn)闆](méi)有兩個(gè)學(xué)生可以共享相同的標(biāo)識(shí)號(hào)。
mysql> Alter 表學(xué)生添加 主 鍵(id);
查詢正常,0行受影響(0.02秒)
記錄:0重復(fù):0 警告:0
您可以指示MySQL使用“自動(dòng)增量”功能自動(dòng)為列分配序列號(hào)。例如,學(xué)生在入學(xué)時(shí)可以獲得身份證值。這將在數(shù)據(jù)庫(kù)表中添加后自動(dòng)完成。
MySQL自動(dòng)增量具有以下語(yǔ)法:
mysql> Alter table [ table name] 修改 列 [ column name] auto_increment
要將其分配給學(xué)生表,請(qǐng)鍵入以下命令:
Mysql> Alter 表學(xué)生修改 列 id int auto_increment ;
查詢正常,0行受影響(0.02秒)
記錄:0重復(fù):0 警告:0
您可以使用describe語(yǔ)句檢查表的新結(jié)構(gòu)以確認(rèn)更改:
mysql> 描述學(xué)生;
+ -------------- + ------------- + ------ + ----- + ------- - + ---------------- +
| 領(lǐng)域 | 輸入| 空 | 鑰匙 | 默認(rèn) | 額外的|
+ -------------- + ------------- + ------ + ----- + ------- - + ---------------- +
| id | int(11)| 沒(méi)有 | PRI | NULL | auto_increment |
| student_name | varchar(30)| 沒(méi)有 | | NULL | |
| 班級(jí)| varchar(30)| 是的| | NULL | |
+ -------------- + ------------- + ------ + ----- + ------- - + ---------------- +
3排在 組(0.01秒)
刪除MySQL數(shù)據(jù)庫(kù)表
如果您不再需要數(shù)據(jù)庫(kù)中的表,請(qǐng)使用以下命令
mysql> Drop table table_name ;
要從MySQL服務(wù)器中完全刪除數(shù)據(jù)庫(kù),請(qǐng)使用以下命令
mysql> drop database [database_name];
例:
mysql> drop database test1;
請(qǐng)注意:刪除表或數(shù)據(jù)庫(kù)是不可逆轉(zhuǎn)的; 您應(yīng)首先備份數(shù)據(jù)庫(kù)以避免刪除錯(cuò)誤的屬性,尤其是在生產(chǎn)環(huán)境中
您可以管理多個(gè)用戶并根據(jù)您希望他們?cè)跀?shù)據(jù)庫(kù)上執(zhí)行的角色為其分配不同的權(quán)限。
您可以通過(guò)鍵入以下命令查看阿里巴巴MySQL數(shù)據(jù)庫(kù)中的可用用戶
mysql> 從 mysql .user中選擇 用戶,主機(jī);
+ ----------------- + -------------- +
| 用戶 | 主持人|
+ ----------------- + -------------- +
| 極光| %|
| aurora_proxy | %|
| 根| %|
| _rds_outer_user | 127.0。0.1 |
| aliyun_root | 127.0。0.1 |
| mysql .session | localhost |
+ ----------------- + -------------- +
6行中 集合(0.01秒)
要?jiǎng)?chuàng)建MySQL數(shù)據(jù)庫(kù)用戶,請(qǐng)使用以下語(yǔ)法:
mysql> 創(chuàng)建 用戶 '[用戶名]'' '[主機(jī)名]'由'PASSWORD'標(biāo)識(shí) ;
請(qǐng)記住將“示例”替換為您的用戶名,并使用強(qiáng)大的密碼值。
mysql> 創(chuàng)建 'PASSWORD'標(biāo)識(shí)的用戶 'example_user' @'localhost' ;
如果您希望用戶從任何主機(jī)進(jìn)行連接,請(qǐng)使用'%'代替localhost。例如;
mysql> 創(chuàng)建 'PASSWORD'標(biāo)識(shí)的用戶 'example_user' @'%' ;
權(quán)限是允許用戶在數(shù)據(jù)庫(kù)表中執(zhí)行某些任務(wù)的權(quán)限。要為用戶分配權(quán)限,請(qǐng)使用以下語(yǔ)法:
mysql> GRANT < privileges > ONTO user_name @' ' ;
mysql> FLUSH PRIVILEGES ;
您可以使用逗號(hào)組合多個(gè)權(quán)限,例如
mysql> GRANT 選擇,插入,刪除 ON TO user_name @'' ;
要為用戶分配所有權(quán)限,請(qǐng)使用以下語(yǔ)法:
mysql> GRANT ALL ON *。* TO '[username]' @'[hostname]' ;
mysql> FLUSH PRIVILEGES ;
要將MySQL用戶的權(quán)限分配給特定數(shù)據(jù)庫(kù),請(qǐng)使用以下語(yǔ)法:
mysql> GRANT ALL ON。* TO '[username]' @'[hostname]' ;
mysql> FLUSH PRIVILEGES ;
要查看分配給用戶的授予權(quán)限,請(qǐng)使用以下語(yǔ)法:
的MySQL> 顯示 補(bǔ)助 為 [用戶名]
例:
mysql> show grants for root;
| 資助 的根@%
| GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,RELOAD,PROCESS,REFERENCES,INDEX,ALTER,CREATE TEMATEARY TABLES,LOCK TABLES,EXECUTE,REPLICATION SLAVE,REPLICATION CLIENT,CREATE VIEW,SHOW VIEW,CREATE ROUTINE,ALTER ROUTINE,創(chuàng)建 用戶,事件,TRIGGER ON *。* TO '根' @ '%' WITH GRANT OPTION |
+ - 1 行 中 集合(0.01秒)
如果您錯(cuò)誤地分配了權(quán)限,或者您不再希望用戶在MySQL服務(wù)器上執(zhí)行某些任務(wù),則可以隨時(shí)撤銷MySQL用戶的權(quán)限。為此,請(qǐng)使用以下命令:
mysql> 從'[username]' ''[hostname]' 撤銷 *。* 上的 [權(quán)限] ;
您可以通過(guò)用逗號(hào)分隔多個(gè)權(quán)限來(lái)撤消它們:
的MySQL> 撤銷 選擇,插入,刪除 上 從 '[用戶名]' @ '[主機(jī)名]' ;
要撤消所有權(quán)限,請(qǐng)使用以下語(yǔ)法:
MySQL的> 撤消 所有 權(quán)限 上 *。* 從 '[用戶名]' @ '[主機(jī)名]' ;
例
mysql> 從'example_user' @'%' 撤消 對(duì) sample2。*的所有 權(quán)限 。
mysql> drop user '[username]' @'[hostname]' ;
例:
mysql> 刪除 用戶 'example_user' @'%' ;
以上是“如何從CLI管理MySQL數(shù)據(jù)庫(kù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!