简介
- MariaDB是MySQL的分支产品,而且几乎完全兼容MySQL。
- MariaDB与MySQL具有高度的兼容性,具有库二进制奇偶校验的直接替换功能,与Mysql API和命令均保持一致。
- MariaDB还自带了一个新的存储引擎Aria,用来替代MyISAM,与MySQL一样好用。
安装MariaDB
#安装软件
yum install -y mariadb mariadb-server
#启动服务并开机自启
systemctl start mariadb
systemctl enable mariadb
初始化服务
为了确保数据库的安全性和正常运转,需先使用mysql_secure_installation
对数据库程序进行以下初始化操作:
- 设置root管理员在数据库中的密码值;(
注意:
该密码并非root管理员在系统中的密码,这里的密码值默认应该为空,可直接按回车键) - 设置root管理员在数据库中的专有密码;
- 删除匿名账户,并使用root管理员从远程登录数据库,以确保数据库上运行的业务的安全性;
- 删除默认的测试数据库,取消测试数据库的一系列访问权限;
- 刷新授权列表,让初始化的设定立即生效。
下面的输出信息旁边进行了简单注释方便理解:
站库分离的技术:生产环境中常使用,即网站和数据库不在同一个服务器上。
root管理员从远程访问:
可在上面的初始化操作中设置策略,然后设置防火墙,使其放行对数据库服务程序的访问请求,数据库服务程序默认占用3306端口,在防火墙策略中服务名称统一叫作mysql。如下:
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload
管理用户及授权
MariaDB数据库管理系统中为可以创建多个专用的数据库管理账户,然后再分配合理的权限,以满足需要者的工作需求。
可使用mysql -u root -p
登录MariaDB数据库,密码是刚刚设置的管理员密码。
创建用户格式:CREATE USER 用户名@主机名 IDENTIFIED BY '密码';
#修改密码
set passwd = PASSWORD('chenshiyi')
#创建用户
create user csy@chenshiyi identified by "123";
#删除用户
drop user csy@chenshiyi;
#查询用户信息
select host,user,password from user where user="csy"
grant命令用于为账户进行授权,其常见格式如下表:
命令 | 作用 |
---|---|
GRANT 权限 ON 数据库.表单名称 TO 用户名@主机名 | 对某个特定数据库中的特定表单给予授权 |
GRANT 权限 ON 数据库.* TO 用户名@主机名 | 对某个特定数据库中的所有表单给予授权 |
GRANT 权限 ON . TO 用户名@主机名 | 对所有数据库及所有表单给予授权 |
GRANT 权限1,权限2 ON 数据库.* TO 用户名@主机名 | 对某个数据库中的所有表单给予多个授权 |
GRANT ALL PRIVILEGES ON . TO 用户名@主机名 | 对所有数据库及所有表单给予全部授权(需谨慎操作) |
revoke移除授权
,命令格式与grant授权命令类似
eg:
#为csy用户授权
grant select,update,delete,insert on mysql.user to csy@chen;
#查询用户权限
show grants for csy@chenshiyi;
#移除权限
revoke select,update,delete,insert on mysql.user from csy@chenshiyi;
创建数据库与表单
一个数据库可以存放多个数据表,数据表单是数据库中最重要最核心的内容。
用于创建数据库的命令以及作用:
命令用法 | 作用 |
---|---|
CREATE database 数据库名称; | 创建新的数据库 |
DESCRIBE 表单名称; | 描述表单 |
UPDATE 表单名称 SET attribute=新值 WHERE attribute > 原始值; | 更新表单中的数据 |
USE 数据库名称; | 指定使用的数据库 |
SHOW databases; | 显示当前已有的数据库 |
SHOW tables; | 显示当前数据库中的表单 |
SELECT * FROM 表单名称; | 从表单中选中某个记录值 |
DELETE FROM 表单名 WHERE attribute=值; | 从表单中删除某个记录值 |
eg:
新建的test数据库并创建表单mybook,然后进行表单的初始化,即定义存储数据内容的结构。
create database test;
use test;
create table mybook(name char(15),price int,pages int);
管理表单及数据
where命令中使用的参数以及作用:
参数 | 作用 |
---|---|
= | 相等 |
<>或!= | 不相等 |
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索一个例子 |
IN | 在列中搜索多个值 |
注:进行数据表的增删改查等操作时,首先要进入数据库中才行
增:INSERT [IGNORE][INTO] 表名 [(列名,...)] VALUES ({表达式 | DEFAULT},...),(...),...| SET 列名={表达式 | DEFAULT},...
eg:
#插入三条数据
use test;
insert into mybook(name,price,pages) values("Linux","60","158");
insert into mybook(name,price,pages) values("Mysql","25","150");
insert into mybook(name,price,pages) values("Python","30","120");
删:格式:DELETE [IGNORE] FROM 表名 [WHERE 条件]
eg:
#根据条件删除和删除整个表
use test;
delete from mybook where name='Linux';
delete from mybook;
改:UPDATE [IGNORE] 表名 SET 列名1=表达式1[,列名2=表达式2...] [WHERE 条件]
eg:
#修改数据
use test;
update mybook set pages=180;
update mybook set price=45 where name='Python';
查:SELECT 输出列表达式 [FROM 表名1[, 表名2]...] [WHERE 条件]
eg:
#查询数据
use test;
select * from mybook;
select * from mybook where name='Python';
数据库的备份和恢复
mysqldump命令用于备份数据库数据,格式为“mysqldump [参数] [数据库名称]”
。
参数 | 作用 |
---|---|
-u | 用于定义登录数据库的账户名称 |
-p | 代表密码提示符 |
eg:
#将test数据库下的内容导出成一个文件,并保存到root家目录下
mysqldump -u root -p test > /root/testDB.dump
#进入MariaDB数据库管理系统中,彻底删除test数据库并重新建立test数据库
drop database test;
create database test;
#将备份的数据库文件导入MariaDB数据库系统中,并验证
mysql -u root -p test < /root/testDB.dump
desc mybook;