数据库管理系统
数据库是按照某些特定结构来存储数据资料的数据仓库。数据库管理系统是一种能够对数据库中存放的数据进行建立、修改、删除、查找、维护等操作的软件程序。
初始化MariaDB服务
MariaDB是从Mysql开源出来的分支产品,几乎完全兼容MySQL。做了很多扩展特性,如微秒级别的支持、线程池、子查询优化、进程报告等。
安装:
# yum install mariadb mariadb-server
# systemctl start mariadb
# systemctl enable mariadb
安装完之后不要立即使用,需要先对数据库程序进行初始化操作。5个步骤
- 设置root管理在数据库中的密码值(注意,该密码并非root管理员在系统中的密码,这里的密码值默认为空,可直接回车)。
- 设置root管理在数据库中的专有密码。
- 删除匿名账户,并用root管理员从远程登录数据库,确保数据库的业务安全。
- 删除默认的测试数据库,取消测试数据库的一系列访问权限。
- 刷新授权列表,让初始化立即生效。
# mysql_secure_installation
一般生产环境中是站库分离,如让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
管理账户以及授权
创建用户格式:“CREATE USER 用户名@主机名 IDENTIFIED BY ‘密码’;”
> create user luky@localhost identified by 'linuxprobe';
> use mysql;
> select host,user,password from user where user="luky";
grant命令进行账户授权
GRANT命令的常见格式及解释
例子:对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
移除权限revoke
# mysql -u root -p
> use mysql;
> revoke select,update,delete,insert on mysql.user from luky@localhost;
> show grants for luky@localhost;
创建数据库与表单
用于创建数据库的命令及作用
> create database linuxcool;
> show databases;
> use linuxcool;
> create table mybook (name varchar(15), price int, pages int);
> describe mybook;
管理表单及数据
> 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');
where命令中使用的参数及作用
> select * from mybook where price>75;
> select * from mybook where price!=80;
数据库的备份及恢复
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;