如何从CLI管理MySQL数据库

59次阅读
没有评论

共计 7215 个字符,预计需要花费 19 分钟才能阅读完成。

这篇文章主要为大家展示了“如何从 CLI 管理 MySQL 数据库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“如何从 CLI 管理 MySQL 数据库”这篇文章吧。

先决条件

在开始之前,请确保您具有以下内容:

有效的阿里云帐户。

运行操作系统(例如 Ubuntu 或 Centos)和 MySQL 数据库服务器或 ApsaraDB for RDS 实例的 ECS 实例。您可以选择这两种配置中的任何一种。

如果您使用的是 ApsaraDB,则使用 MySQL 主帐户用户名和密码

如果已在 ECS 实例上部署 MySQL 数据库,则具有 sudo 权限的非 root 用户。

第 1 步:连接到您的 MySQL 实例

首先,如果要连接到 ApsaraDB for RDS,请确保已为计算机的 IP 地址创建了白名单组。

如果您从阿里巴巴 ECS 实例运行 MySQL,则需要使用服务器的公共 IP 地址与其进行 SSH 连接。

无论您的连接方法和产品类型如何(ApsaraDB 或带有 MySQL 服务器的 ECS 实例),连接到 MySQL 的基本语法如下所示:

连接到 ECS 实例时的 MySQL 连接语法:

$ mysql -uroot -p

连接到 ApsaraDB for RDS 时的 MySQL 连接语法:

$ mysql -uroot -h -p

$ mysql -uroot -hserver -name .mysql.rds.aliyuncs.com -p

出现提示时输入密码,然后按 Enter 继续:

第 2 步:在命令行上管理 MySQL 数据库

一旦连接到 MySQL 数据库,就可以执行 SQL(结构化查询语言)命令来管理 MySQL 实例,包括创建;  用户,数据库,表,列 / 字段。您还可以在任何数据库表上执行 CRUD(创建读取更新和删除)操作。

MySQL 显示数据库命令

您可以运行以下命令查看阿里巴巴 MySQL 服务器上的可用数据库;

mysql  show databases ;
+ -------------------- +
|  数据库  |
+ -------------------- +
| information_schema |
| mysql |
| performance_schema |
| sys |
+ -------------------- +
 4 行中   集合(0.01 秒)

MySQL 创建数据库命令

要在您的阿里巴巴 MySQL 服务器上创建数据库,请使用以下命令:

mysql  create database test1;

请记住将“sample2”替换为数据库的首选名称。

在 MySQL 中切换数据库

您可以通过 use 命令在 MySQL 中从一个数据库切换到另一个数据库。例如,要切换到上面创建的数据库,请使用以下命令:

mysql   使用  test1

MySQL 创建表命令

切换到数据库后,可以使用以下语法创建表;

mysql  create table (field1 数据类型,field2 数据类型)

MySQL 支持多种数据类型,您可以在此处参考完整列表

您应该根据应用程序的需要使用正确的数据类型。

例如,要创建一个名为 students 的表,其中包含两个字段(student_id 和 student_name),我们可以使用以下语法:

mysql  CREATE TABLE 学生(id INT NOT NULL,student_name VARCHAR(30)NOT NULL);

MySQL Show Tables 命令

要查看所选数据库中的所有表,请使用以下语法:

mysql  show tables ;
+ ----------------- +
| Tables_in_test1 |
+ ----------------- +
|  学生 |
+ ----------------- +
1  行   中   集合(0.01 秒)

MySQL 描述表命令

要获取上面创建的表的结构,可以使用下面的 SQL 语句;

mysql   描述学生;
+ -------------- + ------------- + ------ + ----- + ------- - + ------- +
|  领域  |  输入 |  空  |  钥匙  |  默认  |  额外的 |
+ -------------- + ------------- + ------ + ----- + ------- - + ------- +
| id | int(11)|  没有  | | NULL | |
| student_name | varchar(30)|  没有  | | NULL | |
+ -------------- + ------------- + ------ + ----- + ------- - + ------- +
 2 排在   组(0.02 秒)

第 3 步:MySQL CRUD 操作

您可以通过命令行管理 MySQL 数据库表上的记录。CRUD 是 Create,Read,Update 和 Delete 的首字母缩写。

在 MySQL 表中创建记录

要在数据库表中插入记录,请使用以下语法:

 插入   到     表名称(列 1,列 2,栏 3),值(column1value,column2value,column3value);

请注意列数和值应匹配。

例如,要在学生表中插入 3 个学生,我们可以使用以下 SQL 命令:

 的 MySQL   插入   到学生(ID,student_name)值(1  ,John Doe 的 
 查询  OK,1  行受影响(0.02 秒)
 的 MySQL   插入   到学生(ID,student_name)值(2  ,理查德罗伊 
 查询  OK,1  行受影响(0.01 秒)
 的 MySQL   插入   到学生(ID,student_name)值(3  ,Jane Doe 的 
 查询  OK,1  行受影响(0.01 秒)

从 MySQL 表中检索记录

检索记录是 MySQL CRUD 操作的一部分。要读取记录,请使用 select 语句。

mysql   从表中选择  column1,column2,..。columnx ;

例如,您可以使用以下命令从 student 表中检索所有学生和所有列:

mysql  select * from students;
+ ---- + -------------- +
| id | student_name |
+ ---- + -------------- +
| 1 | John Doe
| 2 |  理查德罗 |
| 3 | Jane Doe |
+ ---- + -------------- +
 3 排在   组(0.02 秒)

有时,您可能只想从表中检索某些列。例如,要检索没有名字的学生的 ID,我们可以使用以下语法:

mysql   从学生中选择  id ;
+ ---- +
| id |
+ ---- +
| 1 |
| 2 |
| 3 |
+ ---- +
 3 排在   组(0.01 秒)

过滤记录

您可以使用 where 子句在检索记录时过滤记录。例如,您可以使用以下语法仅检索 ID 为“2”的学生:

 的 MySQL   选择  *  从学生其中  ID =  2  ;
+ ---- + -------------- +
| id | student_name |
+ ---- + -------------- +
| 2 |  理查德罗 |
+ ---- + -------------- +
1  行   中   集合(0.01 秒)

按升序或降序排序 MySQL 记录

从阿里巴巴 MySQL 数据库中检索记录时,您可能会觉得需要通过以下语法按升序或降序对它们进行排序:

mysql  SELECT 表达式 FROM  表  [ WHERE 条件] ORDER BY 表达式 [ ASC | DESC ];

使用上面的学生表,我们可以按字母顺序排列学生的名字;

mysql  select * from students order by student_name asc ;
+ ---- + -------------- +
| id | student_name |
+ ---- + -------------- +
| 3 | Jane Doe |
| 1 | John Doe
| 2 |  理查德罗 |
+ ---- + -------------- +
 3 排在   组(0.01 秒)

编辑和更新 MySQL 记录

在生产环境中,编辑和更新 MySQL 记录是不可避免的。为此,请使用以下命令:

mysql   更新  table_name SET column1 = value1,column2 = value2 ... WHERE  条件  ;

例如,您可以使用以下 SQL 命令更新学生 ID“2”并将名称更改为 James Smith:

mysql   更新学生设置  student_name =  James Smith  ,其中  id =  2  ;
 查询  OK,1  行受影响(0.02 秒)
 匹配的行数:1  已更改:1  警告:0

如果再次运行 select 语句,您将看到学生名称已成功更新:

mysql  select * from students;
+ ---- + -------------- +
| id | student_name |
+ ---- + -------------- +
| 1 | John Doe
| 2 |  詹姆斯史密斯 |
| 3 | Jane Doe |
+ ---- + -------------- +
 3 排在   组(0.02 秒)

从 MySQL 删除表记录

如果要从表中完全删除记录,请使用以下 SQL 语法:

mysql   从 table_name 中删除  WHERE column = value

例如,您可以使用以下命令删除 ID 为 3 的学生;

mysql   从  id =  3 的学生中删除  ;
 查询  OK,1  行受影响(0.02 秒)

从 MySQL 表中删除所有记录

如果您有大量记录并且想要在单个命令中擦除整个表,请使用 truncate 语句:

mysql  truncate [  表名]

要删除学生表中的所有记录,请键入:

mysql   截断学生;
 查询正常,0 行受影响(0.02 秒)

如果您尝试再次检索记录,MySQL 将显示一个空集:

mysql  select * from students;
 空集(0.02 秒)

修改 MySQL 表中的列

您可以使用以下语法将列添加到现有表:

mysql  Alter table_name add [ column name] [ data type]

例如,要使用 Varchar 作为数据类型添加名为“class”的列,并将长度值 30 添加到学生的表中,请使用以下命令:

mysql  Alter  表学生添加类 Varchar(30);
 查询正常,0 行受影响(0.02 秒)
 记录:0 重复:0  警告:0

将主键添加到 MySQL 表

要唯一标识表中的每条记录,应添加主键(PK)。您应该将它添加到最独特的列中,不可能有重复项。

mysql  Alter  表   添加   主   键(column_name);

例如,在我们的学生表中,id 字段是唯一的,因为没有两个学生可以共享相同的标识号。

mysql  Alter  表学生添加   主   键(id);
 查询正常,0 行受影响(0.02 秒)
 记录:0 重复:0  警告:0

MySQL 自动增量字段

您可以指示 MySQL 使用“自动增量”功能自动为列分配序列号。例如,学生在入学时可以获得身份证值。这将在数据库表中添加后自动完成。

MySQL 自动增量具有以下语法:

mysql  Alter table [ table name]  修改   列  [ column name] auto_increment

要将其分配给学生表,请键入以下命令:

Mysql  Alter  表学生修改   列  id int auto_increment ;
 查询正常,0 行受影响(0.02 秒)
 记录:0 重复:0  警告:0

您可以使用 describe 语句检查表的新结构以确认更改:

mysql   描述学生;
+ -------------- + ------------- + ------ + ----- + ------- - + ---------------- +
|  领域  |  输入 |  空  |  钥匙  |  默认  |  额外的 |
+ -------------- + ------------- + ------ + ----- + ------- - + ---------------- +
| id | int(11)|  没有  | PRI | NULL | auto_increment |
| student_name | varchar(30)|  没有  | | NULL | |
|  班级 | varchar(30)|  是的 | | NULL | |
+ -------------- + ------------- + ------ + ----- + ------- - + ---------------- +
 3 排在   组(0.01 秒)

删除 MySQL 数据库表

如果您不再需要数据库中的表,请使用以下命令

mysql  Drop table table_name ;

删除数据库

要从 MySQL 服务器中完全删除数据库,请使用以下命令

mysql  drop database [database_name];

例:

mysql  drop database test1;

请注意:删除表或数据库是不可逆转的;  您应首先备份数据库以避免删除错误的属性,尤其是在生产环境中

第 4 步:管理 MySQL 数据库用户

您可以管理多个用户并根据您希望他们在数据库上执行的角色为其分配不同的权限。

列出 MySQL 数据库用户

您可以通过键入以下命令查看阿里巴巴 MySQL 数据库中的可用用户

mysql   从  mysql .user 中选择   用户,主机;
+ ----------------- + -------------- +
|  用户  |  主持人 |
+ ----------------- + -------------- +
|  极光 | %|
| aurora_proxy | %|
|  根 | %|
| _rds_outer_user | 127.0。0.1 |
| aliyun_root | 127.0。0.1 |
| mysql .session | localhost |
+ ----------------- + -------------- +
 6 行中   集合(0.01 秒)

创建 MySQL 数据库用户

要创建 MySQL 数据库用户,请使用以下语法:

mysql   创建   用户   [用户名]   [主机名] 由 PASSWORD 标识  ;

请记住将“示例”替换为您的用户名,并使用强大的密码值。

mysql   创建   PASSWORD 标识的用户   example_user  @ localhost  ;

如果您希望用户从任何主机进行连接,请使用 % 代替 localhost。例如;

mysql   创建   PASSWORD 标识的用户   example_user  @ %  ;

为 MySQL 用户分配权限

权限是允许用户在数据库表中执行某些任务的权限。要为用户分配权限,请使用以下语法:

mysql  GRANT   privileges   ON  property  TO user_name @ hostname  ;
mysql  FLUSH PRIVILEGES ;

您可以使用逗号组合多个权限,例如

mysql  GRANT  选择,插入,删除  ON TO user_name @  ;

要为用户分配所有权限,请使用以下语法:

mysql  GRANT ALL ON *。* TO  [username]  @ [hostname]  ;
mysql  FLUSH PRIVILEGES ;

要将 MySQL 用户的权限分配给特定数据库,请使用以下语法:

mysql  GRANT ALL ON  database_name。* TO  [username]  @ [hostname]  ;
mysql  FLUSH PRIVILEGES ;

在 MySQL 上查看用户授予的权限

要查看分配给用户的授予权限,请使用以下语法:

 的 MySQL   显示   补助   为  [用户名]

例:

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,创建   用户,事件,TRIGGER ON *。* TO  根  @  %  WITH GRANT OPTION |
+ - 1  行   中   集合(0.01 秒)

撤销 MySQL 用户的权限

如果您错误地分配了权限,或者您不再希望用户在 MySQL 服务器上执行某些任务,则可以随时撤销 MySQL 用户的权限。为此,请使用以下命令:

mysql   从 [username]   [hostname]   撤销  *。*  上的  [权限] ;

您可以通过用逗号分隔多个权限来撤消它们:

 的 MySQL   撤销   选择,插入,删除   上   从   [用户名]  @  [主机名]  ;

要撤消所有权限,请使用以下语法:

MySQL 的   撤消   所有   权限   上  *。*  从   [用户名]  @  [主机名]  ;

mysql   从 example_user  @ %   撤消   对  sample2。* 的所有   权限  。

删除 MySQL 用户

mysql  drop user  [username]  @ [hostname]  ;

例:

mysql   删除   用户   example_user  @ %  ;

以上是“如何从 CLI 管理 MySQL 数据库”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计7215字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)