这篇文章主要为大家展示了“如何从CLI管理MySQL数据库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何从CLI管理MySQL数据库”这篇文章吧。
在开始之前,请确保您具有以下内容:
有效的阿里云帐户。
运行操作系统(例如Ubuntu或Centos)和MySQL数据库服务器或ApsaraDB for RDS实例的ECS实例。您可以选择这两种配置中的任何一种。
如果您使用的是ApsaraDB,则使用MySQL主帐户用户名和密码
如果已在ECS实例上部署MySQL数据库,则具有sudo权限的非root用户。
首先,如果要连接到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继续:
一旦连接到MySQL数据库,就可以执行SQL(结构化查询语言)命令来管理MySQL实例,包括创建; 用户,数据库,表,列/字段。您还可以在任何数据库表上执行CRUD(创建读取更新和删除)操作。
您可以运行以下命令查看阿里巴巴MySQL服务器上的可用数据库;
mysql> show databases ;
+ -------------------- +
| 数据库 |
+ -------------------- +
| information_schema |
| mysql |
| performance_schema |
| sys |
+ -------------------- +
4行中 集合(0.01秒)
要在您的阿里巴巴MySQL服务器上创建数据库,请使用以下命令:
mysql> create database test1;
请记住将“sample2”替换为数据库的首选名称。
您可以通过'use'命令在MySQL中从一个数据库切换到另一个数据库。例如,要切换到上面创建的数据库,请使用以下命令:
mysql> 使用 test1
切换到数据库后,可以使用以下语法创建表;
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 ;
+ ----------------- +
| Tables_in_test1 |
+ ----------------- +
| 学生|
+ ----------------- +
1 行 中 集合(0.01秒)
要获取上面创建的表的结构,可以使用下面的SQL语句;
mysql> 描述学生;
+ -------------- + ------------- + ------ + ----- + ------- - + ------- +
| 领域 | 输入| 空 | 钥匙 | 默认 | 额外的|
+ -------------- + ------------- + ------ + ----- + ------- - + ------- +
| id | int(11)| 没有 | | NULL | |
| student_name | varchar(30)| 没有 | | NULL | |
+ -------------- + ------------- + ------ + ----- + ------- - + ------- +
2排在 组(0.02秒)
您可以通过命令行管理MySQL数据库表上的记录。CRUD是Create,Read,Update和Delete的首字母缩写。
要在数据库表中插入记录,请使用以下语法:
插入 到 < 表名称>(列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 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> 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> 更新 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秒)
如果要从表中完全删除记录,请使用以下SQL语法:
mysql> 从table_name中删除 WHERE column = value
例如,您可以使用以下命令删除ID为3的学生;
mysql> 从 id = '3'的学生中删除 ;
查询 OK,1 行受影响(0.02秒)
如果您有大量记录并且想要在单个命令中擦除整个表,请使用truncate语句:
mysql> truncate [ 表名]
要删除学生表中的所有记录,请键入:
mysql> 截断学生;
查询正常,0行受影响(0.02秒)
如果您尝试再次检索记录,MySQL将显示一个空集:
mysql> select * from students;
空集(0.02秒)
您可以使用以下语法将列添加到现有表:
mysql> Alter table_name add [ column name] [ data type]
例如,要使用Varchar作为数据类型添加名为“class”的列,并将长度值30添加到学生的表中,请使用以下命令:
mysql> Alter 表学生添加类Varchar(30);
查询正常,0行受影响(0.02秒)
记录:0重复:0 警告:0
要唯一标识表中的每条记录,应添加主键(PK)。您应该将它添加到最独特的列中,不可能有重复项。
mysql> Alter 表 添加 主 键(column_name);
例如,在我们的学生表中,id字段是唯一的,因为没有两个学生可以共享相同的标识号。
mysql> Alter 表学生添加 主 键(id);
查询正常,0行受影响(0.02秒)
记录:0重复:0 警告:0
您可以指示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;
请注意:删除表或数据库是不可逆转的; 您应首先备份数据库以避免删除错误的属性,尤其是在生产环境中
您可以管理多个用户并根据您希望他们在数据库上执行的角色为其分配不同的权限。
您可以通过键入以下命令查看阿里巴巴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> 创建 用户 '[用户名]'' '[主机名]'由'PASSWORD'标识 ;
请记住将“示例”替换为您的用户名,并使用强大的密码值。
mysql> 创建 'PASSWORD'标识的用户 'example_user' @'localhost' ;
如果您希望用户从任何主机进行连接,请使用'%'代替localhost。例如;
mysql> 创建 'PASSWORD'标识的用户 'example_user' @'%' ;
权限是允许用户在数据库表中执行某些任务的权限。要为用户分配权限,请使用以下语法:
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> 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> 从'[username]' ''[hostname]' 撤销 *。* 上的 [权限] ;
您可以通过用逗号分隔多个权限来撤消它们:
的MySQL> 撤销 选择,插入,删除 上 从 '[用户名]' @ '[主机名]' ;
要撤消所有权限,请使用以下语法:
MySQL的> 撤消 所有 权限 上 *。* 从 '[用户名]' @ '[主机名]' ;
例
mysql> 从'example_user' @'%' 撤消 对 sample2。*的所有 权限 。
mysql> drop user '[username]' @'[hostname]' ;
例:
mysql> 删除 用户 'example_user' @'%' ;
以上是“如何从CLI管理MySQL数据库”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。