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 rootmysql> status;
--------------
mysql  Ver 14.14 Distrib 5.6.36, for Linux (x86_64) using  EditLine wrapperConnection 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 secThreads: 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: 0mysql> 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.mzph.cn/news/219187.shtml

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

相关文章

Tcon基础知识

1、TCON,就是 Timing Controller 的缩写。从主芯片输出的要在 TFT 显示屏上显示的数据,在经过 TCON 模块后可以变换生成 Panel 可以直接利用的 DATA 信号和驱动器(包括 source driver 和 gate driver)的控制信号。 TV 市场上 TCO…

【FPGA/verilog -入门学习10】verilog 查表法实现正弦波形发生器

0,需求 用查找表设计实现一个正弦波形发生器 寻址的位宽是10位,数据量是1024个,输出的数据是16位 1,需求分析 数据量是1024个: x linspace(0,2*pi,1024) 输出数据是16位: y范围:0~2^16 -1 0~65535…

【内存函数】

目录 memcpy使用和模拟实现memmove使用和模拟实现memset使用memcmp使用 1. memcpy使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num) ; 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存的位置这个函数在遇到…

学习通【劳动通论】2023章节练习题

社会主义核心价值观24个字是:富强、民主、文明、和谐,自由、平等、公正、法治,爱国、敬业、诚信、友善。 1、“富强、民主、文明、和谐”,是我国社会主义现代化国家的建设目标,也是从价值目标层面对社会主义核心价值观…

探索云测试的方法:优化软件质量的新趋势

随着云计算技术的不断发展,云测试成为提高软件质量和效率的关键方法之一。本文将介绍一些云测试的方法,以帮助团队更好地应对不同的测试需求和挑战。 1. 云测试环境搭建 传统测试中,搭建测试环境可能需要大量的时间和资源。云测试通过提供可扩…

环境搭建及源码运行_java环境搭建_mysql安装

1、介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一 1、源码中涉及到的表:mysql 表:订单、意见反馈、用户基础信息、商品、购物车等表 2、订单属于…

linux高级管理——访问MYSQL数据库

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

如何想成为嵌入式工程师?(这些东西您必须知道)

嵌入式的发展怎么样? 嵌入式系统领域一直在迅速发展,伴随着物联网、智能设备、汽车电子、医疗设备等应用的不断增加,对嵌入式技术的需求也在不断扩大。因此,嵌入式领域仍然是一个充满机会的领域,为专业人士提供…

〖大前端 - 基础入门三大核心之JS篇(53)〗- 构造函数与类

说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:哈哥撩编程,十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司…

VMware安装ContOS 7 提示“客户机操作系统已禁用 CPU。请关闭或重置虚拟机。”

目录 实验环境报错截图报错原因猜测(根据实验现象)解决办法如下 实验环境 Vmware Workstation 17.5 CentOS7 镜像版本:2207-02版本 注意:2009版本并无该错误 报错截图 报错原因猜测(根据实验现象) CentO…

用AI画个女朋友回家过年,1行Python代码,免费实现

#这才是真功夫# 大家好,这里是程序员晚枫,全网同名。 马上过年了,还是单身的举个爪! 今年GPT系列的产品非常火爆,今天给大家分享一下,如何免费用AI代码画1个女朋友。👇 直接上代码 大家学习 或 …

Centos7防火墙及端口开启

1、防火墙 1.1、查看防火墙是否开启 systemctl status firewalld 1.2、开启防火墙 firewall-cmd --list-ports 1.3、重启防火墙 firewall-cmd --reload 2、端口 2.1、查看所有已开启的端口号 firewall-cmd --list-ports 2.2、手动开启端口 启动防火墙后,默认没有开…

【云原生kubernets】Ingress 功能与应用

一、Ingress 介绍 1.1.Ingress产生原因: 当我们使用Service的时候,Service对集群之外暴露服务的主要方式有两种:NotePort和LoadBalancer,但是这两种方式,都有一定的缺点: (1)Node…

【初阶C++】入门(超详解)

C入门 前言1. C关键字(C98)2. 命名空间2.1 命名空间定义2.2 命名空间使用2.3嵌套命名空间 3. C输入&输出4. 缺省参数4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载5.1 函数重载概念5.2 C支持函数重载的原理--名字修饰(name Mangling) 6. 引用6.1 引用概念6.2 引用特性6.3 …

C++初阶(十五)Stack和Queue

文章目录 一、Stack的模拟实现二、Queue的模拟实现三、容器适配器1、什么是容器适配器2、STL标准库中stack和queue的底层结构3、 deque的简单介绍(了解)1、deque的原理介绍2、deque的缺陷 4、为什么选择deque作为stack和queue的底层默认容器 一、Stack的模拟实现 #include<…

Web server failed to start. Port 8888 was already in use.

端口占用 强制终止占用端口的进程 获取占用端口的进程ID&#xff08;PID&#xff09;&#xff1a;在终端或命令提示符中运行以下命令以查找占用端口的进程ID&#xff1a; ①在 Unix/Linux/Mac 上&#xff1a;lsof -i :8888 ②在 Windows 上&#xff1a;netstat -ano | findstr …

java实现局域网内视频投屏播放(四)投屏实现

代码链接​​​​​​​​​​​​​​​​​​​​​ 设备发现 上一篇文章说过&#xff0c;设备的发现有两种情况&#xff0c;主动和被动&#xff0c;下面我们来用java实现这两种模式 主动发现 构建一个UDP请求发送到239.255.255.250:1900获取设备信息&#xff0c;UDP包的…

【价值几十万的仿抖音直播电商系统源码共享】

当下&#xff0c;传统的图文电商模式已经走向没落&#xff0c;以抖音为首的直播电商模式备受用户追捧&#xff0c;它具有实时直播和强互动的特点&#xff0c;是传统电商所不具备的优势。而且&#xff0c;当前正是直播电商的红利期&#xff0c;很多主播和品牌商都通过直播电商业…

K8S(四)—pod详解

目录 pod介绍Pod的概念&#xff1a;Pod的特性&#xff1a;Pod的配置&#xff1a;Pod的控制&#xff1a;示例 YAML 文件&#xff1a; pod启动流程问题 两种方式启动镜像的升级和回滚更新 Deployment&#xff1a;回滚检查 Deployment 历史版本回滚到之前的修订版本缩放 Deploymen…

青少年CTF-Crypto(Morse code/ASCII和凯撒)

FLAG&#xff1a;你这一生到底想干嘛 专研方向: Web安全 &#xff0c;Md5碰撞 每日emo&#xff1a;不要因为别人都交卷了&#xff0c;就乱选答案 文章目录 1.Morse code2、ASCII和凯撒的约定 1.Morse code 题目提示摩尔斯电码&#xff0c;这个是给的附件 直接用摩尔斯解密&am…