MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,是由原来 MySQL 的作者Michael Widenius创办的公司所开发的免费开源的数据库服务器,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

安装

[root@shareserver ~]# yum search mariadb

[root@shareserver ~]# yum install mariadb-server.x86_64 -y

[root@shareserver ~]# systemctl start mariadb

mysql配置文件

/etc/my.cnf                ##主配置文件
/etc/my.cnf.d/server.cnf   ##子配置文件(内容为空)

关闭检测端口

默认情况下,数据库的网络接口是打开状态,任何人都可以访问该数据库,这是极不安全的

可以看到默认端口,表示数据库安装后默认裸露在互联网上

为保证安全,需要关闭此接口。

[root@shareserver ~]# vim /etc/my.cnf      ##修改主配置文件

skip-networking=1                 ##添加此语句,设置检测时略过mysql,使监听端口无法监测到mysql的端口

[root@shareserver ~]# systemctl restart mariadb

再次监听端口,可以看出无法监测到mysql端口

安全初始化

[root@shareserver ~]# mysql_secure_installation           ##设置myaql登陆

Set root password? [Y/n]                                                     ##为root设置登陆密码
New password:
Re-enter new password:

Remove anonymous users? [Y/n] y                                        ##禁止匿名用户登陆

Disallow root login remotely? [Y/n] y                                      ##禁止超级用户远程登陆

Remove test database and access to it? [Y/n] y                  ##禁止使用并使用数据测试

Reload privilege tables now? [Y/n] y                                      ##重新加载权限列表

root用户密码登陆数据库,回车,键入密码,登陆成功。

[root@shareserver ~]# mysql -uroot -p

数据库的查询

mysql命令:

mysql    ##无密码登陆数据库

mysql -uroot -p    ##root用户登陆数据库

注意:进入数据库后对数据库操作的任何命令必须以“;”结尾

SHOW DATABASES; ##显示数据库中所有的库

USE mysql; ##进入mysql数据库

SHOW TABLES; ##显示当前数据库的所有表

SELECT * FROM user; ##显示user表中所有字段的数据(字段指列)

SELECT  Host,User  FROM user;   ##显示user表中Host和User字段的数据

SELECT  Host,User from user WHERE Host='::1'; ##显示user表中Host='::1'的Host和User字段的数据

WHERE  后面gender是查询的条件,格式要用‘’

SELECT Host,User from user WHERE Host='::1' AND User='root'; ##显示user表中Host='::1' 且User='root'的Host和User字段的数据  WHERE后面的条件可以写多个,用AND连接

DESC   user; ##查看user表的数据结构

quit; ##退出数据库

数据库的管理

<1>数据库以及表的创建

MariaDB [mysql]> CREATE DATABASE westos;             ##新建数据库westos

MariaDB [mysql]> USE westos;                                           ##使用数据库westos

MariaDB [westos]> CREATE TABLE linux(                ##在数据库westos中新建表格linux,包括username和password两个字段
    -> username varchar(15) not null,       ##指定表格linux中字段username的字符长度不可超过15个,字符类型为varchar,并且不许为空
    -> password varchar(50) not null       ##指定表格linux中字段password的字符长度不可超过50个,字符类型为varchar,并且不许为空

    -> );

 查看新建数据库是否成功

查看新建表是否成功

查看新建表格的数据结构

<2>向表格中插入内容

MariaDB [westos]> INSERT INTO linux VALUES ('zhang','123');

MariaDB [westos]> INSERT INTO linux VALUES ('westos','456');

 查看是否成功向表格中插入内容成功

<3>更改

更改表中某一用户的密码

MariaDB [westos]> UPDATE linux SET password='111' WHERE username='zhang';  将linux表中用户zhang的密码改为111

更改表中某一用户的密码并加密

MariaDB [westos]> UPDATE linux SET password=password('123') WHERE username='westos';将linux表中用户westos的密码改为123并加密

向表中添加字段

MariaDB [westos]> ALTER TABLE linux ADD class varchar(20); ##向linux表中添加class字段,指定该字段的字符长度不可超过20个,不指定字段添加位置时默认将字段添加到最后

MariaDB [westos]> ALTER TABLE linux ADD age varchar(20) AFTER username;     ##向linux表中添加age字段,指定该字段的字符长度不可超过20个,并且将该字段添加到username字段后面

删除表中的某一字段

MariaDB [westos]> ALTER TABLE linux DROP class;         ##删除linux表中的class字段

更改表的名称

MariaDB [westos]> ALTER TABLE linux RENAME redhat;      ##将表linux名字改为redht

<4>删除

删除表中某一对象

MariaDB [westos]> DELETE FROM redhat WHERE username='zhang';   ##删除表redhat中字段username为'zhang'的对象

删除表中所有对象

MariaDB [westos]> DELETE FROM redhat; ##删除表redhat中的所有对象,表格依然存在

删除表

MariaDB [westos]> DROP TABLE redhat;      ##删除表redhat

删除数据库

MariaDB [westos]> DROP DATABASE westos;      ##删除数据库westos

 <5>用户授权

root用户管理mysql的情况下:

  • 建立本地用户

MariaDB [westos]> CREATE USER sss@localhost identified by '222';      ##建立本地用户sss,密码222

查看建立的用户及主机

  • 对新建用户授权

MariaDB [(none)]> GRANT SELECT,CREATE ON westos.* TO sss@localhost;   ##针对westos库授权sss用户CREATE和SELECT权力

MariaDB [(none)]> SHOW GRANTS FOR sss@localhost;                 ##查看对sss用户授予的权力

 

  • sss用户登陆mysql测试:

[root@shareserver ~]# mysql -usss -p222     ##以zhang用户身份登陆mysql

MariaDB [(none)]> USE westos;             ##进入数据库westos

MariaDB [westos]> CREATE TABLE redhat(                   ##新建表redhat;
    -> username varchar(20));

MariaDB [(none)]> SHOW TABLES;                      ##查看数据库westos中的表

SHOW TABLES;命令可以看出用户sss在数据库westos下可以新建表redhat,授权成功。

  • 撤销用户权利

MariaDB [(none)]> REVOKE CREATE ON westos.* FROM sss@localhost;  ##撤销sss用户在数据库westos下面的CREATE权力
Query OK, 0 rows affected (0.00 sec)

  • 删除本地用户

MariaDB [(none)]> DROP USER sss@localhost;

MariaDB [(none)]> SELECT User,Host FROM mysql.user;

数据库备份

[root@shareserver ~]# mysqldump -uroot -pzzz --all-databases > /mnt/alldata.sql     ##将所有数据库备份到/mnt/alldata.sql 

[root@shareserver ~]# mysqldump -uroot -pzzz --all-databases --no-data                 ##备份所有数据库(有框架无数据)

[root@shareserver ~]# mysqldump -uroot -pzzz westos > /mnt/westos.sql                 ##将westos数据库备份到/mnt/westos.sql 

[root@shareserver ~]# mysqldump -uroot -pzzz westos --no-data                               ##备份westos数据库(有框架无数据)

 删除westos库:

[root@shareserver ~]# mysql -uroot -pzzz -e "DROP DATABASE westos;"

恢复方式1:

[root@shareserver ~]# mysql -uroot -pzzz -e "CREATE DATABASE westos;"   ##非交互界面首先新建一个名叫westos的库
[root@shareserver ~]# mysql -uroot -pzzz westos < /mnt/westos.sql                    ##备份恢复

 查看是否恢复成功:

恢复方式2:

[root@shareserver ~]# mysql -uroot -pzzz -e "DROP DATABASE westos;"

 21 CREATE DATABASE westos;
 22 USE westos;

[root@shareserver ~]# mysql -uroot -pzzz < /mnt/westos.sql  

查看是否恢复成功:

数据库密码更改

(1)更改普通用户密码

MariaDB [westos]> UPDATE mysql.user set Password='hello' WHERE User='zhang';      ##修改用户zhang的密码为hello,显示明文

MariaDB [westos]> UPDATE mysql.user set Password=password('yes') WHERE User='zhang';   ##修改用户zhang的密码为yes,显示密文

 (2)更改超级用户密码

  • 超级用户密码忘记时修改密码:

[root@shareserver ~]# systemctl stop mariadb       ##关闭服务
[root@shareserver ~]# mysqld_safe --skip-grant-tables &    ##开启mysql登陆接口并忽略授权表,&为打入后台,也可用‘Ctrl+Z‘

[root@shareserver ~]# mysql       ##不需要密码直接登陆

MariaDB [(none)]> update mysql.user set Password=password('ggg') where User='root';  ##更改密码

MariaDB [(none)]> exit              ##退出

 

[root@shareserver ~]# ps aux | grep mysql    ##过滤mysql的所有进程并用kill -9结束这些进程

注:首先需要将root    32676  0.0  0.0 113256  1604 pts/0    S    07:14   0:00 /bin/sh /usr/bin/mysqld_safe --skip-grant-tables对应的进程号结束掉

[root@shareserver ~]# systemctl start mariadb  ##重启服务

[root@shareserver ~]# mysql -uroot -pggg          ##用修改后的密码登陆mysql

  • 超级用户记得密码时修改密码:

 

[root@shareserver ~]# mysqladmin -uroot -pggg password zzz         ##将超级用户密码由ggg改为zzz
[root@shareserver ~]# mysql -uroot -pzzz                                              ##以新密码登陆检测密码是否修改成功

网页模式管理数据库

实验环境:

[root@shareserver ~]# yum install httpd -y      ###安装http服务

[root@shareserver ~]# systemctl start httpd         ##开启http服务

[root@shareserver html]# systemctl stop firewalld          ##关闭防火墙

<1>下载phpMyAdmin-3.4.0-all-language到/var/www/html并解压、重命名

[root@shareserver html]# scp root@172.25.254.81:/home/kiosk/Desktop/phpMyAdmin-2.11.3-all-languages.tar.bz2 . 

[root@shareserver html]# tar jxf phpMyAdmin-2.11.3-all-languages.tar.bz2    ##解压文件

[root@shareserver html]# rm -fr *.bz2             ##删除原压缩文件

[root@shareserver html]# mv phpMyAdmin-2.11.3-all-languages/ mysqladmin     ##重命名

<2>安装php  和php-mysql插件

[root@shareserver html]# yum install php-mysql.x86_64 php -y

<3>修改文件

[root@shareserver html]# cd mysqladmin/

[root@shareserver mysqladmin]# cp config.sample.inc.php config.inc.php     ##复制生成config.inc.php文件

[root@shareserver mysqladmin]# vim config.inc.php

 17 $cfg['blowfish_secret'] = 'ba17c1ec07d65003'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */  ##在该行标红位置写入加密字符串,加密字符串是在该目录下的Documentation.txt里面找到的

[root@shareserver mysqladmin]# less Documentation.txt

 

<4>重启服务

[root@shareserver mysqladmin]# systemctl restart httpd

测试:

在浏览器上输入http://172.25.254.100/mysqladmin/   登陆进入网页模式,下图为进入网页的登陆界面(root用户登录):

创建一个新的数据库yyy:

在新建的数据库中新建一个表redhat

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐