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

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.mfbz.cn/a/242736.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用23种设计模式打造一个cocos creator的游戏框架----(十五)策略模式

1、模式标准 模式名称:策略模式 模式分类:行为型 模式意图:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。此模式使得算法可以独立于使用它们的客户而变化 结构图: 适用于&#xff1…

【期末复习向】常见的激活函数

激活函数是非线性的函数,使用它的原因就是因为线性函数无论叠加多少层,最终带来的变化都是线性的组合,一般也只能用于线性分类,如经典的多层感知机。但是如果加上非线性的变换,根据通用近似定理,就可使得神…

持续集成交付CICD:Jenkins使用GitLab共享库实现自动上传前后端项目Nexus制品

目录 一、实验 1.GitLab本地导入前后端项目 2.Jenkins新建前后端项目流水线 3.Sonarqube录入质量阈与质量配置 4.修改GitLab共享库代码 5.Jenkins手动构建前后端项目流水线 6.Nexus查看制品上传情况 7.优化代码获取RELEASE分支 8.优化Jenkins流水线项目名称 一、实验 …

Linux环境下maven的安装

到官网下载maven 步入下面的地址选择合适的maven版本 https://dlcdn.apache.org/maven/ 以笔者为例,选择了3.5.4这个版本 将maven上传到Linux服务器并解压 tar -zxvf apache-maven-3.5.4-bin.tar.gz配置环境变量 我们使用vim编辑profile vim /etc/profile环境…

基于Spring Boot、Mybatis、Redis和Layui的企业电子招投标系统源码实现与立项流程

招投标管理系统是一款适用于招标代理、政府采购、企业采购和工程交易等领域的企业级应用平台。该平台以项目为主线,从项目立项到项目归档,实现了全流程的高效沟通和协作。通过该平台,用户可以实时共享项目数据信息,实现规范化管理…

薅github的羊毛-用pages建自己的博客或静态资源站 - 1/2

注册帐号 准备邮箱注册帐号,在注册界面输入用户名、邮箱及密码完成注册。 添加图片注释,不超过 140 字(可选) 1. 在注册成过程中,会往邮箱发送验证码,请如实填写即可 2. 验证码没错的话,就代…

LLM Agent发展演进历史(观看metagpt视频笔记)

LLM相关的6篇重要的论文,其中4篇来自谷歌,2篇来自openai。技术路径演进大致是:SSL (Self-Supervised Learning) -> SFT (Supervised FineTune) IT (Instruction Tuning) -> RLHF。 word embedding的问题:新词如何处理&…

数据结构之Map/Set讲解+硬核源码剖析

💕"活着是为了活着本身而活着"💕 作者:Mylvzi 文章主要内容:数据结构之Map/Set讲解硬核源码剖析 一.搜索树 1.概念 二叉搜索树又叫二叉排序树,他或者是一颗空树,或者是具有以下性质的树 若它…

Oracle md5

SQL CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2) RETURN VARCHAR2 ISretval varchar2(32); BEGINretval : utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING > passwd));RETURN retval; END; 测试 select md5(lw112190) from dual 效果

Android Studio的代码笔记--Adapter+GridView学习

AdapterGridView学习 AdapterGridViewSimpleAdapterGridViewactivity_main.xmlappicon.xmlMainActivity 自定义BaseAdapterGridView已下载应用PackageInfoAppAdapterMainActivity2 其他获取已下载应用信息函数获取所有应用信息函数ImageView产生圆角的方法背景设置很渐变设置选…

Matter分析与安全验证

本文作者:杉木涂鸦智能安全实验室 什么是matter Matter是一项智能家居的开源标准,由连接标准联盟制定、认证、推广,该标准基于互联网协议(IP),遵循该标准的智能家居设备、移动应用程序和云服务能够进行互…

three.js(一)

文章目录 three.js环境搭建正文补充 示例效果知识点补充1:一个标准的html知识点补充2:原生的前端框架和Vue框架的区别原生的前端框架Vue框架声明式编程和响应式编程 three.js环境搭建 正文 搭建 Three.js 的环境通常包括以下几个步骤: 1.创建项目目录&#xff1a…

Linux的基本指令和权限的知识

学前的建议:大家不要太关注指令是啥,记不住怎么办(没事,想用时去查就好了),这篇文章重点部分是围绕指令的周边知识。毕竟指令是“死肌肉”,而一些关于Linux和操作系统的理论知识才是最重要滴&am…

懒惰的数独——lodash的shuffle方法实现随机打乱的效果

1.效果 2.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title></title><script src"https://cdn.jsdelivr.net/npm/vue2.5.17/dist/vue.js"></script><script src&q…

Unity_FairyGUI发布导入Unity编辑器资源报错

Unity_FairyGUI发布导入Unity编辑器资源报错 报错&#xff1a; FairyGUI: settings for Assets/UI/XMUI/XMSubway_atlas0.png is wrong! Correct values are: (Generate Mip Mapsunchecked) UnityEngine.Debug:LogWarning (object) FairyGUI.UIPackage:LoadAtlas (FairyGUI.P…

用于 ChatGPT 的 FPGA 加速大型语言模型

简介&#xff1a;大型语言模型 近年来&#xff0c;大型语言模型 &#xff08;LLM&#xff09; 彻底改变了自然语言处理领域&#xff0c;使机器能够生成类似人类的文本并进行有意义的对话。这些模型&#xff0c;例如 OpenAI 的 GPT&#xff0c;具有惊人的理解和生成语言的能力。…

Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets

Stable video diffusion&#xff1a;将潜在视频扩散模型扩展到大型数据集 可以做到&#xff1a;文本-视频的生成、&#xff08;文本-&#xff09;图像-视频的生成、通过图像-视频微调进行多视图合成 摘要 我们提出了Stable video diffusion——一种用于高分辨率、最先进的文…

re:Invent 云端历程:Swami Sivasubramanian 博士主题演讲-数据共生与开放

re:Invent 云端历程&#xff1a;Swami Sivasubramanian 博士主题演讲-数据共生与开放 亚马逊云科技 re:Invent 大会简介 亚马逊云科技 re:Invent 是亚马逊云科技为全球云计算社区举办的学习大会。是云计算领域的行业风向标&#xff0c;科技界的全球年度重磅盛会。 亚马逊云科…

Sketch for Mac:实现你的创意绘图梦想的矢量绘图软件

随着数字时代的到来&#xff0c;矢量绘图软件成为了广告设计、插画创作和UI设计等领域中必不可少的工具。在众多矢量绘图软件中&#xff0c;Sketch for Mac&#xff08;矢量绘图软件&#xff09;以其强大的功能和简洁的界面脱颖而出&#xff0c;成为了众多设计师的首选。 Sket…

Json数据报文解析-Gson库-JsonObject类-JsonParse类-JsonArray类

一、前言 本文我们将介绍如何解析Json数据&#xff0c;主要通过Gson库中的相关类来实现。 二、详细步骤 首先&#xff0c;我们要拿到一个基础的Json数据&#xff0c;这里将以下面的Json数据作为示例&#xff1a; {"code":"1","msg":"ok&q…