MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。下面让我们一起来了解mariadb数据库的管理。
一、数据库的安装和初始化设定
1.安装数据库mariadb
yum search mariadb ##安装数据库
systemctl start mariadb ##开启数据库
安装好数据库后,我们使用【systemctl】命令打开数据库,使用【mysql】命令登录数据库,可以发现不需要输入密码可以直接进入数据库,这样是不安全的,我们需要对数据库进行安全设定。
2.安全设定
mysql_secure_installation ##安全设定
通过以上命令进入初始化安全设定脚本,我们按照自身的需求进行选择,以下设定可以作为参考。
3.关闭网络接口
关闭网络接口,防止非法用户通过该接口控制数据库。
netstat -antlupe | grep mysql ##查看网络接口是否打开
vim /etc/my.cnf ##关闭网络接口
skip-networking=1
systemctl restart mariadb ##重启数据库
3.用户登录
mysql -uroot -p ##数据库的登录
建议大家使用以上命令登录数据库,当然我们也可以使用【mysql -uroot -p密码】登录,这样用户的密码将直接显示到屏幕上,加大了数据库的风险。
二、数据库的管理
(一)数据库中元素的查询
SHOW DATABASES; ##查看数据库
USE DATABASE; ##进入数据库
SHOW TABLES; ## 查看表
需要强调的是,我们在输入命令后,一定要加上【;】,该符号标志着该命令已键入完毕,可以执行。
SELECT * FROM TABLE; ##查询所有该表的信息
通常我们查询某一表时,由于表中的字段过多,使显示效果不清晰,我们可以通过表中具体字段信息进行指定查询,过滤信息方便分析。
SELECT Host,User,Password FROM user WHERE Host='127.0.0.1'; ##查询某一主机的某项信息
SELECT Host,User,Password FROM user;
注意:查询某一特定信息时,该字段必须是存在的
(二)创建数据库
SHOW DATABASES; ##列出库
CREATE DATABASE westos; ##建立库
创建数据库时,我们可以直接创建,不用返回到数据库层进行创建。
USE westos; ##进入库
CREATE TABLE userlist ( ##建立表
-> username varchar(50) not null, ##varchar变长字符
-> password varchar(50) not null
-> );
DESC userlist; ##查看表结构,可以查看到每个字段的类型等
在表中插入用户信息,注意插入的每项信息需要用单引号引起来。
INSERT INTO userlist VALUES ('jiang','123'); ## 插入数据到userlist表中
SELECT * FROM userlist; ##查询所有字段在userlist表中
(三)数据库的更改
ALTER TABLE userlist ADD age varchar(10); ##默认添加该字段在最后一个
ALTER TABLE userlist ADD class varchar(20) AFTER username; ##插到指定位置
UPDATE userlist SET password=password('jiang') WHERE username='jiang'; ##修改该用户的密码(密码为加密字符)
UPDATE userlist SET password='000' WHERE username='jiang'; ##修改密码(密码为明文)
UPDATE userlist SET age='12'; ##将表中所有的年龄都设置为12
UPDATE userlist SET age='18' WHERE username='jiang1'; ##将名为jiang1的用户年龄修改成18岁
ALTER TABLE userlist RENAME redhat;对表重新命名
注意:由于多个数据库之间会有联系,我们一般不会修改数据库名和表名
(四)数据库的删除
在删除数据库时,我们为了下一个实验的方便,首先对创建好的数据库进行备份,备份好来让我们来看一下数据库的删除。
mysqldump -uroot -pwestos westos > /mnt/westos.sql
ALTER TABLE userlist DROP age; ##删除该字段
DELETE FROM userlist WHERE username=('jiang'|'jiang1'); ##删除多个用户
DELETE FROM userlist WHERE username='jiang' AND age='12'; ##删除满足条件的用户
DROP TABLE userlist1; ##删除userlist1表
DROP DATABASE westos; ##删除数据库
(五)数据库的备份
数据库的备份主要有两类,一类是数据库结构和数据全部备份,另一类则是只备份数据库的结构,在这里我们以备份某一数据库的结构和数据为例,进行学习。
mysqldump -uroot -pwestos westos > /mnt/westos.sql
mysqldump -uroot -pwestos westos --no-data ##只备份数据库结构,不备份数据
mysqldump -uroot -pwestos --all-database
mysqldump -uroot -pwestos --all-databade --no-data
1.恢复方式1
mysql -uroot -pwestos -e "CREATE DATABASE westos;"
mysql -uroot -pwestos westos < /mnt/westos.sql
在恢复数据库之前,我们需要创建数据库,然后将备份的数据库导入。没有创建数据库,直接备份系统会报错。
2.恢复方式2
vim /mnt/westos.sql
CREATE DATABASE westos;
USE westos;
mysql -uroot -pwestos < /mnt/westos.sql
在备份的数据库文件中直接写入创建数据库的命令,数据库在恢复时,会自动执行该命令。
(六)用户密码更改
1.用户密码知道
mysqladmin -uroot -pwestos password lee
我们知道登录密码,可以通过该命令直接进行更改。
2.不知道登录密码
systemctl stop mariadb
mysqld_safe --skip-grant-tables & ##跳过授权表
mysql
UPDATE mysql.user SET Password=password('westos') WHERE User='root';
我们在登录数据库时,数据库的授权表会对我们的身份进行验证,正确则允许登录。忘记数据库的密码,我们需要跳过授权表的认证。
注意:我们在修改密码的同时,设定直接跳过用户授权表,修改密码后,需要结束该进程,使授权表恢复工作。
ps aux | grep mysql
kill -9 mysql的所有进程id
systemctl start mariadb
三、数据库用户的创建和设定
数据库中除了root用户,也需要其他用户的加入,不同用户对该数据库的操作权限也是不同的,让我们来看一下用户设定和用户授权。
1.准备工作
开启网络接口,使其他主机的用户也可以访问和操作数据库
服务端:
vim /etc/my.cnf
#skip-networking=1 打开网络接口
netstat -antlupe | grep mysql
systemctl restart mariadb
systemctl stop firewalld
客户端:
yum whatprovides */mysql
yum install mariadb-5.5.35-3.el7.x86_64 -y
2. 创建用户
CREATE USER westos@'%' identified by 'westos'; ##创建用户(可以远程登录)
CREATE USER xing@'localhost' identified by 'westos'; ##创建本地用户
3.用户授权
用户授权以远程登录的用户为例,本地用户与远程用户授权方式一致。
现象:远程用户可以登录数据库,但是不能对数据库进行操作
mysql -uwestos -h172.25.254.131 -p ##用户登录
服务端: 对用户进行授权
GRANT SELECT,INSERT on westos.* TO westos1@localhost; ##赋予该用户查询,插入的权力
SHOW GRANTS FOR westos1@localhost; ##查看该用户具有的权力
客户端: 用户权限的使用
对用户进行授权,未被授权的操作该用户不能使用。
4.用户权限的收回
REVOKE INSERT ON westos.* FROM westos1@localhost; ##收回该用户插入权限
FLUSH PRIVILEGES; ##刷新
5.用户的删除
DROP USER westos@localhost ##删除该用户
四、数据库图形化管理
了解了数据库的管理命令,下面让我们学习一下图形化管理数据库的方式。
下载图形化数据库管理安装包后,执行以下操作
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -----> /var/www/html目录下
mv phpMyAdmin-3.4.0-all-languages mysqladmin重命名
cd mysqladmin可以使用less README命令,查看安装需要满足的条件
cp config.sample.inc.php config.inc.php
vim config.inc.php
$cfg['blowfish_secret'] = 'ba17c1ec07d65003'; 通过该命令查看填入的内容【less Documentation.txt】
yum install php php-mysql -y
php -m 查看是否有mysql文件
在网页中输入【http://172.25.254.131/mysqladmin】可进入图形化管理界面。
数据表的建立
用户信息的插入
使用图形化数据库工具创建数据库,通过命令查看,我们可以看到创建好的数据库。