Linux——MySQL数据库的使用

news2024/11/18 2:27:56

访问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: 0

mysql> 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 distribution

Copyright (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.coloradmin.cn/o/1309277.html

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

相关文章

经典基本电路

USB电路 USB差分走线的阻抗为90欧:差分对10mil宽的走线以及5mil的间距,两边包地15/20mil以上厚度(SI9000计算阻抗) USB2.0接口电路: USB3.0接口电路: USB HUB电路: HDMI电路 HDMI差分走线的阻抗为100欧:差分对6mil宽的走线以及5mil的间距,两边包地15/20…

05 python数据容器

5.1 数据容器认识 5.2 python列表 5.2.1 列表的定义 演示数据容器之:list 语法:[元素,元素,....] #定义一个列表List List [itheima,uityu,gsdfg] List1 [itheima,6666,True] print(List) print(List1) print(type(List)) pr…

stm32F407-GPIO的使用——点亮LED并且讲解各个寄存器

stm32F407-GPIO的使用——点亮LED并且讲解各个寄存器 本文为stm32GPIO的介绍与使用,例子是简单的LED点亮。 一、 GPIO GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说, 就是一些引脚,可…

关于AISD300系列三相智能安全配电装置的详细介绍-安科瑞 蒋静

1概述 AISD300系列三相智能安全配电装置是安科瑞专为低压配电侧开发的一款智能安全配电产品,本产品主要针对低压配电系统人身触电、线路老化、短路、漏电等原因引起电气安全问题而设计。 产品主要应用于学校、加油站、医院、银行、疗养院、康复中心、敬老院、酒店…

Python 自动化之收发邮件(一)

imapclient / smtplib 收发邮件 文章目录 imapclient / smtplib 收发邮件前言一、基本内容二、发送邮件1.整体代码 三、获取邮件1.整体代码 总结 前言 简单给大家写个如何用Python进行发邮件和查看邮件教程,希望对各位有所帮助。 一、基本内容 本文主要分为两部分…

动画制作与动画控制器的使用_unity基础开发教程

动画制作与动画控制器的使用 导入素材创建动画控制器制作人物动画 前面我们讲过2D游戏中环境地图的制作,这里教大家使用动画控制器的使用 导入素材 先导入一下素材 选择window,点击Asset Store 点击Search online 搜索栏输入Sunny,然后回车…

2022年AMC8数学竞赛真题的典型考点和解析

大家好! 从战争中学习战争。 在2024年AMC8考前一个多月的时间中,孩子除了完成学校作业外,备考AMC8的有效方法就是做往年真题,通过往年真题进一步了解AMC8的考点、题型,建立自己的解题策略和方法。并且查漏补缺&#…

Docker容器如何优雅地访问宿主机网络

# 前言 某些时候,我们会有在容器内容访问宿主机某个服务的需求,比如现在 openai 无法直接访问,需要给项目添加代理,我的 chatgpt-dingtalk (opens new window) 项目支持了通过环境变量指定代理地址。 添加方式如下: …

使用对象处理流ObjectOutputStream读写文件

注意事项: 1.创建的对象必须实现序列化接口,如果属性也是类,那么对应的类也要序列化 2.读写文件路径问题 3.演示一个例子 (1)操作的实体类FileModel,实体类中有Map,HashMap这些自带的本身就实现了序列化。 public class File…

c语言printf函数与==和=

介绍&#xff1a; 本篇文章 是一些 关于c语言的 细节代码讲解 代码与讲解&#xff1a; 代码&#xff1a; #include <stdio.h>int main(void) {int a 1, b 2, c 3;printf("%d %d %d %d\n", a b c, a b c, a (b c), a (b c));return 0; } 大家先自…

玉米浸泡液回收植酸,植酸回收树脂

植酸为环己六醇六磷酸&#xff0c;分子量为660&#xff0c;植酸钠为环己六醇六磷酸钠&#xff08;Na12C6H6O24P6&#xff09;分子量为924。 植酸用途&#xff1a;在食品工业中植酸钠可用作食品添设剂&#xff0c;菲丁&#xff08;植酸钙&#xff09;可用于生产肌醇&#xff0c…

02.尚医通 Mybatis-Plus

1、前期准备 a. 创建数据库 CREATE TABLE USER (id BIGINT(20)NOT NULL COMMENT 主键ID,NAME VARCHAR(30)NULL DEFAULT NULL COMMENT 姓名,age INT(11)NULL DEFAULT NULL COMMENT 年龄,email VARCHAR(50)NULL DEFAULT NULL COMMENT 邮箱,PRIMARY KEY (id) );INSERT INTO user…

jdk+zookeeper+kafka 搭建kafka集群

环境准备 环境资源包&#xff1a; jdk-8u341-linux-x64.tar.gz kafka_2.12-2.2.0.tgz zookeeper-3.4.14.tar.gz server-idip状态server110.206.120.10leaderserver210.206.120.2followerserver310.206.120.3follower 一、安装jdk 因为kafka需要Java环境&#xff0c;所以优先…

Liunx高级系统设计9-线程间同步与互斥

同步与互斥的概念 互斥&#xff1a;同一时间&#xff0c;只能有一个任务&#xff08;进程或线程&#xff09;执行&#xff0c;谁先执行不确定。 同步&#xff1a;同一时间&#xff0c;只能有一个任务&#xff08;进程或线程&#xff09;执行&#xff0c;有顺序的执行。 同步…

CSS的基本选择器及高级选择器(附详细示例以及效果图)

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍HTML中CSS的基础选择及高级选择器&#xff08;详解&#xff09;以及部分理论知识 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主收将持续更新学习记录获&#xf…

螺丝厂家:什么是钣金螺丝?

金属板由常见的金属或合金&#xff08;钢、铜、镍、锡、钛等&#xff09;组成&#xff0c;比木材更硬、更坚固。因此&#xff0c;它需要使用特殊的螺钉。您通常无法将传统螺钉拧入钣金中。值得庆幸的是&#xff0c;有专为钣金设计的特殊类型的螺钉。被称为钣金螺钉&#xff0c;…

对多个 App 设计工具组件使用一个回调

当要在App 中提供多种方法来执行某个操作时&#xff0c;在组件间共享回调非常有用。例如&#xff0c;当用户点击按钮或在编辑字段中按下 Enter 键时&#xff0c;App 可以用同样的方式响应。 共享回调的示例 此示例说明如何创建一个 App&#xff0c;其中包含共享一个回调的两个…

运筹优化 | 模拟退火求解旅行商问题 | Python实现

"""模拟退火旅行商""" import random import numpy as np import math import time import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False location np.loadtxt(city_location.t…

蓝牙插座_风扇_灯

项目需求 通过蓝牙模块&#xff0c;实现手机控制蓝牙插座 / 风扇 / 灯。 本质&#xff1a; 1. 采用蓝牙的透传功能&#xff1b; 2. 控制 IO 口的输出。 HC01_TX -- RX1 HC01_RX -- TX1 项目实现 1、串口非中断法 2. 串口中断法

【UML】第4篇 UML公共机制(补扩展机制)

目录 一、扩展机制 1.1 构造型 1.2 标记值&#xff08;Tagged Value&#xff09; 1.3 约束&#xff08;Constraint&#xff09; 上节扩展机制没有讲完&#xff0c;如上图。 一、扩展机制 1.1 构造型 UML中的扩展机制包括约束、构造型和标记值&#xff0c;其中的构造型定义…