Lesson24 Linux中数据库mariadb的管理


文章目录

  • 1. 了解数据库
  • 2. 了解mariadb数据库
  • 3. 搭建实验环境
  • 4. 安装和登陆mariadb数据库的服务软件
  • 4.1 安装mariadb数据库的服务软件
  • 4.2 登陆mariadb数据库
  • 4.3 mariadb数据库的安全设置
  • 5. 数据库的管理
  • 5.1 数据库的查询
  • 5.2 数据库的建立
  • 5.3 数据库信息的更改
  • 5.4 数据库的删除
  • 5.5 数据库用户授权(不能所有的都在本地root下面)
  • 5.6 数据库的备份与恢复
  • 5.7 数据库的管理密码问题
  • 5.8 安装phpadmin数据库图形管理软件


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. linux安装mariadb数据库后设置密码 linux中mariadb_linux

  4. 配置网络
    采用图形配置的方式或修改配置文件的方式将desktop虚拟机的网络设置为静态ip,将ip设置为172.25.254.114
    4.查看yum源是否已经配置好
cd /etc/yum.repos.d/
ls
将yum源配置好
yum repolist 能列出东西

linux安装mariadb数据库后设置密码 linux中mariadb_linux_02


linux安装mariadb数据库后设置密码 linux中mariadb_数据库_03

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

yum search mariadb #寻找这个软件

linux安装mariadb数据库后设置密码 linux中mariadb_linux_04

安装mariadb-server并且开启mariadb服务

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_05


linux安装mariadb数据库后设置密码 linux中mariadb_linux_06


linux安装mariadb数据库后设置密码 linux中mariadb_数据库_07


切到/var/lib/mysql目录,可以看到有一个mysql.sock文件,这个套接字文件就是程序的入口

linux安装mariadb数据库后设置密码 linux中mariadb_linux_08


直接输入mysql进入数据库进行操作,SHOW DATABASES;可以查看所有已经存在的数据库,test是用来测试的一个数据库,在初始化的时候可以将这个数据库删除

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_09


安全初始化

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

设定超级用户的密码

linux安装mariadb数据库后设置密码 linux中mariadb_linux_10


按回车键,禁止匿名用户登陆数据库

按回车键,禁止远程用户登录数据库

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_11


按回车键,移除测试的数据库,

按回车键,重新加载数据表的权限,并且进入数据库

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_12


初始化完毕之后,就可以登陆数据库了

4.2 登陆mariadb数据库

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

mysql -uroot -p #直接输入刚才设置的密码就可以登陆数据库了

linux安装mariadb数据库后设置密码 linux中mariadb_linux_13

4.3 mariadb数据库的安全设置

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

netstat -antlupe | grep mysql#查看数据库的网络接口是否开启

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_14

关闭网络接口

vim /etc/my.cnf

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_15


skip-networking=1 #关闭网络接口3306,跳过网络接口

linux安装mariadb数据库后设置密码 linux中mariadb_linux_16


systemctl restart mariadb #重启数据库

linux安装mariadb数据库后设置密码 linux中mariadb_linux_17


netstat -antlupe | grep mysql #查看数据库的网络接口是否已经关闭

linux安装mariadb数据库后设置密码 linux中mariadb_linux_18


任何信息都没有,表示数据库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;  #数据库的基本管理

进入数据库,显示数据库信息

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_19


进入mysql数据库

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_20


查看mysql数据库中的数据表信息

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_21


查看plugin表中的所有信息

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_22


linux安装mariadb数据库后设置密码 linux中mariadb_mysql_23


查看user表中的所有内容,由于表头较大,一个屏幕无法显示全部,所以会出现下图的画面

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_24


查看指定用户的主机,用户字段

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_25


查看用户的主机,用户和是否有选中的权限信息

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_26


超级用户以本地用户的身份登陆数据库是否有选择的权限

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_27


以超级用户身份登陆,查看存在的数据库

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_28

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(库名字); ##建立新的库

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_29


SHOW DATABASES; ##列出存在的库

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_30


USE westos; ##进入新建立的这个库

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_31


CREATE TABLE linux ( ##在这个库里面建立表
-> username varchar(字符长度为10) NOT NULL,用户登陆的时候名字和密码不能为空
-> password varchar(字符长度为50) NOT NULL
-> );

linux安装mariadb数据库后设置密码 linux中mariadb_linux_32


DESC linux; ##查看新表的结构

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_33


INSERT INTO linux(表格名字) VALUES (‘wsp’,‘123’);#插入的信息符号必须是英文字符#插入数据到linux表中

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_34


SELECT * FROM linux; ##查询所有字段在linux表中

linux安装mariadb数据库后设置密码 linux中mariadb_linux_35


SELECT username,password from linux; ##查询指定字段(用户名和密码)在linux表中

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_36

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';更新值

在表格里面添加列

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_37


添加字段在password前

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_38


查看westos数据库中存在的表

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_39


查看user表内容

linux安装mariadb数据库后设置密码 linux中mariadb_linux_40


在表格里面删除这个age列

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_41


给linux表重命名为user

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_42


更新值

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_43

SELECT * FROM user;INSERT INTO user VALUES(‘wsp1’, '456', 'python');

SELECT * FROM user;

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_44

5.4 数据库的删除

DELETE FROM user WHERE username=‘wsp’;

linux安装mariadb数据库后设置密码 linux中mariadb_linux_45


SELECT * FROM user;

linux安装mariadb数据库后设置密码 linux中mariadb_linux_46


SHOW TABLES

linux安装mariadb数据库后设置密码 linux中mariadb_linux_47


删除user表

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_48


查看表内容为空

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_49


删除westos数据库,可以看到已经没有自己建立的数据库了

linux安装mariadb数据库后设置密码 linux中mariadb_linux_50

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

登陆数据库

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_51


CREATE USER westos@localhost identified by 'westos' ; #创建用户

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_52


SELECT * FROM mysql.user;

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_53

linux安装mariadb数据库后设置密码 linux中mariadb_linux_54

GRANT SELECT ON userdata.* TO westos@localhost; #授权SELECT操作

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_55

FLUSH PRIVILEGES;#刷新数据库所有的东西

linux安装mariadb数据库后设置密码 linux中mariadb_linux_56


查看用户授权信息已经包含select

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_57


给用户授权插入

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_58


查看用户授权信息包括select和insert

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_59

方法二:
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

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_60


进入userdata数据库

linux安装mariadb数据库后设置密码 linux中mariadb_linux_61


建立一个表usertab

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_62


查看表内容

linux安装mariadb数据库后设置密码 linux中mariadb_linux_63


给表中插入值

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_64


查看表内容

linux安装mariadb数据库后设置密码 linux中mariadb_linux_65


以root用户身份登陆数据库查看数据库

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_66


将数据库备份到/mnt/userdata.sql

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_67


删除userdata数据库

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_68


查看数据库信息,此时已经没有userdata数据库

linux安装mariadb数据库后设置密码 linux中mariadb_linux_69


创建一个数据库名称为userdata

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_70


数据库的配置文件里21、 22 行为空,不需要要有创建数据库和进入数据库的语句

linux安装mariadb数据库后设置密码 linux中mariadb_linux_71

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_72

将备份的数据库文件再重定向回userdata

linux安装mariadb数据库后设置密码 linux中mariadb_linux_73


查看数据库信息,发现userdata数据库已经恢复

linux安装mariadb数据库后设置密码 linux中mariadb_linux_74


查看usertab数据表,里边添加的值还在,可见数据库已经完全恢复

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_75

恢复方式2

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

将数据库备份到/mnt/userdata.sql

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_67


删除userdata数据库

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_68


查看数据库

linux安装mariadb数据库后设置密码 linux中mariadb_linux_69


在数据库的配置文件中加入建立数据库的命令

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_79


linux安装mariadb数据库后设置密码 linux中mariadb_数据库_80


将备份的数据库内容恢复

linux安装mariadb数据库后设置密码 linux中mariadb_linux_81


查看数据库

linux安装mariadb数据库后设置密码 linux中mariadb_linux_82


查看表内容,说明已经完全恢复

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_75

5.7 数据库的管理密码问题

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

mysqladmin -uroot -predhat password westos #将超级用户的密码从redhat改为westos

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_84


linux安装mariadb数据库后设置密码 linux中mariadb_linux_85

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

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

将安全检测进程打入后台

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_86


跳过安全检测不需要密码,直接登录数据库

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_87


重置密码

linux安装mariadb数据库后设置密码 linux中mariadb_linux_88


可以看到,密码是被加密过的字符串,比明文加密更安全

linux安装mariadb数据库后设置密码 linux中mariadb_linux_89


linux安装mariadb数据库后设置密码 linux中mariadb_mysql_90

如果不结束那些进程的话,直接重启,mysql可以登陆,设置的密码无效

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_91


开启mariadb数据库服务,用新设置的密码登陆,可以看到登陆成功

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_92

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服务

linux安装mariadb数据库后设置密码 linux中mariadb_linux_93


linux安装mariadb数据库后设置密码 linux中mariadb_数据库_94


给火墙永久添加http服务

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_95


重启http服务并设置为开机自启

linux安装mariadb数据库后设置密码 linux中mariadb_linux_96


tar jxf phpMyAdmin-3.4.0-all-languages.bz2 #解压安装包

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_97

cd /var/www/html #下载httpd服务之后才会有这个目录mv phpMyAdmin-3.4.0-all-languages phpMyAdmin #重命名

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_98


yum install -y php #安装php服务

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_99


linux安装mariadb数据库后设置密码 linux中mariadb_数据库_100


systemctl restart httpd #重启http服务

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_101


yum install -y php-mysql #安装php-mysql服务yum install -y php-mbstring-5.4.16-21.el7.x86_64.rpm #安装好会在网页上显示缺少这个扩展,所以再安装一下这个软件包

systemctl restart httpd #重启http服务

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_101


测试:在desktop虚拟机的浏览器里面输入http://172.25.254.114/phpMyAdmin看是否有数据库图形化管理工具

linux安装mariadb数据库后设置密码 linux中mariadb_数据库_103


语言如果选择中文,那么将会出现中文操作界面,用户为root,密码为redhat

linux安装mariadb数据库后设置密码 linux中mariadb_linux_104


在这里新建的数据库等信息可以在shell中SHOW DATABASES看到

新建一个名称为haha的数据库

linux安装mariadb数据库后设置密码 linux中mariadb_linux_105


linux安装mariadb数据库后设置密码 linux中mariadb_数据库_106

linux安装mariadb数据库后设置密码 linux中mariadb_mysql_107


这里可以看到新建的数据库“haha”