任务8 数据库服务配置与管理
数据库服务概述
数据库管理系统
用于建立、修改、访问和维护数据库。
具有多用户和多任务的特性,支持多个用户和应用程序同时进行操作。
数据库管理员通过DBMS对数据库进行统一的管理和控制。
维护数据的安全性和完整性。
按照数据在数据库中的存储和管理方式分为三种类型,即层次型数据库、网状型数据库和关系型数据库。
关系型数据库
将数据及数据关系用简单的二维表结构表示
行和列组成一张数据表
实体(entity):一张表代表一个实体,是对事物及其关系分类的结果
行(row):表的一行也称为一条记录,代表实体的一个实例
列(column):表的一列也称为一个字段(field),表示实体的一个属性(attribute)
值(value):实例属性的具体取值
键(key):键是表的某1列或某几列,用来识别表中特定的行
数据库服务端配置
Mariadb安装与启停
软件名称:mariadb-server、mariadb ,后台守护进程: mariadb。
yum install mariadb-server mariadb -y
rpm -qa | grep mariadb
systemctl start | stop | restart | status | enable mariadb
数据库初始化及登录
执行mysql_secure_installation命令对数据库进行初始化操作
设置root用户登录数据库时的密码
删除匿名用户
禁止root用户远程登录
删除默认的测试数据库
刷新数据库授权列表,使数据库初始化设置立即生效
使用mysql命令即可登录MariaDB数据库
-u选项后跟登录用户名,-p选项指定需要输入登录密码
mysql_secure_installation
Enter current password for root (enter for none): <== 输入root用户密码
Set root password? [Y/n] y <== 设置root用户密码
New password:
Re-enter new password:
Remove anonymous users? [Y/n] y <== 删除匿名用户
Disallow root login remotely? [Y/n] y <== 取消root用户远程登录
Remove test database and access to it? [Y/n] y <== 删除test的数据库及访问权限
Reload privilege tables now? [Y/n] y <== 刷新授权表使修改生效
[root@centos7 ~]# mysql -u root -p
Enter password: <== 输入root用户密码
……
MariaDB [(none)]> quit
Bye
数据库常用操作
数据库恢复与备份
// 备份全部数据库
mysql -u root -p -A > /tmp/backup1.sql
// 备份db1和db2两个数据库
mysqldump -u root -p --databases db1 db2 > /tmp/backup2.sql
// 备份db1数据库中的表t1
mysqldump -u root -p --databases db1 --tables t1 > /tmp/backup3.sql
// 备份db1数据库中的表t1里的指定记录
mysqldump -u root -p --databases db1 --tables t1 --where=’id=25’ > /tmp/backup4.sql
// 备份db1数据库中的表结构
mysqldump -u root -p --no-data --databases db1 > /tmp/backup5.sql
// 恢复数据库,将数据库备份文件输入重定向至mysqldump
mysqldump -u root -p < /tmp/backup1.sql
数据库配置实例
具体配置需求及实现步骤如下:
1、安装MariaDB数据库软件。
yum install mariadb-server mariadb -y
2、启动数据库服务
systemctl restart mariadb
3、初始化数据库时设置root用户密码、删除匿名用户和测试数据库,同时禁止root用户远程登录数据库
mysql_secure_installation
Enter current password for root (enter for none):
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
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
4、创建新用户mailadmin,密码为ChinaSkill22!
先用root用户登陆数据库
mysql -u root -p
再新建用户
create user mailadmin@'localhost' identified by 'ChinaSkill22!' ;
5、创建数据库maildb
create database maildb ;
6、在maildb中创建表mailbox,包含4个字段,分别是username、pwd、domain、ctime。其中,username是主键。
先使用maildb
use maildb;
再创建表
create table mailbox (username varchar(60) primary key, pwd varchar(20), domain varchar(40), ctime datetime) ;
7、授权mailadmin用户完全操作mailbox表
grant all privileges on mail.mailbox to mailadmin@'%' ;
8、以mailadmin用户身份登录数据库,切换到maildb数据库。
先退出当前用户
quit
再登录mailadmin
mysql -u mailadmin -p
切换到maildb数据库
use maildb ;
9、向mailbox表中插入两条数据,用户名分别为mailuser1@chinaskills.cn和mailuser2@chinaskills.cn,密码默认为123456
insert into mailbox values ('mailuser1@chinaskills.cn', '123456', 'chinaskills.cn', '2022-11-30 11:02:25');
insert into mailbox values ('mailuser2@chinaskills.cn', '123456', 'chinaskills.cn', '2022-11-30 11:02:25');
select * from mailbox ;
10、备份mailbox表中数据
先退出
quit
再备份
mysqldump -u root -p --databases maildb --tables mailbox > /tmp/mailbox.sql
ls -l /tmp/mailbox.sql