数据库mariadb的基本操作

1 数据库mariadb的基本介绍

1.1 什么是DB?
DB的全称是data base,即数据库的意思。数据库实际上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作;
 其实,数据库通常包含一个或多个表组成。如果你用过Excel,就会知道Excel是一张一张的二维表。每个表都是由列和行组成的,其中每一列都用名字来标识出来。同样的,数据库里存放的也是一张一张的表,只不过各个表之间是有联系的。
 所以,简单来说:数据库=多张表+各表之间的关系其实数据库是逻辑上的概念,它是一堆互相关联的数据,放在物理实体上,是一堆写在磁盘上的文件,文件中有数据。这些最基础的数据组成了表(table)。
 数据库中每个表由一个名字标识。表包含带有列名的列(字段),和记录数据的行。
1.2 DB的分类?
关系型数据库: 经过数学理论验证 可以保存现实生活中的各种关系数据, 数据库中存储数据以表为单位;
非关系型数据库:通常用来解决某些特定的需求如:数据缓存,高并发访问。 存储数据的形式有多种,举例:Redis数据库:通过键值对的形式存储数据;

1.3 什么是MariaDB?
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。

2 数据库mariadb的下载与初始化设定

2.1 mariadb的下载

我们使用虚拟机desktop充当mariadb服务服务器
yum search mariadb                           寻找提供mariadb服务端的软件
yum install mariadb-server -y                下载mariadb服务端的软件
systemctl start mariadb                      开启数据库服务
hostnamectl set-hostname mysql.westos.com    为便于区别,修改主机名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 安全初始化

1)默认情况下,数据库的网络接口是打开的 ,netstat -antlupe | grep mysql 会发现开放了一个 3306的网络接口,为了安全需要关闭此接口。

netstat -antlupe | grep mysql
vim /etc/my.cnf
skip-networking=1   不能乱写,写在[mysqld_safe]上面一行
systemctl restart mariadb

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2) 数据库起始状态设定信息是不安全的,不需要密码即可登陆,需要做以下设定;

mysql_secure_installation   
Enter current passwd for root(enter for none):       之前没有密码,直接回车
set root password                   				 [y]重新设定密码
remove anonymous users                               [y]移除匿名用户
Disallow root login remotely                         [y]关闭超级用户远程登陆
Remove test database and access to it?               [y]是否删除测试库
reload privilege tables now?                         [y]数据库设定已经更改,是否要刷新数据库设定

效果:需要密码才能登陆
mysql -uroot -pwestos   这种方式输入密码会显示,不安全
mysql -uroot -p 以这种方式登陆密码不会回显,安全

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 数据库mariadb的管理

3.1 查询库和表

数据库mariadb的最大组成单位是库,库又是由表组成。
表由记录数据的行和列(字段)组成

SHOW DATABASES;  		                  查询包含的库
USE DATABASENAME;(USE mysql;)            进入一个库中,进入mysql库中
SHOW TABLES;  			                   查询库中的表,列出所有的表名
SELECT * FROM TABLE;   	                   在特定的表中查询所有字段
SELECT Host Form user;   	     		   在特定的表user中查询Host字段
SELECT Host Form user WHERE User='root';   找出user表中所有User='root'的行,并且显示该行的Host

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.2 建立库和表

SHOW DATABASES;      		 	                    #列出库
CREATE DATABASE westos;    						    #建立库
USE westos;           							    #进入westos库
CREATE TABLE linux (   							    #建立表
    	-> username varchar(50)  not null,	        #要求输入不能为空,后面的逗号不能少。
    	-> password varchar(50)(字符长度最大50) not null
    	-> );

DESC linux;      							         #查看表结构(表中的所有字段) 
INSERT INTO linux VALUES ('lee','123');	             #插入数据到linux表中	
SELECT * FROM linux;    						     #查询所有字段在linux表中
SELECT username  FROM linux; 				         #查询指定字段在linux表中

注1:varchar(5) 不定长字符,可输入1,12,123,1234,12345
char 定长字符,若长度不够则会在后面自动补空格
注2:在建立表的时候,( username varchar(50) not null, password varchar(50) not null;
也可以将这三行写到一行中,但不便于检查错误,所以分开来写,每个字段占一行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.3 更改表

UPDATE linux SET pssword=password('lee') WHERE username='lee';     #重新使用password加密方式加密lee用户的密码
ALTER TABLE linux ADD class varchar(20);			               #默认在linux表中最后一列加入class字段
ALTER TABLE linux DROP class;                       		       # 丢弃class字段
ALTER TABLE linux ADD age varchar(20) AFTER password;       	   #在password后面加入age字段
UPDATE linux SET age='15' WHERE username='lee';                   #若不加where条件,所有用户的age都会设定为15
ALTER TABLE linux RENAME redhat;                            	  #重新将表linux命名为redhat

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
3.4 删除表中数据及表和库

DELETE FROM redhat WHERE username='lee';     		             #指定一个条件,username=lee
DELETE FROM redhat WHERE username='lee' or username='lee1';      #同一个条件下,删除多个目标。满足其中一个条件的都会被删除
DELECT FROM redhat WHERE username='lee' and age='12'             #指定不同条件,同时满足两个条件的才会被删除
DELECT FROM redhat WHERE username='lee' or age='12'              #指定不同条件,满足其中一个条件的都会被删除
DROP TABLE userlist1;   				                         #(已经在westos库中)在特定的库中丢弃表userlist1
DROP DATABASE westos;   

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.5 用户授权

1.用户的建立
CREATE USER lee@'localhost' identified by 'westos';     #用户的建立,lee只能在本机登陆,密码为westos
CREATE USER lee@'%' identified by 'westos';             #用户的建立 lee可以远程登陆登陆 密码为westos,和上条命令创建的是不同用户
SELECT * FROM mysql.user  				                #查看数据库中的用户信息

2.用户的授权,可以授权的权力有SELECT,INSERT,CREATE,DROP,DELETE,ALTER,UPDATE
GRANT SELECT,INSERT on westos.* TO lee@localhost;       #给lee用户开放select,insert权力
SHOW GRANTS FOR lee@localhost;                          #查看用户lee的权力                      
REVOKE INSERT ON westos.* FROM lee@localhost;           #收回lee用户的insert权力
DROP USER lee@localhost                                 #删除用户lee

FLUSH PRIVILEGES;    					                #如果语句没有生效,刷新


3.创建的可以远程登陆的用户如何登陆:
在server虚拟机中:
yum whatprovides */mysql
yum install mariadb-5.5.52-1.el7.x86_64    		#名字可能略有不同

将数据库服务端的3306端口打开,将vim /etc/my.cnf
删掉语句skip-networking=1  
systemctl restart mariadb
systemctl stop firewalld
在server虚拟机中mysql -ulee -h172.25.254.133 -pwestos    	#检查能否登陆

1.用户的建立

在这里插入图片描述
在这里插入图片描述
2.用户的授权
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
3.创建的可以远程登陆的用户如何登陆:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.6 用户授权

数据库备份
mysqldump -uroot -pwestos westos > /mnt/westos.sql      #将westos数据库备份到/mnt目录下的westos.sql
mysqldump -uroot -pwestos  westos --no-data   		    #只备份数据库westos的结构(有哪些字段),不备份数据
mysqldump -uroot -pwestos  --all-database     		    #备份所有数据库
mysqldump -uroot -pwestos  --all-database --no-data     #备份所有数据库的结构,不备份结构


恢复方式1:
mysql -uroot -p -e "CREATE DATABASE westos;"  
mysql -uroot -pwestos westos < /mnt/westos.sql

恢复方式2:
vim /mnt/westos.sql
加入语句:CREATE DATABASE westos;
		 USE westos;
mysql -uroot -pwestos < /mnt/westos.sql

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.7 超级用户的密码管理

情况一:
当知道超级用户原始密码时,超户密码的修改:
mysqladmin -uroot -pwestos password lee    #将用户root的密码改为lee

情况二:
当超级用户密码忘记时,重新设定超户的密码:
第一步:systemctl stop mariadb
第二步:mysqld_safe --skip-grant-tables &
第三步:mysql
       update mysql.user set Password='westos' WHERE User='root'  密码会是明文,不安全
       update mysql.user set Password=password('westos') where User='root';   将密码加密了

第四步:fg
      killall -9 mysqld_safe
      ps aux | grep mysql
      kill -9 mysql的所有进程id

第五步:systemctl start mariadb

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 phpmyadmin 数据库图形管理

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。

phpmyadmin:可以用图形创建数据库表

1.下载phpMyAdmin-3.4.0-all-languages
2.yum install httpd php php-mysql -y
3.systemctl restart httpd 
4.tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2    ----> /var/www/html
5.mv phpMyAdmin-3.4.0-all-languages mysqladmin
6.cd mysqladmin
7.cp config.sample.inc.php config.inc.php
8.vim config.inc.php
$cfg 'blowfish_secret']='ba17c1ec07d65003';    这串字符在Documentation.txt文件中
9. systemctl stop firewalld

测试:
http://172.25.254.172/mysqladmin

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
我们上面介绍的命令,比如建表,删表,增加数据等等,所有的功能都可以利用phpmyadmin图形管理完成,相当方便。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值