Linux访问MySQL数据库(包含实验案例)

news2024/12/24 16:30:47

1、访问MySQL数据库。

1.1、登录到MySQL服务器

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

[root@yang ~]# mysql -u root  //"-u"选项用于指定认证用户

        有密码的情况下,使用"-p"选项来进行密码校验。

[root@yang ~]# mysql -u root -p 
Enter password: 

1.2、执行MySQL操作语句

        验证成功以后将会进入提示符为"MySQL>"的数据库操作环境,用户可以输入各种操作语句对数据库进行管理。每条MySQL操作语句以分号";"表示结束,输入时可以不区分大小写。

        例如,以用户名root登录到"mysql>"环境后,执行"status;"语句可以查看当前数据库服务的基本信息。

[root@yang ~]# mysql -u root

mysql> status;
--------------
mysql  Ver 14.14 Distrib 5.6.36, for Linux (x86_64) using  EditLine wrapper

Connection id:		2
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		5.6.36 Source distribution
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8
Db     characterset:	utf8
Client characterset:	utf8
Conn.  characterset:	utf8
UNIX socket:		/tmp/mysql.sock
Uptime:			8 min 13 sec

Threads: 1  Questions: 7  Slow queries: 0  Opens: 67  Flush tables: 1  Open tables: 60  Queries per second avg: 0.014
--------------

1.3、退出"mysql>"操作环境

        在"mysql>"操作环境中,执行"exit"或"ouit"命令可以退出mysql命令工具,返回原来的shell环境。

mysql> exit
Bye
[root@yang ~]# 

2、使用MySQL数据库

2.1、查看当前服务器中有哪些库

        show databases 语句:用于查看当前MySQL服务器中包含的库,默认包含(test、mysql、information_schema、performance_schema)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

2.2、查看当前使用的库中有哪些表

        show tables 语句:用于查看当前所在的库中包含的表

        use语句:切换到所使用的库

mysql> use bdqn
Database changed
mysql> show tables;
+----------------+
| Tables_in_bdqn |
+----------------+
| benet          |
+----------------+
1 row in set (0.00 sec)

        MySQL数据库的数据文件存放在/usr/local/mysql/data目录下,每个数据库对应一个子目录,用于存储数据表文件。每个数据表对应为三个文件,扩展名分别为".frm"、".myd"、".myi"

[root@yang bdqn]# cd /usr/local/mysql/data/bdqn/
[root@yang bdqn]# ls
benet.frm  benet.ibd  db.opt

2.3、查看表的结构

        describe 语句:用于显示表的机构,即组成表的各字段(列)的信息

mysql> describe bdqn.benet;
+--------+----------+------+-----+---------+-------+
| Field  | Type     | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| user   | char(15) | NO   |     | NULL    |       |
| passwd | char(18) | NO   |     | NULL    |       |
+--------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

3、创建及删除库和表

3.1、创建新的库

        create database 语句:用于创建一个新的库,需指定数据库名称作为参数。

mysql> create database auth;  //创建一个名为auth的数据库

mysql> show databases;  //查看包含哪些数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| auth               |
| bdqn               |
| mysql              |
| performance_schema |
| test               |
+--------------------+
6 rows in set (0.00 sec)

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

[root@yang bdqn]# cd /usr/local/mysql/data/
[root@yang data]# ls
auth  auto.cnf  bdqn  ibdata1  ib_logfile0  ib_logfile1  localhost.localdomain.err  mysql  performance_schema  test  yang.err  yang.pid

3.2、创建新的表

        create table 语句:用于在当前库中创建新的表

mysql> create table users (user_name char(16) not null, user_passwd char(48) default '', primary key (user_name));

mysql> show tables;
+----------------+
| Tables_in_auth |
+----------------+
| users          |
+----------------+
1 row in set (0.00 sec)

3.3、删除一个数据表

        drop table 语句:用于删除库中的表

mysql> drop table auth.users;
Query OK, 0 rows affected (0.00 sec)

3.4、删除一个数据库

        drop database 语句:用于删除指定的库

mysql> drop database auth;
Query OK, 0 rows affected (0.00 sec)

4、管理表中的数据记录

4.1、插入数据记录

        insert into 语句:用于向表中插入新的数据记录。password('123456')表示将密码加密

mysql> insert into auth.users (user_name,user_passwd) values('lisi',password('123456'));
Query OK, 1 row affected (0.00 sec)

mysql> select * from auth.users;  //查看数据表中的内容
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| lisi      | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)

5、数据用户授权

5.1、授予权限

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


grant  权限列表 on 库名.表名 to 用户名@来源地址 [ identified by '密码' ]


权限列表:用于授予权限。select、insert、update,使用"all"表示所有权限

库名.表名:用于指定授权的对象,"auth.*"表示auth数据库中的所有表

用户名@来源地址:用于指定访问的对象。可以是IP地址、域名。也可以是"%"通配符,"%.bdqn.com"、"192.168.1.%"表示某个区域或网段内的所有地址

identified by:用于设置密码。若省略则用户的密码为空

        创建一个名为xiaoqi的数据库用户,允许本地访问数据库auth下的所有表,密码为123 

mysql> grant select on auth.* to 'xiaoqi'@'localhost' identified by '123';
Query OK, 0 rows affected (0.00 sec)

//使用xiaoqi数据库用户登录
[root@yang ~]# mysql -u xiaoqi -p
Enter password: 

//验证权限
mysql> select * from auth.users;
+-----------+-------------------------------------------+
| user_name | user_passwd                               |
+-----------+-------------------------------------------+
| lisi      | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)

//访问其他数据库则没有权限
mysql> select * from mysql.user;
ERROR 1142 (42000): SELECT command denied to user 'xiaoqi'@'localhost' for table 'user'

 5.2、查看权限

        show grants 语句:专门用于查看数据库用户的授权信息,通过for可以指定查看的用户

 5.3、撤销权限

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

mysql> revoke all on auth.* from 'xiaoqi'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> show grants for 'xiaoqi'@'localhost';
+---------------------------------------------------------------------------------------------------------------+
| Grants for xiaoqi@localhost                                                                                   |
+---------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xiaoqi'@'localhost' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
+---------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

6、实验案例

1、为MySQL数据库的root用户设置密码,删除用户名、密码为空的用户记录

2、新建名为"bdqn"的库,授权用户rundb从本机访问,具有所有操作权限

3、以rundb用户登录,在bdqn库中创建stuinfo表,并录入如下数据

1、更改数据库mysql中的user表,将root的密码更改为123,并刷新用户授权信息 

mysql> use mysql
Database changed
mysql> update mysql.user set password=password('123') 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)

 2、创建一个名为bdqn的数据库,并添加一个rundb数据库用户,授予所有权限以本机访问。

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

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

3、在bdqn数据库中新建stuinfo表,并录入数据。

mysql> create table stuinfo 
    -> (姓名 nvarchar(10) not null primary key, 
    -> 性别 nvarchar(2) not null, 
    -> 年龄 int not null,
    -> 联系电话 bigint not null,
    -> Email地址 nvarchar(50)
    -> );


mysql>  insert into stuinfo (姓名,性别,年龄,联系电话,Email地址)                                                                                                                    values('张无忌','男','19','17512345678','wuji.zhang@mingchao.org');


mysql>  insert into stuinfo (姓名,性别,年龄,联系电话,Email地址)
    ->  values('白居易','男','24','17587654321','juyi.bai@tangchao.org');


mysql>  insert into stuinfo (姓名,性别,年龄,联系电话,Email地址)
    ->  values('蓝采和','女','21','17555201314','caihe.lan@wudaisong.org');


mysql> select * from stuinfo;
+-----------+--------+--------+--------------+-------------------------+
| 姓名      | 性别   | 年龄   | 联系电话     | Email地址               |
+-----------+--------+--------+--------------+-------------------------+
| 张无忌    | 男     |     19 |  17512345678 | wuji.zhang@mingchao.org |
| 白居易    | 男     |     24 |  17587654321 | juyi.bai@tangchao.org   |
| 蓝采和    | 女     |     21 |  17555201314 | caihe.lan@wudaisong.org |
+-----------+--------+--------+--------------+-------------------------+

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

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

相关文章

【OpenCV】 OpenCV 源码编译并实现 CUDA 加速 (Windows)

OpenCV 源码编译并实现 CUDA 加速 Windows 1. 环境准备1.1 软件环境1. 2 源码下载 2. CMake编译项目2.1 创建cmake项目2.2 设置编译配置2.3 解决异常2.3.1 文件下载异常2.3.2 解决CUDA版本异常 2.4 编译项目 3. Visual Studio 编译项目4. 项目测试5. 总结 OpenCV是一个基于Apac…

鸿蒙南向开发环境的搭建

在嵌入式开发中,很多开发者习惯于使用Windows进行代码的编辑,比如使用Windows的Visual StudioCode进行OpenHarmony代码的开发。但当前阶段,大部分的开发板源码还不支持在Windows环境下进行编译,如Hi3861、Hi3516系列开发板。因此&…

Hudi cleaning

核心概念 hudi提供了很多项数据服务来管理表中的数据,其中有一项服务称之为Cleaner(数据清理服务)。随着用户向表中写入的数据越多,对于每一次的更新,hudi都会产生一个版本的数据文件保存更新后的记录(COP…

Javascript 嵌套函数 - 递归函数 - 内置函数详解

Javascript 嵌套函数 - 递归函数 - 内置函数详解 目录 Javascript 嵌套函数 - 递归函数 - 内置函数详解 一、嵌套函数 二、递归函数 三、内置函数 在了解了函数的定义和函数调用外,下面我们来介绍一下JavaScript中几种特殊的函数。 JavaScript特殊函数有3种&a…

工艺雕塑品牌网站搭建效果如何

工艺雕刻品往往受到不少人喜欢与较高的市场需求度,比如室内雕塑摆件、室外标志性雕刻品等,而对相关企业来说,品牌经营过程中也面临着一些难题: ① 品牌传播难 工艺雕刻品因为只有小部分人才会需要或采购,可能大部分民…

JAVA序列化(创建可复用的 Java 对象)

JAVA 序列化(创建可复用的 Java 对象) 保存(持久化)对象及其状态到内存或者磁盘 Java 平台允许我们在内存中创建可复用的 Java 对象,但一般情况下,只有当 JVM 处于运行时,这些对象才可能存在,即,这些对象的生命周期不…

暂退法(丢弃法)

在深度学习中,丢弃法(Dropout)是一种常用的正则化技术,旨在减少模型的过拟合现象,可能会比之前的权重衰减(Weight Decay)效果更好。通过在训练过程中随机丢弃一部分神经元,可以有效地减少神经网络中的参数依…

普冉(PUYA)单片机开发笔记(11): I2C通信-配置主从收发

概述 在上一篇《普冉(PUYA)单片机开发笔记(10): I2C通信-配置从机-CSDN博客》配置了 PY32F003 的 I2C 从机一侧,今天配置主机,并实现主-从机之间的报文收发。 为了完成这个实验,需要两块 PY32F003F18P 的开发板&…

001 Windows虚拟机

一、虚拟机安装Windows10 选自定义安装 升级是针对你电脑上有系统的情况下,你要升级;没有系统就选择自定义。 硬盘60G 直接单击下一步就是一个盘 如果你想对磁盘进行分区 分第一个区的时候它会去创建系统的保留分区和系统分区,然后还剩20…

Linux下C++程序瘦身

目录 一.前言二.如何瘦身三.如何读取调试信息文件四.其他 一.前言 我们知道,C程序如果带着调试信息的话会比较大,所以一般发布版本都会去掉调试信息,但是我们又希望如果程序崩溃了可以使用core转储文件进行调试,如果不带调试信息…

数据结构之----贪心算法

数据结构之----贪心算法 什么是贪心算法? 贪心算法是一种常见的解决优化问题的算法,其基本思想是在问题的每个决策阶段,都选择当前看起来最优的选择,即贪心地做出局部最优的决策,以期望获得全局最优解。 贪心算法简…

SpringBoot配置文件加载的优先级及自定义配置

Spring Boot使用一个非常特殊的PropertySource顺序,旨在允许合理的值重写,越靠前优先级越高。属性按以下顺序考虑: 开发者工具Devtools全局配置参数 在IDEA或Eclipse中,安装并启用Spring Boot Devtools插件。打开项目的Settings…

[Big Bird]论文解读:Big Bird: Transformers for Longer Sequences

文章目录 1 介绍2 模型架构3 结果 论文:Big Bird: Transformers for Longer Sequences 作者:Manzil Zaheer, Guru Guruganesh, Avinava Dubey, Joshua Ainslie, Chris Alberti, Santiago Ontanon, Philip Pham, Anirudh Ravula, Qifan Wang, Li Yang, Am…

【Java 并发】三大特性

在 Java 的高并发中,对于线程并发问题的分析通常可以通过 2 个主核心进行分析 JMM 抽象内存模型和 Happens-Before 规则三大特性: 原子性, 有序性和可见性 JMM 抽象内存模型和 Happens-Before 规则, 前面我们讨论过了。这里讨论一下三大特性。 1 原子性 定义: 一个…

HarmonyOS4.0从零开始的开发教程17给您的应用添加通知

HarmonyOS(十五)给您的应用添加通知 通知介绍 通知旨在让用户以合适的方式及时获得有用的新消息,帮助用户高效地处理任务。应用可以通过通知接口发送通知消息,用户可以通过通知栏查看通知内容,也可以点击通知来打开应…

基于CNN+数据增强+残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)+数据集+模型(一)

系列文章目录 基于CNN数据增强残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)数据集模型(一) 基于CNN数据增强残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)数据集模型&#xf…

Win11极速安装Tensorflow-gpu+CUDA+cudnn

文章目录 0.pip/conda换默认源1.Anacondapython虚拟环境2.安装CUDA以及cudnn测试tensorflow的GPU版本安装成功的办法 0.pip/conda换默认源 为了高效下载,建议先把默认源换了,很简单这里不再赘述。(我用梯子,所以没换源&#x1f6…

数据分析(一)(附带实例和源码)

一、主要目的: 主要利用Python包,如Numpy、Pandas和Scipy等常用分析工具并结合常用的统计量来进行数据的描述,把数据的特征和内在结构展现出来。熟悉在Python开发环境中支持数据分析的可用模块以及其中的方法,基于一定的样例数据…

【Java】使用递归的方法获取层级关系数据demo

使用递归来完善各种业务数据的层级关系的获取 引言:在Java开发中,我们通常会遇到层层递进的关系型数据的获取问题,有时是树状解构,或金字塔结构,怎么描述都行,错综复杂的关系在程序中还是可以理清的。 这…

服务器RAID配置及功能介绍

服务器RAID配置及功能介绍 一、RAID磁盘阵列详解1.RAID磁盘阵列介绍2.RAID 03.RAID14.RAID35.RAID56.RAID67.RAID 10总结阵列卡介绍 一、RAID磁盘阵列详解 1.RAID磁盘阵列介绍 ①是Redundant Array of lndependent Disks的缩写中文简称为独立冗余磁盘阵列。 ②把多块独立的物…