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的名字。

MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎

MariaDB服务的初始化安全设定

yun install mariadb  下载mysql
ot@shareserver ~]# systemctl start mariadb 开启服务mysql
[root@shareserver ~]# mysql_secure_installation 初始化设置
[root@shareserver ~]# netstat -antlupe | grep mysql
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      27         30588      1925/mysqld         
[root@shareserver ~]# vim /etc/my.cnf 
10 skip-networking=1  隐藏网络端口
ot@shareserver ~]# netstat -antlupe | grep mysql 查看网络端口
[root@shareserver ~]# mysql -uroot -p  root用户登陆
Enter password:

1.下载mariadb服务,并启用

MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能


MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_02


2.数据库程序初始化,

#设置root管理员在数据库中的密码值(注意,该密码非root管理员在系统中的密码,这里的密码值默认应该为空,可直接按回车键)。

#设置root管理员在数据库中的专有密码。

#随后删除匿名账户,并使用root管理员从远程登录数据库,以确保数据库上运行的业务安全性。

#删除默认的测试数据库,取消测试数据库的一系列访问权。

#刷新授权列表,让初始化的设定立即生效。

MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_03


3.隐藏数据库的网络端口,因为数据库一般为公司核心,所以为了安全起见,我们要隐藏他的网络端口

#可以看到数据库的网络端口为3306

MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_04


#编辑配置文件vim /etc/my.cnf

在第10行加入

skip-networking=1 隐藏网络端口

MariaDB开启数据库审计功能 mariadb进入数据库_mysql_05


MariaDB开启数据库审计功能 mariadb进入数据库_mysql_06


#重新启动mariadb服务

再次查看端口时发现网络端口被隐藏

MariaDB开启数据库审计功能 mariadb进入数据库_php_07


4.我们以root用户登录数据库,密码为前面我们给root用户在数据库的专有密码

.注意在数据库中,命令以分号(;)结尾

.命令大小写均可,不过为了标准,我们选择大写

MariaDB开启数据库审计功能 mariadb进入数据库_php_08

数据库中数据表的建立以及管理

常用命令有

MariaDB [(none)]> SHOW DATABASES;    ####列出库
MariaDB [(none)]> CREATE DATABASE westos;  ######建立库
Query OK, 1 row affected (0.00 sec)   
MariaDB [(none)]> USE westos;     #####进入库
SHOW TABLES      ####列出表
MariaDB [westos]> CREATE TABLE linux (        #####建立表
    -> username varchar(50) not null,
    -> password varchar(50) not null
    -> );
Query OK, 0 rows affected (0.09 sec
MariaDB [westos]> DESC linux;   #####查看表结构
MariaDB [westos]> INSERT INTO linux VALUES ('lee','123'); ####插数据到linux表中
MariaDB [westos]> SELECT * FROM linux;   查看linux表中的内容
更改
MariaDB [westos]> SHOW TABLES;  列出表
MariaDB [westos]> ALTER TABLE linux RENAME userdate;    表单的重命名
MariaDB [westos]> ALTER TABLE linux ADD age varchar(4);   在表单中插入表头
MariaDB [westos]> ALTER TABLE linux DROP age;    		在表单中删除表头
MariaDB [westos]> ALTER TABLE linux ADD age varchar(4) AFTER username;     在username表头后添加age表头
MariaDB [westos]> UPDATE linux SET age='18' WHERE username='qi' ;   更新表单中的数据,将用户qi的age栏填入18
MariaDB [westos]> DELETE FROM linux WHERE username='qi';   删除表中的用户qi
MariaDB [westos]> DROP TABLE linux;    删除表linux
MariaDB [westos]> DROP DATABASE westos;      删除westos库

1.列出数据库

MariaDB开启数据库审计功能 mariadb进入数据库_数据库_09


2.建立westos库

MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_10


3.进入库

MariaDB开启数据库审计功能 mariadb进入数据库_mysql_11


4.建立表Linux的格式,表头 username password

MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_12


5.查看表结构

MariaDB开启数据库审计功能 mariadb进入数据库_数据库_13


6.在linux表中插入数据

MariaDB开启数据库审计功能 mariadb进入数据库_mysql_14


7.查看linux表内容

MariaDB开启数据库审计功能 mariadb进入数据库_数据库_15


8.列出westos库中表单

MariaDB开启数据库审计功能 mariadb进入数据库_数据库_16


9.将westos库中的linux表改名为userdate

MariaDB开启数据库审计功能 mariadb进入数据库_数据库_17

授权及管理用户

MariaDB [(none)]> CREATE USER lee@localhost identified by'redhat'; 让lee用户可以访问数据库
MariaDB [(none)]> SELECT User,Host FROM mysql.user;   列出经数据库授权的用户
MariaDB [(none)]> SHOW GRANTS FOR lee@localhost;    查看lee用户在数据库中享有的特权
MariaDB [(none)]> GRANT SELECT on westos.* TO lee@localhost;   给lee用户在westos中查询权限
MariaDB [(none)]> SHOW GRANTS FOR lee@localhost;
MariaDB [(none)]> GRANT DROP on westos.* TO lee@localhost;     给lee用户在westos中删除权限
MariaDB [(none)]> REVOKE DROP on westos.* TO lee@localhost;     取消lee用户在westos中的删除权限
MariaDB [(none)]> DROP USER lee@localhost        取消lee用户在数据中的授权

1.在数据库中给本地lee用户认证特权,并设置密码为redhat

MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_18


2.查看认证的用户列表

MariaDB开启数据库审计功能 mariadb进入数据库_数据库_19


3.查看用户在数据库中享有的权限

MariaDB开启数据库审计功能 mariadb进入数据库_数据库_20


4.给lee用户权限,如SELECT,UPDATE,DELETE,INSERT,DROP,可以单独给也可以一次给几个权限

MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_21


MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_22


5.删除权限,可以单独删一个,也可以单独删几个,此处我们删除了lee用户在westos库中的DROP权限

MariaDB开启数据库审计功能 mariadb进入数据库_mysql_23


6.删除认证的本地用户lee

MariaDB开启数据库审计功能 mariadb进入数据库_php_24

数据库的备份

root@shareserver ~]# mysqldump -uroot -pwestos --all-databases > /mnt/alldata.sql
 mysqldump -uroot -pwestos --all-databases --no-data      /   -no-data表示只备份框架,不备份数据
[root@shareserver ~]# mysqldump -uroot -pwestos westos > /mnt/westos.sql
[root@shareserver ~]# mysql -uroot -pwestos -e "DROP DATABASE westos;"
[root@shareserver ~]# mysql -uroot -pwestos -e "SHOW DATABASES;"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
[root@shareserver ~]# mysql -uroot -pwestos westos < /mnt/westos.sql 
ERROR 1049 (42000): Unknown database 'westos'
恢复方式一
[root@shareserver ~]# mysql -uroot -pwestos -e "CREATE DATABASE westos;"
[root@shareserver ~]# mysql -uroot -pwestos westos < /mnt/westos.sql 
[root@shareserver ~]# mysql -uroot -pwestos -e "SHOW DATABASES;"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| westos             |
+--------------------+
恢复方式二
[root@shareserver ~]# vim /mnt/westos.sql 
21 CREATE DATABASE westos;
 22 USE westos;
[root@shareserver ~]# mysql -uroot -pwestos  < /mnt/westos.sql 
[root@shareserver ~]# mysql -uroot -pwestos -e "SHOW DATABASES;"

备份

1.将数据库中所以的库连同数据一块备份到/mnt/alldata.sql

MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_25


2.将数据库中westos库的全部数据备份到/mnt/westos.sql

MariaDB开启数据库审计功能 mariadb进入数据库_mysql_26


3.为了试验,我们先删除westos库,可以直接在用命令进行操作,格式如下

MariaDB开启数据库审计功能 mariadb进入数据库_php_27

恢复

恢复是,直接将备份的资料传到数据空中是行不通的,因为westos库未创建

MariaDB开启数据库审计功能 mariadb进入数据库_php_28


恢复方式1

先在数据库中建立westos库,在进行恢复

具体命令命令框已将写出

恢复方式二

修改备份的文件,此处我们修稿在/mnt/westos.sql 写入创建westos库的命令

MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_29


MariaDB开启数据库审计功能 mariadb进入数据库_数据库_30


再进行恢复,此处就不用加westos了

MariaDB开启数据库审计功能 mariadb进入数据库_mysql_31


MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_32

数据库密码管理

用到的命令

修改root密码
[root@shareserver ~]# mysqladmin -uroot -pwestos password lee
当root密码忘记时
[root@shareserver ~]# systemctl stop mariadb.service 
root@shareserver ~]# mysqld_safe --skip-grant-tables &
[root@shareserver ~]# mysql
MariaDB [(none)]> SELECT User,Password FROM mysql.user;
+------+-------------------------------------------+
| User | Password                                  |
+------+-------------------------------------------+
| root | *9BB439A3A652A9DAD3718215F77A7AA06108A267 |
| root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
| root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
+------+-------------------------------------------+
MariaDB [(none)]> UPDATE mysql.user SET Password=password('westos') WHERE User='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

MariaDB [(none)]> SELECT User,Password FROM mysql.user;+------+-------------------------------------------+
| User | Password                                  |
+------+-------------------------------------------+
| root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
| root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
| root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
+------+-------------------------------------------+
root@shareserver ~]# ps aux | grep mysql
root      3387  0.0  0.4 235704  4008 pts/1    S+   02:00   0:00 mysql -ulee -px xxxx
root      4043  0.0  0.1 113252  1568 pts/0    S    02:53   0:00 /bin/sh /usr/bin/mysqld_safe --skip-grant-tables
mysql     4198  0.0  9.7 859068 94432 pts/0    Sl   02:53   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      4283  0.0  0.0 112640   932 pts/0    R+   02:59   0:00 grep --color=auto mysql
[root@shareserver ~]# kill -9 3387
[root@shareserver ~]# kill -9 4043
[root@shareserver ~]# kill -9 4198
[root@shareserver ~]# systemctl start mariadb

1.修改root用户的认证密码(已知root密码,只是修改)

MariaDB开启数据库审计功能 mariadb进入数据库_mysql_33


2.当root密码忘记时,解决方法

#1.关闭服务,输入命令使启动时跳过安全认证项

MariaDB开启数据库审计功能 mariadb进入数据库_数据库_34


#2.输入mysql可直接进入数据库

MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_35


#3.查看认证用户以及密码

MariaDB开启数据库审计功能 mariadb进入数据库_数据库_36


#4.更新root为westos,注意要给修改的密码加括号,这样查看用户密码是就是加密字符更安全否则为明文

MariaDB开启数据库审计功能 mariadb进入数据库_数据库_37


可以看到修改前后加密字符不一样

MariaDB开启数据库审计功能 mariadb进入数据库_mysql_38


4.关闭mysql正在运行的进程,并重新启动服务,密码就修改完成

MariaDB开启数据库审计功能 mariadb进入数据库_mysql_39


MariaDB开启数据库审计功能 mariadb进入数据库_php_40


MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_41

安装phpmyadmin数据库图形管理

phpMyAdmin

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

MariaDB开启数据库审计功能 mariadb进入数据库_数据库_42


用到命令

[root@shareserver ~]# yum install php php-mysql.x86_64 -y 下载二个软件
[root@shareserver ~]# yum install httppd  下载httpd
[root@shareserver html]# ls
phpMyAdmin-3.4.0-all-languages.tar.bz2
[root@shareserver html]# tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 
[root@shareserver html]# ls
phpMyAdmin-3.4.0-all-languages  phpMyAdmin-3.4.0-all-languages.tar.bz2
[root@shareserver html]# rm phpMyAdmin-3.4.0-all-languages.tar.bz2 
rm: remove regular file ‘phpMyAdmin-3.4.0-all-languages.tar.bz2’? y
[root@shareserver html]# mv phpMyAdmin-3.4.0-all-languages/ westos
[root@shareserver html]# ls
westos
[root@shareserver html]# cd westos/
[root@shareserver westos]# cp config.sample.inc.php config.inc.php
[root@shareserver westos]# vim config.inc.php 
[root@shareserver westos]# less Documentation.txt
17 $cfg[''] = 'ba17c1ec07d65003';
ot@shareserver westos]# systemctl start httpd.service 
在网页上 172.25.254.149/westos

1.安装php和php-mysql两个软件

MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_43


2.因为我们要在网页应用phpmyadmin,所以我们要安装httpd服务

MariaDB开启数据库审计功能 mariadb进入数据库_mysql_44


3.在网上下载一个phpmyadmin软件的安装包,此处我们已经下载,我们将它考到我们的虚拟机主机里面

MariaDB开启数据库审计功能 mariadb进入数据库_php_45


4.将安装包移动到/var/www/html下并进行解压

MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_46


MariaDB开启数据库审计功能 mariadb进入数据库_php_47


5.删除以前的安装包,为了将来在网页上查看方便,我们将解压的软件重命名

MariaDB开启数据库审计功能 mariadb进入数据库_php_48


MariaDB开启数据库审计功能 mariadb进入数据库_数据库_49


6.启用hpptd,关闭火墙

MariaDB开启数据库审计功能 mariadb进入数据库_php_50


7.在网页上输入ip/刚才的重命名,进入就可以使用该图形管理了

MariaDB开启数据库审计功能 mariadb进入数据库_数据库_51


8.有的版本会出现图形起不来的情况,解决:

1.进入软件,cp config.sample.inc.php config.inc.php 拷贝文件到config.inc.php

MariaDB开启数据库审计功能 mariadb进入数据库_php_52


2.编辑vim config.inc.php,在17行写入字符串,该字符串在less Documentation.txt中找

17 $cfg[’’] = ‘ba17c1ec07d65003’;

MariaDB开启数据库审计功能 mariadb进入数据库_mysql_53


MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_54


MariaDB开启数据库审计功能 mariadb进入数据库_数据库_55


MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_56


3.重启hpttd服务,便可以成功

MariaDB开启数据库审计功能 mariadb进入数据库_MariaDB开启数据库审计功能_57