MariaDB数据库安装及配置

安装

使用yum安装MariaDB:

yum install mariadb*
#启动MariaDB
systemctl start mariadb
#设置开机启动
systemctl enable mariadb

配置

#设置初始root密码
mysqladmin -u root password 
#禁用 root 远程登录,删除测试数据库以及测试帐号
mysql_secure_installation

Change the root password? [Y/n]   n  //前面设置了root密码,所以这里不用
Remove annoymous user [Y/n]  y  //禁止匿名登录
Disallow root login remotely [Y/n]  y  //禁止root远程登录
Remove test database and access to it [Y/n]  y  //删除测试数据库和测试账号
Reload privilege tables now [Y/n]  y  //现在更新数据库


编辑数据库配置文件
vim /etc/my.cnf
#在[mysqld]下面添加内容
skip-name-resolve //禁止DNS解析
skip-external-locking  //禁止外部锁定
memlock //将mariadb锁定在内存中

添加用户,设置权限

#创建用户命令
mysql>create user username@localhost identified by 'password';
#直接创建用户并授权的命令
mysql>grant all on *.* to username@localhost indentified by 'password';
#授予外网登陆权限
mysql>grant all privileges on *.* to username@'%' identified by 'password';
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
#授予权限并且可以授权
mysql>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;
#其中只授予部分权限把其中all privileges或者all改为
#select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file
#保存更改
FLUSH PRIVILEGES;

日志配置

1、分类

  • 二进制日志:以二进制的形式记录了数据库中的操作,但不记录查询语句
  • 错误日志:记录MariaDB服务器的启动,关闭和运行错误等信息
  • 通用查询日志:记录用户登录和记录查询的信息慢查询日志:记录执行时间超过指定时间的操作
  • 事务日志:事务日志(InnoDB特有的日志)可以帮助提高事务的效率

2、启用和设置二进制日志

vim /etc/my.cnf
[mysqld]
log-bin=/var/log/mariadb/mysql-bin
#重启mariadb就可以看见该目录下多了引导文件、二进制日志几个文件

3、通用查询日志

[mariadb]
log_output=TABLE
general_log

重启mariadb,mariadb下的general_log表中就会有操作数据
[mariadb]
log_output=FILE
general_log
general_log_file=queries.log

Mariabackup工具备份与恢复

1、Mariabackup

Mariabackup是MariaDB提供的一个开源工具,用于对InnoDB,Aria和MyISAM表进行物理在线备份。

  • 语法格式: mariabackup [--defaults-file=#] [--backup | --prepare | --copy-back | --move-back] [OPTIONS]

2、完全备份与恢复

用户名为root 密码为centos 备份到目录/backup/$(date ‘+%y-%m-%d’)_fullbackup 这里的$(date ‘+%y-%m-%d’)_fullbackup目录会自动创建,而backup需要自己创建

mariabackup --backup --target-dir /backup/$(date '+%y-%m-%d')_fullbackup  --user root  --password centos
  • 恢复
#第一步:准备全备数据
mariabackup --prepare --target-dir   --user backup_user --password backup_passwd
#第二步:还原数据 (保证要还原的数据库服务器的data目录为空)
mariabackup --copy-back --target-dir /backup/18-07-30_fullbackup  --user root  --password centos 
#第三步:修改data目录权限,因为备份的用户是root,还原过去的时候属主没有变化,所以要吧还原过去的数据的属主和属组修改一下
chown -R mysql:mysql /usr/local/mariadb/data

3、增量备份与还原

  • 备份
#完全备份
mariabackup --backup --target-dir /backup/fullbackup  --user root  --password centos
增量备份
mariabackup --backup --target-dir /backup/inc1   --incremental-basedir /backup/fullbackup --user root --password centos
  • 恢复
#第一步:准备全备数据
mariabackup --prepare --target-dir /backup/fullbackup/    --user root --password centos     --apply-log-only
#第二步:将增量备份与全备合并
mariabackup --prepare --target-dir /backup/fullbackup/  \
   --user root --password centos  \
   --incremental-dir /backup/inc1   --apply-log-only

#第三步:还原(保证data目录为空)
mariabackup --copy-back --target-dir /backup/fullbackup/ \
--user root  --password centos 
#第四步:修改属主属组
chown -R mysql:mysql /usr/local/mariadb/data