MariaDB数据库的管理

数据库概述:

数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。
简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。

mariadb 简介:

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

mysql_secure_installation  是 mariadb 自带的安全初始化脚本

1.数据库的安装和基础配置

(1).安装数据库

[root@localhost ~]# yum install -y mariadb-server 

(2).打开数据库

[root@localhost ~]# systemctl start mariadb.service 

(3).安全初始化

@默认情况下,用户可以无密码登陆数据库,并且可以对数据库随意进行增删改查;这样很是很不安全的
[root@localhost ~]# mysql -u root

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

##安全初始化
[root@localhost ~]# mysql_secure_installation 

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

测试:登陆数据库时需要输入密码 
##方式1:
[root@localhost ~]# mysql -u root -p

在这里插入图片描述

##方式2:但这样登陆不安全
[root@localhost ~]# mysql -uroot -pwestos 

在这里插入图片描述

(4).关闭数据库网络接口

@@默认情况下,数据库的网络接口是打开的,这样系统安全性很低
##查看数据库端口
[root@localhost ~]# netstat -antlupe | grep mysql 
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      27         41336      4534/mysqld 

在这里插入图片描述

##关闭网络接口
[root@localhost ~]# vim /etc/my.cnf
###################
skip-networking=1   ##跳过网络接口

在这里插入图片描述

##重启数据库服务
[root@localhost ~]# systemctl restart mariadb.service
测试:此时便可查看不到数据库服务端口
[root@localhost ~]# netstat -antlupe | grep mysql 

2.数据库的管理

命令的方式:

(1)建立和查询

SHOW DATABASES;               ##列出系统中所有的数据库
CREATE DATABASE westos;       ##创建westos数据库
USE westos;                   ##进入westos数据库
SHOW TABLES;                  ##列出具体数据库中所有的表
CREATE TABLE linux (username varchar(10) not null,password varchar(20) not null);                   ##在具体数据库中建立linux表
DESC linux;                   ##查看linux表结构
INSERT INTO linux VALUES ('lee','123');   ##插入数据到linux表中
SELECT * FROM linux;          ##查询linux表中的所有字段的数据信息
SELECT  HOST,User,Password FROM user;     ##查询linux表中指定字段的数据信息

实验:

##以root用户身份登陆数据库
[root@localhost ~]# mysql -uroot -p

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)更改

##更改表结构  
ALTER TABLE linux RENAME userdate;      ##修改表名称
ALTER TABLE linux ADD age varchar(4);   ##添加字段(默认在最后)
ALTER TABLE linux DROP age;             ##删除字段
ALTER TABLE linux ADD age varchar(4) AFTER username;  ##指定位置添加字段

##更改表数据       
UPDATE linux SET age='10' WHERE username='westos';    ##更改表数据;WHERE表示条件,可以跟多个,一般用and连接

实验:

[root@localhost ~]# mysql -uroot -pwestos

更改表结构:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更改表数据:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)删除

DELETE FROM linux WHERE username='westos';   ##删除数据
DROP TABLE linux;                            ##删除表
DROP DATABASE westos;                        ##删除数据库

实验:

[root@localhost ~]# mysql -uroot -pwestos

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
网页的形式:

(1).安装网页管理数据库工具

##1.安装apache
[root@localhost ~]# yum install -y httpd
##2.重启apache
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# ll /var/www/html
total 0
##3.关闭火墙
[root@localhost ~]# systemctl stop firewalld

网页测试:
在这里插入图片描述
在这里插入图片描述

##4.下载phpMyAdmin软件包,并将其放到apache的默认发布目录中
[root@[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
phpMyAdmin-2.11.3-all-languages.tar.bz2
##5.解压phpMyAdmin软件包;只是为了生成Documentation.txt文件
[root@localhost html]# tar jxf phpMyAdmin-2.11.3-all-languages.tar.bz2
[root@localhost html]# ls
phpMyAdmin-2.11.3-all-languages  phpMyAdmin-2.11.3-all-languages.tar.bz2
##6.重命名
[root@localhost html]# mv phpMyAdmin-2.11.3-all-languages mysqladmin
[root@localhost html]# ls
mysqladmin  phpMyAdmin-2.11.3-all-languages.tar.bz2
##搜索软件包
[root@localhost ~]# yum search php

在这里插入图片描述

##7.安装php和php-mysql
[root@localhost ~]# yum install -y php.x86_64 php-mysql.x86_64
##8.重启apache
[root@localhost html]# systemctl restart httpd

网页测试:
在这里插入图片描述

##查看到安装的php软件包均为5.4版本的;符合要求
[root@localhost mysqladmin]# rpm -qa | grep php

在这里插入图片描述

##进入解压包中
[root@localhost mysqladmin]# cd mysqladmin
##备份文件
[root@localhost mysqladmin]# cp config.sample.inc.php config.inc.php 
##查看
[root@localhost mysqladmin]# less  Documentation.txt

在这里插入图片描述

##9.(直接在备份文件中更改)
[root@localhost mysqladmin]# vim config.inc.php 

在这里插入图片描述

##10.重启apache
[root@localhost mysqladmin]# systemctl restart httpd

网页测试:(注意:如果还是没有出现登陆界面,此时可能的原因是网页缓存问题,此时只需要清理缓存即可
在这里插入图片描述
(2).网页形式管理数据库

先在shell中登陆数据库并用命令创建westos数据库:
在这里插入图片描述
以root用户身份登陆数据库:(密码是最开始做数据库的安全初始化时设定的密码)
在这里插入图片描述
进入数据库:
在这里插入图片描述
创建表:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在shell中登陆的数据库可以查看到新建的linux表(说明网页管理数据库与命令管理数据库效果一样)
在这里插入图片描述
插入数据:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除表中数据:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除linux表:
在这里插入图片描述
在这里插入图片描述
删除westos数据库:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.数据库用户授权

SELECT User,Host FROM mysql.user;                ##查看数据库存在的用户
CREATE USER lee@localhost identified by 'lee';   ##创建用户并设定用户密码
SHOW GRANTS FOR lee@localhost;                   ##查看具体用户所拥有的权限
GRANT SELECT on westos.* TO lee@localhost;       ##给用户授权
REVOKE DELETE on westos.* from lee@localhost;    ##撤回权力
DROP USER lee@localhost;                         ##删除数据库用户
FLUSH PRIVILEGES;                                ##刷新

常用的具体的权限有:
    SELECT    ##查询功能
    CREATE    ##创建表
    INSERT    ##插入数据
    DELETE    ##删除表数据
    DROP      ##删除表/数据库

实验:

   [root@localhost ~]# mysql -uroot -pwestos

在这里插入图片描述
在这里插入图片描述
创建数据库用户:
在这里插入图片描述
在这里插入图片描述
再打开一个shell,以lee用户身份登陆数据库(用于测试)
在这里插入图片描述
用户授权:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
撤销用户权力:
在这里插入图片描述
在这里插入图片描述
删除数据库用户:
在这里插入图片描述
4.数据库的备份

##备份数据库资料
mysqldump -uroot -pwestos --all-database > /mnt/westos.all                #备份所有数据库资料         
mysqldump -uroot -pwestos --all-database --no-data > /mnt/westos.err      #只备份数据库的数据结构,不备份数据库的数据信息
mysqldump -uroot -pwetos westos > /mnt/westos.sql                         ##备份westos数据库资料   

##恢复数据库信息
方法1:
vim /mnt/westos.sql 
#######
CREATE DATABASE westos;
USE westos;
mysql -uroot -pwestos -e 'SHOW DATABASES;'

方法2:
mysql -uroot -pwestos -e 'CREATE DATABASE westos;'
mysql -uroot -pwestos westos < /mnt/westos.sql

实验:

(1)模拟实验环境

##删除westos数据库
[root@localhost ~]# mysqldump -uroot -pwestos  westos > /mnt/westos.sql
[root@localhost ~]# mysql -uroot -pwestos -e 'SHOW DATABASES;'
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    +--------------------+

在这里插入图片描述
(2)解决方案

方法1:

##直接恢复会报错
[root@localhost ~]# mysql -uroot -pwestos westos < /mnt/westos.sql
ERROR 1049 (42000): Unknown database 'westos'
##1.编写文件:创建数据库并进入数据库
[root@localhost ~]# vim /mnt/westos.sql 
###################
CREATE DATABASE westos;
USE westos;

在这里插入图片描述

##2.恢复数据
[root@localhost ~]# mysql -uroot -pwestos < /mnt/westos.sql
##查看系统中存在的所有数据库
[root@localhost ~]# mysql -uroot -pwestos -e 'SHOW DATABASES;'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| westos             |
+--------------------+

在这里插入图片描述
方法2:

##先还原环境
[root@localhost ~]# vim /mnt/westos.sql 
###################
18 /*CREATE DATABASE westos;
19 /*USE westos;

在这里插入图片描述

[root@localhost ~]# mysql -uroot -pwestos -e 'SHOW DATABASES;'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| westos             |
+--------------------+
##删除westos数据库
[root@localhost ~]# mysql -uroot -pwestos -e 'DROP DATABASE westos;'

在这里插入图片描述

##1.创建数据库
[root@localhost ~]# mysql -uroot -pwestos -e 'CREATE DATABASE westos;'
##2.恢复数据
[root@localhost ~]# mysql -uroot -pwestos westos < /mnt/westos.sql
[root@localhost ~]# mysql -uroot -pwestos -e 'SHOW DATABASES;'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| westos             |
+--------------------+

在这里插入图片描述
5.若忘记数据库超级用户密码,怎么办?

(1)关闭数据库服务

[root@localhost ~]# systemctl stop mariadb

(2)跳过授权表

## &表示打入后台
[root@localhost ~]# mysqld_safe --skip-grant-tables &
[1] 6128
[root@localhost ~]# 181126 19:42:21 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
181126 19:42:21 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
^C                ## Ctrl+c 退出

(3)登陆数据库,并更改数据库root用户密码

##此时便可以免密码登陆数据库
[root@localhost ~]# mysql
##更改数据库root用户密码
MariaDB [(none)]> update mysql.user set Password=password('linux') WHERE User='root';

在这里插入图片描述
(4)结束与mysql有关的所有进程

[root@localhost ~]# ps aux | grep mysql
root      6128  0.0  0.1 113252  1616 pts/0    S    19:42   0:00 /bin/sh /usr/bin/mysqld_safe --skip-grant-tables
mysql     6283  0.0  8.6 909068 87592 pts/0    Sl   19:42   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root      6358  0.0  0.0 112644   952 pts/0    R+   19:48   0:00 grep --color=auto mysql
[root@localhost ~]# kill -9 6128
[root@localhost ~]# kill -9 6283
[1]+  Killed                  mysqld_safe --skip-grant-tables
[root@localhost ~]# ps aux | grep mysql
root      6368  0.0  0.0 112644   956 pts/0    R+   19:49   0:00 grep --color=auto mysql

在这里插入图片描述
(5)打开数据库

[root@localhost ~]# systemctl start mariadb

测试:

[root@localhost ~]# mysql -uroot -plinux

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值