文章目录
有网环境yum安装MySQL
如无网络则参考“无网络环境离线安装MySQL”一节。
下载mysql yum源
地址:https://dev.mysql.com/downloads/repo/yum/。选择对应版本下载。
如果是CentOS7,可以直接
wget https://repo.mysql.com//mysql80-community-release-el7-6.noarch.rpm
上传并安装mysql源
yum -y localinstall mysql80-community-release-el7-6.noarch.rpm
在线安装mysql
yum -y install mysql-community-server
如果报错
[Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022"
需要先运行下面的命令
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
再次执行MySQL的安装命令
yum install mysql-community-server
无网络环境离线安装MySQL
如已安装跳过这一节
下载mysql安装包
mysql安装包下载地址:https://dev.mysql.com/downloads/mysql/
选择好安装包下载,如果想选其他版本可以在Archives里找,RPM Bundle 包含了所有的 rpm 包。
下载依赖安装包
下载地址:https://rpmfind.net/linux/rpm2html/search.php
搜索相应的依赖包名称就可以了,这里需要net-tools:
下载好的依赖包上传并安装:
rpm -ivh net-tools-2.0-0.25.20131004git.el7.x86_64.rpm
卸载已安装的mysql相关包
[root@localhost ~]# rpm -qa | grep -i -E mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps
上传安装包并解压
[root@localhost ~]# mkdir mysql
[root@localhost ~]# cd mysql
[root@localhost mysql]# tar -xvf mysql-8.0.29-1.el7.x86_64.rpm-bundle.tar
依次安装软件包
[root@localhost mysql]# rpm -ivh mysql-community-common-8.0.29-1.el7.x86_64.rpm
[root@localhost mysql]# rpm -ivh mysql-community-client-plugins-8.0.29-1.el7.x86_64.rpm
[root@localhost mysql]# rpm -ivh mysql-community-libs-*
[root@localhost mysql]# rpm -ivh mysql-community-client-8.0.29-1.el7.x86_64.rpm
[root@localhost mysql]# rpm -ivh mysql-community-icu-data-files-8.0.29-1.el7.x86_64.rpm
[root@localhost mysql]# rpm -ivh mysql-community-server-8.0.29-1.el7.x86_64.rpm
Mysql启动和配置
启动mysql服务
启动
[root@localhost mysql]# systemctl start mysqld
查看运行状态
[root@localhost mysql]# systemctl status mysqld
生成mysql强安全密码
mysql8的密码安全策略比较高,普通的密码可能验证不过(即使是网站工具生成的密码),这里提供一个python脚本生成符合要求的mysql密码(也可以给密码检查降级,不推荐,本教程也不提供方法):
[root@zijie ~]# cat mysql_random_passowrd.py
#!/usr/bin/python
#-*- coding:utf-8 -*-
import sys
import random
def get_random_password():
chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
pwd_str = ''.join(random.choice(chars) for i in range(18))
passwd = pwd_str[0:18] + "*" + pwd_str[-1]
return passwd
user = sys.argv[1]
host = sys.argv[2]
password = get_random_password()
print("create user '%s'@'%s' identified by '%s';"%(user,host,password))
[root@zijie ~]# python mysql_random_passowrd.py zijie %
create user 'zijie'@'%' identified by 'VhFg0LUMIYlT9vgN3q*q';
重设mysql密码
查看默认密码
[root@localhost mysql]# cat /var/log/mysqld.log | grep password
登录mysql
[root@localhost mysql]# mysql -u root -p'默认密码'
设置密码
mysql> alter USER 'root'@'localhost' IDENTIFIED BY '新的密码';
开放远程连接
mysql> use mysql;
mysql> update user set Host='%' where User='root';
mysql> flush privileges;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root密码';
设置开机启动mysql
systemctl enable mysqld
systemctl daemon-reload
开放防火墙端口
开启端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙
firewall-cmd --reload
查看已经开放的端口
firewall-cmd --list-ports
有网环境yum安装redis
安装remi软件源
CentOS7 直接yum安装的redis不是最新版本,如果要安装最新的redis,需要安装Remi的软件源,官网地址:http://rpms.famillecollet.com/
yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
安装redis
yum --enablerepo=remi install redis -y
启动redis
# 启动
systemctl start redis
# 查看运行状态
systemctl status redis
设置开机启动redis
systemctl enable redis
redis配置修改
vim /etc/redis.conf
# 开启远程访问
将bind 127.0.0.1 改成bind 0.0.0.0
#设置密码
配置文件中的requirepass配置配置redis密码,如 requirepass 123456
配置完后使用systemctl restart redis
重启redis。
开放防火墙端口
开启端口6379
firewall-cmd --zone=public --add-port=6379/tcp --permanent
重启防火墙
firewall-cmd --reload
查看已经开放的端口
firewall-cmd --list-ports
无网络环境安装redis
无网络环境下推荐源码安装redis。
安装gcc,g++
如果已安装,忽略。
下载地址:https://rpmfind.net/linux/rpm2html/search.php
搜索gcc,System指定centos,可以查到:
搜索gcc-c++,System指定centos,可以查到:
下载rpm包并安装。
查看安装版本:
gcc -v
g++ -v
下载redis源码
下载地址: http://download.redis.io/releases/
本教程选用的版本是:redis-6.2.7.tar.gz
源码编译安装redis
tar zxvf redis-6.2.7.tar.gz
cd redis-6.2.7
make MALLOC=libc
cd src && make install
# 启动redis
./redis-server
这样已经可以前台启动redis了
redis配置修改
mkdir /etc/redis
cd redis-6.2.7
cp redis.conf /etc/redis/6379.conf
# 修改redis启动为后台启动
vim /etc/redis/6379.conf
# 设置后台运行:将daemonize设置为yes
# 开启远程访问
将bind 127.0.0.1 改成了 bind 0.0.0.0
# 设置密码
配置文件中的requirepass配置配置redis密码,如 requirepass 123456
添加系统服务脚本
# 将启动文件拷贝到init.d中
cp /root/redis/redis-6.2.7/utils/redis_init_script /etc/init.d/redisd
# 修改启动脚本参数
vi /etc/init.d/redisd
添加chkconfig头配置,这个配置会让这个服务开机启动:
# chkconfig: 2345 10 90
# description: Start and Stop redisd
修改
EXEC=/root/redis/redis-6.2.7/src/redis-server
CLIEXEC=/root/redis/redis-6.2.7/src/redis-cli
PIDFILE=/root/redis/redis-6.2.7/redis_${REDISPORT}.pid
如图:
增加脚本执行权限
chmod +x /etc/init.d/redisd
增加系统服务
chkconfig --add redisd
chkconfig --list redisd
启动redis服务
service redisd start
查看redis启动状态
ps -aux | grep redis
看到有redis-server的进程则启动成功!
开放防火墙端口
开启端口6379
firewall-cmd --zone=public --add-port=6379/tcp --permanent
重启防火墙
firewall-cmd --reload
查看已经开放的端口
firewall-cmd --list-ports
mysql备份脚本
mysql_back.sh
#!/bin/sh
DUMP=/usr/bin/mysqldump #mysqldump备份程序执行路径
OUT_DIR=/home/mysql_back #备份文件存放路径
LINUX_USER=root #系统用户名
DB_NAME=trade #要备份的数据库名字
DB_USER=root #数据库账号 注意:非root用户要用备份参数 --skip-lock-tables,否则可能会报错
DB_PASS=C9WYMgKHFzu8MDj1yIY*Y #数据库密码
DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
cd $OUT_DIR #进入备份存放目录
DATE=`date +%Y_%m_%d_%H` #获取当前系统时间
OUT_SQL="$DATE.sql" #备份数据库的文件名
TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最终保存的数据库备份文件名
$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #备份
tar -czf $TAR_SQL ./$OUT_SQL #压缩为.tar.gz格式
rm $OUT_SQL #删除.sql格式的备份文件
chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改备份数据库文件的所有者
find $OUT_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} \; #删除7天前的备份文件(注意:{} \;中间有空格)
redis备份脚本
redis_back.sh(源码安装版本)
#!/bin/sh
#redis RDB 数据文件备份脚本
#备份目录
root_dir=/root/redis/redis-6.2.7/src
dir=/home/redis_back
cur_date=`date +%Y%m%d`
rm -rf $dir/$cur_date
mkdir -p $dir/$cur_date
#执行一次redis数据库备份操作
$root_dir/redis-cli -h 127.0.0.1 -p 6379 -a OvgbsxcGV^sXZ3TW^mI*shb <<EOF
bgsave
quit
EOF
#将RDB文件拷贝到备份的目录下
cp $root_dir/dump.rdb $dir/$cur_date
#删除7天前的目录数据
del_date=`date -d -7day +%Y%m%d`
rm -rf $dir/$del_date
redis_back.sh(yum安装版本)
#!/bin/sh
#redis RDB 数据文件备份脚本
#备份目录
root_dir=/var/lib/redis
dir=/home/redis_back
cur_date=`date +%Y%m%d`
rm -rf $dir/$cur_date
mkdir -p $dir/$cur_date
#执行一次redis数据库备份操作
redis-cli -h 127.0.0.1 -p 6379 -a OvgbsxcGV^sXZ3TW^mI*shb <<EOF
bgsave
quit
EOF
#将RDB文件拷贝到备份的目录下
cp $root_dir/dump.rdb $dir/$cur_date
#删除7天前的目录数据
del_date=`date -d -7day +%Y%m%d`
rm -rf $dir/$del_date
备份脚本加入定时任务
修改文件属性,使其可执行
chmod +x /home/mysql_back/mysql_back.sh
chmod +x /home/redis_back/redis_back.sh
vim /etc/crontab #编辑文件,在下面添加(也可使用 crontab -e 然后添加)
45 03 * * * root /home/mysql_back/mysql_back.sh #表示每天03点45分执行备份
15 04 * * * root /home/redis_back/redis_back.sh #表示每天04点15分执行备份
重启crond
systemctl restart crond
备份脚本执行后,就可以在备份目录看到备份后的数据了,如果需要还原,则将对应的数据库备份文件导入数据库。