24. Linux中数据库mariadb的管理

Lesson24 Linux中数据库mariadb的管理

1. 了解数据库
数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作 
所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合 
数据对一个企业是非常重要的,其实就相当于我们每个人的信息就是自己的属性,并且把它记录在一个文件里面 
多张表格组成一个数据库,tab ()---->db ()----->数据库软件 
我们现在学对数据库的一些基本操作,其实就是一个高级的excel表格
2. 了解mariadb数据库
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 ,
MariaDB的目的是完全兼容MySQL 包括API和命令行,使之能轻松成为MySQL的代替品
在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB 
MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN 
此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中
MariaDB名称来自Michael Widenius的女儿Maria的名字 MariaDB基于事务的Maria存储引擎,
替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体 分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能,
这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎 
MySQL之父Widenius先生离开了Sun之后,觉得依靠Sun/Oracle来发展MySQL,实在很不靠谱 于是决定重新开发代码全部开源免费关系型数据库,这就是MariaDB 在navicat中操mariaDB的界面和提示符还是mysql
端口也是3306 外人看起来除了数据库名字改了其他和mysql完全一致 mariaDB在各方面都是mysql创新和提高版本 而不是简单的替代品 
mysql和mariaDB开发团队一致,区别在于mysql已经被oracle闭源了而mariaDB是开源的 
但是当然不排除若干年后oracle再花几十亿美金收买mysql之父
3. 搭建实验环境

本次数据库实验,我们采用desktop虚拟机

  1. 为了保证一个纯净的实验环境,最好先将虚拟机reset

  2. 修改主机名为mysql
    hostnamectl set-hostname mysql.westos.com
    在这里插入图片描述

  3. 配置网络
    采用图形配置的方式或修改配置文件的方式将desktop虚拟机的网络设置为静态ip,将ip设置为172.25.254.114
    4.查看yum源是否已经配置好

cd /etc/yum.repos.d/
ls
将yum源配置好
yum repolist 能列出东西

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

4. 安装和登陆mariadb数据库的服务软件
4.1 安装mariadb数据库的服务软件

yum search mariadb #寻找这个软件
在这里插入图片描述

安装mariadb-server并且开启mariadb服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
切到/var/lib/mysql目录,可以看到有一个mysql.sock文件,这个套接字文件就是程序的入口
在这里插入图片描述
直接输入mysql进入数据库进行操作,SHOW DATABASES;可以查看所有已经存在的数据库,test是用来测试的一个数据库,在初始化的时候可以将这个数据库删除

在这里插入图片描述
安全初始化

刚刚安装好的mariadb的初始状态的信息设定很不安全,需要重新设定
mysql_secure_installation数据库安全初始化脚本,给定root用户以及密码

设定超级用户的密码
在这里插入图片描述
按回车键,禁止匿名用户登陆数据库
按回车键,禁止远程用户登录数据库
在这里插入图片描述
按回车键,移除测试的数据库,
按回车键,重新加载数据表的权限,并且进入数据库

在这里插入图片描述
初始化完毕之后,就可以登陆数据库了

4.2 登陆mariadb数据库

mysql -uroot -pwestos #这样可以登陆数据库,但直接将密码显示在屏幕上很不安全

mysql -uroot -p #直接输入刚才设置的密码就可以登陆数据库了
在这里插入图片描述

4.3 mariadb数据库的安全设置

默认情况下,数据库的网络接口3306是打开的,这样,别人可以从这个端口进来查看我的数据库,为了安全需要关闭此接口

netstat -antlupe | grep mysql#查看数据库的网络接口是否开启
在这里插入图片描述

关闭网络接口

vim /etc/my.cnf
在这里插入图片描述
skip-networking=1 #关闭网络接口3306,跳过网络接口
在这里插入图片描述
systemctl restart mariadb #重启数据库
在这里插入图片描述
netstat -antlupe | grep mysql #查看数据库的网络接口是否已经关闭
在这里插入图片描述
任何信息都没有,表示数据库3306端口已经关闭

5. 数据库的管理

注:数据库的每行命令都以分号(;)结尾,如果忘记输入;直接回车,数据库会默认你没输入完毕,自动将多行合并为一行,直到遇见分号

5.1 数据库的查询
mysql -uroot -p 先以一个用户身份进入数据库 
SHOW DATABASES;查看都有哪些数据库(可以看到存在的数据库的名称)
USE DATABASENAME(刚刚查看出来的);进入指定的一个数据库 
SHOW TABLES;查看该数据库中有哪些表格 
SELECT * FROM TABLENAME; (查看该表格中的所有内容,如果太多的话可以选择自己想要查看的内容)
SELECT Host,User (列:字段条件) FROM user(表格名字) WHERE User='root'(行条件);(相当于条件查询)
mysql -uroot -predhat -e “SHOW DATABASES;  #数据库的基本管理

进入数据库,显示数据库信息
在这里插入图片描述
进入mysql数据库
在这里插入图片描述
查看mysql数据库中的数据表信息
在这里插入图片描述
查看plugin表中的所有信息
在这里插入图片描述
在这里插入图片描述
查看user表中的所有内容,由于表头较大,一个屏幕无法显示全部,所以会出现下图的画面
在这里插入图片描述
查看指定用户的主机,用户字段
在这里插入图片描述
查看用户的主机,用户和是否有选中的权限信息
在这里插入图片描述
超级用户以本地用户的身份登陆数据库是否有选择的权限
在这里插入图片描述
以超级用户身份登陆,查看存在的数据库
在这里插入图片描述

5.2 数据库的建立
mysql -uroot -p 以超级用户身份进入数据库 
SHOW DATABASES; ##列出存在的库 
CREATE DATABASE westos(库名字); ##建立新的库 
USE westos; ##进入新建立的这个库 
CREATE TABLE linux ( ##在这个库里面建立表 
-> username varchar(字符长度为10) NOT NULL,用户登陆的时候名字和密码不能为空 
-> password varchar(字符长度为50) NOT NULL 
-> );以分号这个结尾 
DESC linux; ##查看新表的结构 
INSERT INTO linux(表格名字) VALUES ('wsp','123');#插入的信息符号必须是英文字符#插入数据到linux表中 
SELECT * FROM linux; ##查询所有字段在linux表中 
SELECT username,password from linux; ##查询指定字段(用户名和密码)在linux表中

CREATE DATABASE westos(库名字); ##建立新的库
在这里插入图片描述
SHOW DATABASES; ##列出存在的库
在这里插入图片描述
USE westos; ##进入新建立的这个库
在这里插入图片描述
CREATE TABLE linux ( ##在这个库里面建立表
-> username varchar(字符长度为10) NOT NULL,用户登陆的时候名字和密码不能为空
-> password varchar(字符长度为50) NOT NULL
-> );

在这里插入图片描述
DESC linux; ##查看新表的结构
在这里插入图片描述
INSERT INTO linux(表格名字) VALUES (‘wsp’,‘123’);#插入的信息符号必须是英文字符#插入数据到linux表中 在这里插入图片描述
SELECT * FROM linux; ##查询所有字段在linux表中
在这里插入图片描述
SELECT username,password from linux; ##查询指定字段(用户名和密码)在linux表中
在这里插入图片描述

5.3 数据库信息的更改
数据库的名字不能随便更改(涉及到数据库之间的关联查找)
数据库也是以目录下文件的形式存在的
在目录下,也可以直接改数据库的名字,但是不安全

ALTER TABLE linux ADD class varchar(10);在表格里面添加列 
ALTER TABLE linux ADD age varchar(4) AFTER password;添加列的时候指定位置(不能在最前面,没有参照物的话会造成数据丢失) 添加字段在password前
ALTER TABLE linux DROP age;在表格里面删除这个列
ALTER TABLE linux RENAME user;重命名表
UPDATE user SET class='linux' where username='wsp' AND password='123';更新值 

在表格里面添加列
在这里插入图片描述
添加字段在password前
在这里插入图片描述
查看westos数据库中存在的表
在这里插入图片描述
查看user表内容
在这里插入图片描述
在表格里面删除这个age列
在这里插入图片描述
给linux表重命名为user
在这里插入图片描述
更新值
在这里插入图片描述

SELECT * FROM user;
INSERT INTO user VALUES(‘wsp1’, '456', 'python');
SELECT * FROM user;
在这里插入图片描述

5.4 数据库的删除

DELETE FROM user WHERE username=‘wsp’;
在这里插入图片描述
SELECT * FROM user;
在这里插入图片描述
SHOW TABLES
在这里插入图片描述
删除user表
在这里插入图片描述
查看表内容为空
在这里插入图片描述
删除westos数据库,可以看到已经没有自己建立的数据库了
在这里插入图片描述

5.5 数据库用户授权(不能所有的都在本地root下面)

登陆数据库
在这里插入图片描述
CREATE USER westos@localhost identified by 'westos' ; #创建用户
在这里插入图片描述
SELECT * FROM mysql.user;
在这里插入图片描述

在这里插入图片描述GRANT SELECT ON userdata.* TO westos@localhost; #授权SELECT操作
在这里插入图片描述

FLUSH PRIVILEGES;#刷新数据库所有的东西
在这里插入图片描述
查看用户授权信息已经包含select
在这里插入图片描述
给用户授权插入
在这里插入图片描述
查看用户授权信息包括select和insert
在这里插入图片描述

方法二:
GRANT SELECT ON userdata..* TO westos@localhost IDENTIFIED BY 'wsp';
REVOKE SELECT ON userdata.* FROM westos@localhost; #撤销授权

5.6 数据库的备份与恢复
mysqldump -uroot -pwestos westos > /mnt/wesots.sql(完全备份westos这个库)
mysqldump -uroot -pwestos westos  --no-data(备份westos这个库的表格形式,不包括数据)
mysqldump -uroot -pwestos --all-database(完全备份所有的库)
mysqldump -uroot -pwestos --all-database  --no-data(备份所有的库不要数据)

恢复方式1
mysql -uroot -predhat -e "CREATE DATABASE userdata";先创建userdata这个库
mysql -uroot -predhat userdata < /mnt/userdata.sql;再将刚才备份的数据库还原回去
创建一个数据库userdata
在这里插入图片描述
进入userdata数据库
在这里插入图片描述
建立一个表usertab
在这里插入图片描述
查看表内容
在这里插入图片描述
给表中插入值
在这里插入图片描述
查看表内容
在这里插入图片描述
以root用户身份登陆数据库查看数据库
在这里插入图片描述
将数据库备份到/mnt/userdata.sql
在这里插入图片描述
删除userdata数据库
在这里插入图片描述
查看数据库信息,此时已经没有userdata数据库
在这里插入图片描述
创建一个数据库名称为userdata
在这里插入图片描述
数据库的配置文件里21、 22 行为空,不需要要有创建数据库和进入数据库的语句
在这里插入图片描述

在这里插入图片描述将备份的数据库文件再重定向回userdata

在这里插入图片描述
查看数据库信息,发现userdata数据库已经恢复
在这里插入图片描述
查看usertab数据表,里边添加的值还在,可见数据库已经完全恢复
在这里插入图片描述

恢复方式2

vim /mnt/userdata.sql 直接在备份的数据库的文件里面写要恢复的库的信息
写入这两行内容:
CREATE DATABASE userdata;
USE userdata;
mysql -uroot -predhat < /mnt/userdata.sql直接还原恢复数据库

将数据库备份到/mnt/userdata.sql
在这里插入图片描述
删除userdata数据库
在这里插入图片描述
查看数据库
在这里插入图片描述
在数据库的配置文件中加入建立数据库的命令
在这里插入图片描述
在这里插入图片描述
将备份的数据库内容恢复
在这里插入图片描述
查看数据库
在这里插入图片描述
查看表内容,说明已经完全恢复
在这里插入图片描述

5.7 数据库的管理密码问题

当知道数据库的密码的时候,直接改

mysqladmin -uroot -predhat password westos #将超级用户的密码从redhat改为westos
在这里插入图片描述
在这里插入图片描述

当不知道数据库的密码的时候,关闭端口,跳过安全检测,修改密码

systemctl stop mariadb #先关闭数据库服务 
mysqld_safe --skip-grant-tables & #将安全检测进程打入后台 
mysql 登陆数据库 
update mysql.user set Password=password('redhat') where User='root';改数据库的密码

将安全检测进程打入后台
在这里插入图片描述
跳过安全检测不需要密码,直接登录数据库
在这里插入图片描述
重置密码

在这里插入图片描述
可以看到,密码是被加密过的字符串,比明文加密更安全
在这里插入图片描述
在这里插入图片描述

如果不结束那些进程的话,直接重启,mysql可以登陆,设置的密码无效
在这里插入图片描述
开启mariadb数据库服务,用新设置的密码登陆,可以看到登陆成功
在这里插入图片描述

5.8 安装phpadmin数据库图形管理软件

下载phpMyAdmin-3.4.0-all-languages.bz2

yum install httpd -y
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
systemctl start httpd
systemctl enable httpd

使用yum源安装httpd服务
在这里插入图片描述
在这里插入图片描述
给火墙永久添加http服务
在这里插入图片描述
重启http服务并设置为开机自启
在这里插入图片描述
tar jxf phpMyAdmin-3.4.0-all-languages.bz2 #解压安装包
在这里插入图片描述cd /var/www/html #下载httpd服务之后才会有这个目录

mv phpMyAdmin-3.4.0-all-languages phpMyAdmin #重命名
在这里插入图片描述
yum install -y php #安装php服务在这里插入图片描述
在这里插入图片描述
systemctl restart httpd #重启http服务
在这里插入图片描述
yum install -y php-mysql #安装php-mysql服务

yum install -y php-mbstring-5.4.16-21.el7.x86_64.rpm #安装好会在网页上显示缺少这个扩展,所以再安装一下这个软件包
systemctl restart httpd #重启http服务
在这里插入图片描述
测试:在desktop虚拟机的浏览器里面输入http://172.25.254.114/phpMyAdmin看是否有数据库图形化管理工具

在这里插入图片描述
语言如果选择中文,那么将会出现中文操作界面,用户为root,密码为redhat
在这里插入图片描述
在这里新建的数据库等信息可以在shell中SHOW DATABASES看到
新建一个名称为haha的数据库
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这里可以看到新建的数据库“haha”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值