Linux——MySQL数据库的使用

访问MySQL数据库

        MySOL数据库系统也是一个典型的C/S(客户端/服务器)架构的应用,要访问MySOL数据库 需要使用专门的客户端软件,在Linux系统中,最简单、易用的MySQL.客户端软件是其自带的mysql 命令工具。

  • 登录到MySQL服务器

经过安装后的初始化过程,MySOL数据库的默认管理员用户名为root,密码为空.

可以执行以下操作:

在有密码的情况下,还可以使用'-p'选项来进行密码效验。

  • 执行MySQL操作语句

验证成功以后将会进入提示符为‘mysql>”的数据库操作环境,用户可以输入各种操作语句对 数据库进行管理.

每条MySQL操作语句以分号 ‘;’ 表示结束,输入时可以不区分大小写。

status; 查看当前数据库服务的基本信息

show databases; 用于查看当前MySOL服务器中包含的库,经初始化后的MySOL服务器,默认建立了四个库:test.mysql.information_schema和performance_schema(其中mysql库是mysql 正常运行所需的库,其中包含了用户认证相关的表),

执行show databases;可以进行查看到

show tables;用于查看当前所在的库中包含的表。在操作之前,需要先使用USE语句切换到所使用的库,例如,执行以下操作可以显示mysql库中包含的所有表

describe用于显示表的结构,即组成表的各字段(列)的信息.需要指定“库名.表名” 作为参数:若只指定表名参数,则需先通过USE语句切换到目标库。

例如.执行以下操作可以查看 mysql库中的user表的结构.与直接执行“DESCRIBE mysql.user:”语句的效果相同。

  • 退出“mysql>” 操作环境

        在“mysql>”操作环境中,执行“exit”或“quit”命令可以退出mysql命令工具.返回原来的 Shell环境.

创建及删除库和表

1.创建新的库

CREATEDATABASE语句:用于创建一个新的库,需指定数据库名称作为参数。例如,执行以下 操作可以创建一个名为auth的库.

刚创建的数据库是空的,其中不包含任何表,在/usr/local/mysql/data 目录下会自动生成一个 与新建的库名相同的文件夹。

 2.创建新的表

CREATE TABLE 语句:用于在当前库中创建新的表,需指定数据表名称作为参数,并定义该表格 所使用的各字段,基本格式如下所示。

创建表之前,应先明确数据表格的结构、各字段的名称和类型等信息,例如,若要创建一个包含 用户名、密码字串的用户验证表,应先分析表格结构。 

上述表格中,“用户名”为不超过16字节的字符串,不能为空;“密码字串”为不超过48个字 符的字符串(插入记录时使用MySOL的函数加密).默认值为空字串。考虑到字符集兼容性,最好 不要使用中文字段名,改用user_name,user_passwd分别表示用户名、密码字串,表格中不能拥有同 名的用户.因此可将 user_name作为主键。

        针对上述分析结果,可以在auth库中按如下操作创建users表,其中,字段定义部分的DEFAULT 语句用于设置默认的密码字串,PRIMARY语句用于设置主键字段名。

3.删除一个数据表 

DROP TABLE语句:用于删除库中的表,需要指定“库名.表名”作为参数:若只指定表名参数, 则需先通过执行“USE”语句切换到目标库,

例如,执行以下操作可以删除auth库中的users表。

4.删除一个数据库

DROP DATABASE语句:用于删除指定的库,需要指定库名作为参数,

例如,执行以下操作可以 删除名为auth的库.

管理表中的数据记录

1.插入数据记录

INSERT INTO语句:用于向表中插入新的数据记录,语句格式如下所示,

执行以下操作将会向 auth 库中的 users表插入一条记录:用户名为“zhangsan,对应的密码为 “123456”,需注意的是,VALUES部分的值应与前面指定的各字段逐一对应。

        在插入新的数据记录时,如果这条记录完整包括表中所有字段的值,则插入语句中指定字段的 部分可以省略。例如,执行以下操作也可以向auth库中的user表插入一条新的记录:用户名为“lisi” 对应的密码为“654321“

2.查询数据记录

SELECT语句:用于从指定的表中查找符合条件的数据记录。MySOL数据库支持标准的SOL查询 语句,语句格式如下所示。

        表示所有字段时,可以使用通配符“*”,若要显示所有的数据记录,则可以省略WHERE条件子 句.例如,执行以下操作可以查看auth库中users表内的所有数据记录,其中由于密码字串已加密 因此不会直接显示出实际的密码内容.

         当需要根据特定的条件查找记录时,WHERE条件子句是必不可少的,例如,若要查找users表 中用户名为“zhangsan”的记录,显示其中用户名,密码字段的信息,可以执行以下操作。

3.修改数据记录

UPDATE语句:用于修改、更新表中的数据记录,语句格式如下所示。

        执行以下操作可以修改users表中用户名为“lisi”的记录,将密码字串设为空值,验证记录内容 可以发现 lisi 用户的密码串值已变为空白。

        在MySOL数据库服务器中,用于访问数据库的各种用户(如root)信息都保存在mysql库的user 表中,熟练的管理员可以直接修改其中的数据记录。例如,以下操作可以将数据库用户root的密码 设为“123457”,当再次使用“mysql-u root-p”访问MySOL数据库服务器时,必须使用此密码进 行验证。

        若是在 Linux 命令行环境中执行,还可以使用mysqladmin 工具来设置密码,命令格式为 “mysqladmin-u root-p“旧密码password“新密码“.例如.执行以下操作可将数据库用户root 的密码设置为“123456”。 

4.删除数据记录

DELETE语句:用于删除表中指定的数据记录。语句格式如下所示。

        执行以下操作可以删除users表中用户名为“lisi”的数据记录,验证记录内容可以发现 lisi用户 的数据记录已经消失。

        在MySOL数据库服务器中,默认添加了从本机访问数据库的来宾用户(user.password均为空). 基于数据库安全性考虑,应该删除这些来宾用户。执行以下操作显示user字段为空的用户记录,并用DELETE 语句进行该用户记录的删除。

        先查看

        有两个空用户记录

        用DELETE语句删除该用户的记录

数据库用户授权 

  • 授予权限

GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT语句将 会创建新的用户,否则,GRANT语句用于修改用户信息,语句格式如下所示,

> 权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update". 使用all”表示所有权限,可授权执行任何操作。

>库名.表名:用于指定授权操作的库和表的名称,其中可以使用通配符“*”.例如,使用 “auth.*”表示授权操作的对象为auth库中的所有表。

>用户名@来源地址:用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里 连接。来源地址可以是域名,P地址,还可以使用“%”通配符,表示某个区域或网段内 的所有地址,如“%.bdqn.com”“192.168.1.%”等。

>DENTIFEDBY:用于设置用户连接数据库时所使用的密码字符串.在新建用户时,若省略 “IDENTIFEDBY”部分,则用户的密码将为空。

        执行以下操作可以添加一个名为“xiaoqi”的数据库用户,并允许其从本机访问,对auth库中的 所有表具有查询权限,验证密码为“123456”.使用GRANT语句授权的用户记录,会保存到mysql 库的user、db,host、tables_priv等相关表中,无须刷新即可生效.

        切换到其他Shell终端,以用户xiaoqi的身份连接数据库,当执行授权的数据库操作时将被允许, 而执行非授权的数据库操作时将被拒绝。例如,允许用户xiaoqi 查询auth 库中 users表的数据记录, 但禁止查询其他库中的表的记录。

        在企业服务器的应用中,数据库与网站服务器有时候是相互独立的。因此在MySQL服务器中. 应根据实际情况创建新的用户授权,允许授权用户从网站服务器访问数据库。通常的做法是,创建 一个或几个网站专用的库,并授予所有权限,限制访问的来源P地址。例如,执行以下操作可以新 建bdqn库,并授权从IP地址为192.168.4.19的主机连接,用户名为“dbuser”.密码为“pwd@123”. 允许在bdqn库中执行所有操作。

  • 查看权限 

SHOWGRANTS语句:专门用来查看数据库用户的授权信息,通过FOR子句可指定查看的用户对象(必须与授权时使用的对象名称一致)语句格式如下所示。

        执行以下操作可以查看用户dbuser从主机192.168.4.19访问数据库时的授权信息。其中USAGE 权限对应的授权记录中包含了用户的连接密码字串。

  • 撤销权限

REVOKE语句:用于撤销指定用户的数据库权限,撤销权限后的用户仍然可以连接到MySOL服务 器,但将被禁止执行对应的数据库操作。语句格式如下所示。

执行以下操作可以撤销用户xiaoqi从本机访问数据库auth的所有权限。

实验案例:MySQL服务器的构建与维护

推荐步骤 

编译安装MySQL数据库系统。

启动mysqld 服务,为root 用户设置密码,删除空用户。  

创建bdon库,stuinfo表。

操作步骤

设置root用户密码为12357

mysql> update mysql.user set password=password('123457') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0mysql> flush privileges;            //刷新用户授权信息
Query OK, 0 rows affected (0.00 sec)

删除密码为空的用户记录

mysql> delete from mysql.user where user='';
Query OK, 2 rows affected (0.00 sec)

新建bdqn库

mysql> create database bdqn;
Query OK, 1 row affected (0.01 sec)

添加一个名为'rundb'的数据用户,并允许其从本机访问,对bdqn库中的所有表具有所有权限,验证密码为'123456'。

mysql> grant all on bdqn.* to 'rundb'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

查询‘rundb’用户在本机的权限,权限为所有all

mysql> show grants for 'rundb'@'localhost';
+--------------------------------------------------------------------------------------------------------------+
| Grants for rundb@localhost                                                                                   |
+--------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'rundb'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT ALL PRIVILEGES ON `bdqn`.* TO 'rundb'@'localhost'                                                      |
+--------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

 以rundb用户登录数据库

[root@lgcllc ~]# mysql -urundb -p123456
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.36 Source distributionCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> 

接着在bdqn库建立stuinfo表

mysql> use bdqn;
Database changed
mysql> create table stuinfo (姓名 char(16) not null, 性别 char(5) not null, 年龄 varchar(3) not null, 联系电话 varchar(11) not null,  邮箱地址 char(50) not null);
Query OK, 0 rows affected (0.01 sec)

填入数据

mysql> insert into stuinfo values('张无忌','男','19','17512345678','wuji.zhang@mingchao.org');
Query OK, 1 row affected (0.00 sec)mysql> insert into stuinfo values('白居易','男','24','17587654321','juyi.bai@tangchao.org');
Query OK, 1 row affected (0.00 sec)mysql> insert into stuinfo values('蓝采和','女','21','17255201314','caihe.lan@wudaisong.org');
Query OK, 1 row affected (0.00 sec)mysql> insert into stuinfo values('','','','','');   //添加了一行为空的数据
Query OK, 1 row affected (0.00 sec)            mysql> delete from stuinfo where 姓名='';          //删除为空的数据行
Query OK, 1 row affected (0.00 sec) 

实验结果

select * from bdqn.stuinfo; 语句查看创建的stuinfo表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/219026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Cython生成的so动态链接库逆向

来个引子:TPCTF的maze题目 如何生成这个so文件 为了研究逆向,我们先搞个例子感受一下生成so的整个过程,方便后续分析 创建对应python库文件 testso.py def test_add(a,b):a int(a)b int(b)return a bdef test_calc(li):for i in range…

逆向思考 C. Fence Painting

Problem - 1481C - Codeforces 思路:逆序考虑,因为每一块木板都是被最后一次粉刷所决定的。 从后往前开始,对于 c i c_i ci​来说, 如果这个颜色还有没有涂的木板,那么涂到其中一个木板即可如果这个颜色下没有未涂的…

系统思考与啤酒游戏经营沙盘

结束一家汽车零配件公司《系统思考与啤酒游戏经营沙盘》的内训课,4个小组基本上都有共同的心智模式,这也代表团队有一些集体的盲点。不仅仅对啤酒游戏经营沙盘做了复盘,同时也借用学员画出的系统环路图完成真实案例的研讨以及团队共识&#x…

从零开始学机器学习,这些学习网站让你事半功倍!

介绍:机器学习是人工智能(AI)和计算机科学的一个分支,它专注于使用数据和算法,模仿人类学习的方式,逐步提高自身的准确性。更具体来说,机器学习是一门关于数据学习的科学技术,它能帮…

功能更新|免费敏捷工具Leangoo领歌私有部署新增第三方身份认证和API对接

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo支持敏捷研发管理全流程,包括小型团队敏捷开发,规模化敏捷SAFe,Scr…

MySQL笔记-第11章_数据处理之增删改

视频链接:【MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板】 文章目录 第11章_数据处理之增删改1. 插入数据1.1 实际问题1.2 方式1:VALUES的方式添加1.3 方式2:将查询结果插入到表中 2. 更…

三只松鼠坚持的“高端性价比”,也是零食行业通往未来的门票?

文 | 螳螂观察 作者 | 易不二 没有成功的企业,只有时代的企业。 从全球商业数百年的发展历史来看,一百年间有无数企业演绎了“诞生→发展→巅峰→衰亡”的宿命。即便此间已经走到了世界500强的企业,到现在存活下来的也仅有3%。 时代的潮流…

2023自动化测试框架大对比:哪个更胜一筹?

所谓工欲善其事,必先利其器,在进行自动化测试时,选择一个合适的框架是至关重要的。因为一个好的测试框架可以大大提高测试效率,减少我们很多工作量。在选择框架之前,我们通常需要对不同的框架进行对比,以便…

LeetCode:1631. 最小体力消耗路径(SPFA Java)

目录 1631. 最小体力消耗路径 题目描述: 实现代码与解析: BFSDP 原理思路: 1631. 最小体力消耗路径 题目描述: 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表…

【后端学前端】第一天 css动画 内凹导航栏

1、学习信息 css动画 内凹导航栏_哔哩哔哩_bilibili 随便找的的视频&#xff0c;主要原因是在公司不方便有声音 2、源码 最终源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title…

boost编译静态库

版本1_83_0 下载地址https://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.zip 解压后根目录可见 参考方式&#xff1a;打开index.html 可通过此路径找到编译方法 进入getting started&#xff0c;右下角有linux和windows的下一步可选&#xff0…

美赛F奖经验分享,干货满满,快来查收!

2023年美赛结果出来之后&#xff0c;陆续有人给我发私信求经验&#xff0c;跟一些同学交流后我发现&#xff0c;很多人其实对美赛了解程度很少。我借此机会介绍一下美赛&#xff0c;并分享一下获奖经验。我的内容主要包括以下几个部分&#xff1a;美赛是什么、得奖分布、选题建…

redis-学习笔记(Jedis string 简单命令)

mset & mget 批量设置和获取键值对 可以看出,参数都是可变参数 (就是说, 可以写任意个) 代码演示 getrange & setrange 获取和设置 string 类型中 某一区间的值 代码演示 append 往字符串的末尾拼接字符串 代码演示 incr & decr 如果 string 中为数字的话, 可以进行…

支付系统中日志的具体落地,实现快速发现,快速报警,指标分析

日志规范 V1.0 适用范围&#xff1a;适用于通用服务日志&#xff08;如nginx/redis/mysql日志&#xff09;之外的所有线上落盘日志&#xff0c;包括服务端业务日志&#xff0c;BI日志&#xff0c;移动端APP日志。 实施范围&#xff1a;要求所有新业务模块以及深度重构的模块实…

Servlet 的初步学习

前言 咱们最核心的目标是基于tomcat编程, 做出网站来 ~~ 基于tomcat进行网站后端的开发. 网站后端, http服务器,肯定是需要针对http 协议进行一系列操作的. 幸运的是, tomcat,已经把这些http相关的底层操作,封装好了只需要调用tomcat给咱们提供的api即可 Servlet 是什么 Servl…

2023最新大模型实验室解决方案

人工智能是引领未来的新兴战略性技术&#xff0c;是驱动新一轮科技革命和产业变革的重要力量。近年来&#xff0c;人工智能相关技术持续演进&#xff0c;产业化和商业化进程不断提速&#xff0c;正在加快与千行百业深度融合。 大模型实验室架构图 大模型实验室建设内容 一、课…

服务器漏洞防护措施有哪些?

随着互联网的普及和发展&#xff0c;服务器在各个领域的应用越来越广泛&#xff0c;同时也面临着越来越多的安全威胁。服务器漏洞一旦被攻击者利用&#xff0c;不仅可能导致数据泄露、系统崩溃等严重后果&#xff0c;还可能影响到企业的正常运营和声誉。因此&#xff0c;加强服…

关于空间BN

批次归一化对每个神经元都进行了归一化&#xff0c;或者说对每个特征都进行了归一化&#xff0c;并且用可学习的参数和进行重构。 那么如果卷积神经网络有3个通道&#xff0c;长和宽都是244&#xff0c;BN将需要学习3*244*244*2个参数&#xff0c;计算量是不是太大了&#xff1…

Java题库整理2023.12.13,一些做题的重点考察

整理了些题,有错误的可以提出来,一起讨论~~谢谢友友。。 1初识Java 2Java语言基础 数据类型、变量常量 运算符与表达式 3数组 一维数组

初识人工智能,一文读懂贝叶斯优化和其他算法的知识文集(8)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…