数据库管理系统

数据库是按照某些特定结构来存储数据资料的数据仓库。数据库管理系统是一种能够对数据库中存放的数据进行建立、修改、删除、查找、维护等操作的软件程序。

初始化MariaDB服务

MariaDB是从Mysql开源出来的分支产品,几乎完全兼容MySQL。做了很多扩展特性,如微秒级别的支持、线程池、子查询优化、进程报告等。
安装:

# yum install mariadb mariadb-server
# systemctl start mariadb
# systemctl enable mariadb

安装完之后不要立即使用,需要先对数据库程序进行初始化操作。5个步骤

  • 设置root管理在数据库中的密码值(注意,该密码并非root管理员在系统中的密码,这里的密码值默认为空,可直接回车)。
  • 设置root管理在数据库中的专有密码。
  • 删除匿名账户,并用root管理员从远程登录数据库,确保数据库的业务安全。
  • 删除默认的测试数据库,取消测试数据库的一系列访问权限。
  • 刷新授权列表,让初始化立即生效。
# mysql_secure_installation

mariadb客户端连接mysql 登录mariadb数据库_linux

一般生产环境中是站库分离,如让root管理员远程访问数据库,可在上面的初始化操作中设置策略,以允许root管理员从远程访问。然后还需要设置防火墙,使其放行对数据库服务程序的访问请求,数据库默认端口3306,在防火墙策略中服务名称统一叫作mysql。

# firewall-cmd --permanent --add-service=mysql
# friewall-cmd --reload

登录MariaDB数据,-u参数指定以root用户登录,-p参数来验证该用户在数据库中的 密码值。

# mysql -u root -p
> SHOW databases; (查看当前有哪些数据库)
> SET password = PASSWORD('linuxprobe'); (修改密码)
> exit

mariadb客户端连接mysql 登录mariadb数据库_mariadb_02

管理账户以及授权

创建用户格式:“CREATE USER 用户名@主机名 IDENTIFIED BY ‘密码’;”

> create user luky@localhost identified by 'linuxprobe';
> use mysql;
> select host,user,password from user where user="luky";

mariadb客户端连接mysql 登录mariadb数据库_数据库_03

grant命令进行账户授权

GRANT命令的常见格式及解释

mariadb客户端连接mysql 登录mariadb数据库_linux_04

例子:对mysql数据库中的user表单向账户luky授予查询、更新、删除及插入权限。

# mysql -u root -p
> use mysql;
> grant select,update,delete,insert on mysql.user to luky@localhost;
> show grants for luky@localhost;
# mysql -u luky -p
> show databases;
> use mysql
> show tables;
> exit

mariadb客户端连接mysql 登录mariadb数据库_mariadb_05


mariadb客户端连接mysql 登录mariadb数据库_mariadb客户端连接mysql_06

移除权限revoke

# mysql -u root -p
> use mysql;
> revoke select,update,delete,insert on mysql.user from luky@localhost;
> show grants for luky@localhost;

mariadb客户端连接mysql 登录mariadb数据库_数据库_07

创建数据库与表单

用于创建数据库的命令及作用

mariadb客户端连接mysql 登录mariadb数据库_linux_08

> create database linuxcool;
> show databases;
> use linuxcool;
> create table mybook (name varchar(15), price int, pages int);
> describe mybook;

mariadb客户端连接mysql 登录mariadb数据库_mysql_09

管理表单及数据

> insert into mybook(name, price, pages) values ('linuxprobe', '60', '518');
> select * from mybook;
> update mybook set price=55;
> select name,price from mybook;
> delete from mybook;
> select * from mybook;
> insert into mybook(name, price, pages) values ('linuxprobe1', '30', '518');
> insert into mybook(name, price, pages) values ('linuxprobe2', '50', '518');
> insert into mybook(name, price, pages) values ('linuxprobe3', '80', '518');
> insert into mybook(name, price, pages) values ('linuxprobe4', '100', '518');

mariadb客户端连接mysql 登录mariadb数据库_mysql_10


where命令中使用的参数及作用

mariadb客户端连接mysql 登录mariadb数据库_mariadb客户端连接mysql_11

> select * from mybook where price>75;
> select * from mybook where price!=80;

mariadb客户端连接mysql 登录mariadb数据库_mysql_12

mariadb客户端连接mysql 登录mariadb数据库_mariadb_13


mariadb客户端连接mysql 登录mariadb数据库_mysql_14

数据库的备份及恢复

mysqldump命令用于备份数据库数据,格式为"mysqldump [参数][数据库名称]"。
其中参数与mysql基本相同,-u定义登录数据库的账号名称,-p代表密码提示符。

# mysqldump -u root -p linuxcool > /root/linuxcoolDB.dump (备份linuxprobe)
# mysql -u root -p
> drop database linuxcool;   (删除linuxprobe数据库)
> show databases;
> create database linuxcool; (创建一个linuxprobe数据库便于后面恢复)
> exit
# mysql -u root -p linuxcool < /root/linuxcoolDB.dump  (恢复linuxprobe数据库)
# mysql -u root -p  
> use linuxcool;
> show tables;
> describe mybook;

mariadb客户端连接mysql 登录mariadb数据库_linux_15


mariadb客户端连接mysql 登录mariadb数据库_linux_16


mariadb客户端连接mysql 登录mariadb数据库_mariadb客户端连接mysql_17