这篇文章主要为大家展示了“如何从CLI管理MySQL数据库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何从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>showdatabases;

+--------------------+

|数据库|

+--------------------+

|information_schema|

|mysql|

|performance_schema|

|sys|

+--------------------+

4行中集合(0.01秒)MySQL创建数据库命令

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

mysql>createdatabasetest1;

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

在MySQL中切换数据库

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

mysql>使用test1MySQL创建表命令

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

mysql>createtable(field1数据类型,field2数据类型)

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

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

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

mysql>CREATETABLE学生(idINTNOTNULL,student_nameVARCHAR(30)NOTNULL);MySQL Show Tables命令

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

mysql>showtables;

+-----------------+

|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','JohnDoe的');

查询OK,1行受影响(0.02秒)

的MySQL>插入到学生(ID,student_name)值('2','理查德罗伊');

查询OK,1行受影响(0.01秒)

的MySQL>插入到学生(ID,student_name)值('3','JaneDoe的');

查询OK,1行受影响(0.01秒)从MySQL表中检索记录

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

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

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

mysql>select*fromstudents;

+----+--------------+

|id|student_name|

+----+--------------+

|1|JohnDoe

|2|理查德罗|

|3|JaneDoe|

+----+--------------+

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条件]ORDERBY表达式[ASC|DESC];

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

mysql>select*fromstudentsorderbystudent_nameasc;

+----+--------------+

|id|student_name|

+----+--------------+

|3|JaneDoe|

|1|JohnDoe

|2|理查德罗|

+----+--------------+

3排在组(0.01秒)编辑和更新MySQL记录

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

mysql>更新table_nameSETcolumn1=value1,column2=value2...WHERE条件;

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

mysql>更新学生设置student_name='JamesSmith',其中id='2';

查询OK,1行受影响(0.02秒)

匹配的行数:1已更改:1警告:0

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

mysql>select*fromstudents;

+----+--------------+

|id|student_name|

+----+--------------+

|1|JohnDoe

|2|詹姆斯史密斯|

|3|JaneDoe|

+----+--------------+

3排在组(0.02秒)从MySQL删除表记录

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

mysql>从table_name中删除WHEREcolumn=value

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

mysql>从id='3'的学生中删除;

查询OK,1行受影响(0.02秒)从MySQL表中删除所有记录

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

mysql>truncate[表名]

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

mysql>截断学生;

查询正常,0行受影响(0.02秒)

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

mysql>select*fromstudents;

空集(0.02秒)修改MySQL表中的列

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

mysql>Altertable_nameadd[columnname][datatype]

例如,要使用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警告:0MySQL自动增量字段

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

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

mysql>Altertable[tablename]修改列[columnname]auto_increment

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

Mysql>Alter表学生修改列idintauto_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>Droptabletable_name;删除数据库

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

mysql>dropdatabase[database_name];

例:

mysql>dropdatabasetest1;

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

第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>TOuser_name@'<hostname>';

mysql>FLUSHPRIVILEGES;

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

mysql>GRANT选择,插入,删除ONTOuser_name@'';

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

mysql>GRANTALLON*。*TO'[username]'@'[hostname]';

mysql>FLUSHPRIVILEGES;

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

mysql>GRANTALLON<database_name>。*TO'[username]'@'[hostname]';

mysql>FLUSHPRIVILEGES;在MySQL上查看用户授予的权限

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

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

例:

mysql>showgrantsforroot;


|资助的根@%

|GRANTSELECT,INSERT,UPDATE,DELETE,CREATE,DROP,RELOAD,PROCESS,REFERENCES,INDEX,ALTER,CREATETEMATEARYTABLES,LOCKTABLES,EXECUTE,REPLICATIONSLAVE,REPLICATIONCLIENT,CREATEVIEW,SHOWVIEW,CREATEROUTINE,ALTERROUTINE,创建用户,事件,TRIGGERON*。*TO'根'@'%'WITHGRANTOPTION|

+-1行中集合(0.01秒)撤销MySQL用户的权限

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

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

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

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

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

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

mysql>从'example_user'@'%'撤消对sample2。*的所有权限。删除MySQL用户

mysql>dropuser'[username]'@'[hostname]';

例:

mysql>删除用户'example_user'@'%';

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