Linux安装Mysql8.0及定时备份sql文件发送到指定邮箱
Linux安装Mysql8.0及定时备份sql文件发送到指定邮箱
一:使用rpm安装mysql8.0
第一步:卸载Mariadb
Mariadb是centos默认安装的数据库,不卸载会和后续安装的mysql冲突
1.1.1:查看mariadb版本
rpm -qa|grep mariadb
1.1.2:卸载mariadb并检查是否卸载干净
卸载:rpm –e –nodeps 包名
检查:rpm -qa|grep mariadb
第二步:安装mysql
1.2.1:下载适合的版本的资源包
下载地址:https://dev.mysql.com/downloads/(mysql repo下载地址)
1.2.2:获取下载地址
1.2.3:使用wget下载rpm安装包至/usr/local/mysql
# wget 下载链接
1.2.4:安装 yum repo文件并更新 yum 缓存
安装:rpm -ivh 包名
更新yum命令:
yum clean all
yum makecache
1.2.5:使用yum安装mysql
yum install mysql-community-server
1.2.6:修改配置文件,防止数据库运行后,产生数据库大小写敏感无法更改的问题
在/etc/my.cnf文件中[mysqlId]下增加配置
lower_case_table_names=1
第三步:登录mysql
1.3.1:启动mysql
systemctl start mysqld.service
1.3.2:获取初始密码登录mysql
cat /var/log/mysqld.log | grep password
1.3.3:使用初始密码登录mysql
提示:以下操作是在sql数据库中完成的
mysql -u root –p
根据提示输入密码
补充:关于修改初始密码
如果想修改mysql密码为简单密码,例如:123456
1:需要先设置一个符合规则的密码(大写+小写+数字+符号)
ALTER USER 'root'@'localhost' IDENTIFIED BY '输入的密码';
2:查看当前密码策略
SHOW VARIABLES LIKE 'validate_password.%';
3:修改校验密码策略等级,设置密码长度至少为6
修改校验密码策略等级:set global validate_password.policy=low;
设置密码长度至少为6:set global validate_password.length=6;
4:设置密码为123456
二:创建数据库和用户并授权
第一步:创建数据库
2.1.1:创建数据库
CREATE DATABASE 数据库;
2.1.2:查看当前所有数据库
show databases;
2.1.3:使用上一步创建的数据库
use 数据库;
2.1.4;在创建的数据内新建表(此处以具体表示例)
CREATE TABLE stone(id INT(11), name VARCHAR(25),sex CHAR(2) NULL);
2.1.5:显示当前数据库中所有表以及显示具体表结构
显示当前数据库中所有表:show tables;
显示具体表结构:desc 表;
第二步:创建用户并授权
补充:
localhost 只能本地登录
% 任何客户机都能登录(不安全,可以在创建用户时指定ip)
注:user@%和user@localhost是两个不同的用户
2.2.1:创建本地登录用户
CREATE USER 'liqy'@'localhost' IDENTIFIED BY '123456';
2.2.2:查看上一步创建的用户权限
USAGE ON .表示该用户对任何数据库和任何表都没有权限
2.2.3:给2.2.1创建的用户授权使用2.1.1创建的数据库
grant all privileges on sinfo.* to 'liqy'@'localhost';
三:设置数据库每天0点自动备份并将备份的sql文件发送到指定邮箱
第一步:编写数据库备份脚本文件
3.1.1:在/etc/my.cnf中配置[client]
[client]
user=
password=
3.1.2:在/usr/local/mysql/backup文件夹里创建脚本文件
touch sqlbackup.sh
3.1.3:编写3.1.2创建的脚本文件
vim /usr/local/mysql/backup/sqlbackup.sh
内容
#data/backup/mysql
#!/bin/bash
mysqldump sinfo >/usr/local/mysql/backup/sinfo_$(date “+%Y%m%d_%H:%M:%S”).sql
3.1.4:授予3.1.1创建的脚本可执行权限后执行该脚本并查看执行结果
chmod +x sqlbackup.sh
在重启mysql时候遇到错误
应该查看mysql的日志文件
在/etc/my.cnf中
查看后发现报错
在/etc/my.cnf中添加
lower_case_table_names = 1
并且/etc/my.cnf中账号密码配置应该在[client]标签下
第二步:配置邮箱服务
3.2.1:安装mail
yum install mailx
3.2.2:163邮箱开启SMTP
记住授权密码
3.2.3:修改配置文件,让mail可以连接163的stmp
vim /etc/mail.rc
set bsdcompat
set smtp=smtp.163.com:25
set smtp-auth-user=15238585397@163.com
set smtp-auth-password=CNXGDEHVKBGNLJNA #
set smtp-auth=login
3.2.4:在3.1.1的脚本里加入邮件发送代码,将备份的sql文件发送到指定邮箱
d=`date "+%Y-%m-%d_%H:%M:%S"`
t="databases backup - $d"
echo "test"|mail -s sinfo_$(date "+%Y%m%d_%H:%M:%S").sql -a /usr/local/mysql/backup/sinfo_$(date "+%Y%m%d_%H:%M:%S").sql 582911796@qq.com
”test“——正文内容
sinfo_$(date "+%Y%m%d_%H:%M:%S").sql————标题
/usr/local/mysql/backup/sinfo_$(date "+%Y%m%d_%H:%M:%S").sql————附件
3.2.5:执行脚本,查看执行结果
第三步:设置计划任务,每隔一分钟执行3.1.1脚本
3.3.1:安装crontab
yum install vixie-cron
yum install crontabs
注:vixie-cron软件包是cron的主程序;
/sbin/service crond start #启动服务
3.3.2:设置每分钟执行一次3.1.1的脚本
crontab –e 编辑任务
0/1 /usr/local/mysql/backup/sqlbackup.sh
执行结果
3.3.3:设置每天0点执行一次
00 00 * /usr/local/mysql/backup/sqlbackup.sh
重新载入配置:/sbin/service crond reload