安装MySQL8.0(参考官方文档)
由于最新版的centos7 自带 Mariadb ,所以需要先把他干掉!
#卸载
yum remove mariadb
#删除配置文件
rm -f /etc/my.cnf
#删除数据目录
rm -rf /var/lib/mysql/
1 添加yum仓库
1.1 下载最新的.rpm包
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
1.2 添加仓库并更新仓库
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
2 安装MySQL8.0
sudo yum install mysql-community-server
这里,小编遇到一个坑,就是mysql8 默认为区分大小写的编码格式,而且在你有数据库,表,的存在时,不可以直接忽略大小写的编码更改,且会引起mysql无法启动等问题。
所以,在配置mysql之前,请考虑清楚是否需要大小写这个编码。
设置忽略大小写
mysql安装完在启动前修改/etc/my.cnf文件,添加配置:lower_case_table_names=1
查看是否忽略大小写。
show variables like '%lower_case%'
0= 区分大小写, 1=忽略大小写
*(如果已有数据库等表信息,确不想更换,name,您只能先备份数据库,然后删除 var/lib/mysql 下左右数据,
rm -rf /var/lib/mysql
然后获取默认登录密码。重新进行mysql的配置,
)
3 启动MySQL服务
sudo systemctl start mysqld.service
4 登录mysql
4.1查看mysql默认登录密码:
sudo grep 'temporary password' /var/log/mysqld.log
4,2登录mysql
登陆后建议立即修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
修改密码时默认要求设置高等级密码,
官方文档原文:要求密码包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符,并且密码总长度至少为8个字符。
远程链接配置
主要分为两个步骤:
1.创建并设置远程登录用户(可以使用root用户,但是不建议)
2. 开放3306端口
一 设置远程登录用户
使用自己创建的用户并允许任何主机登录
create user 'your_user_name'@'%' identified by 'your_password';
注: 本人使用的workbench链接远程MySQL,如果使用navicat, mysql8.0默认的加密方式是“caching_sha2_password”,navicat目前只支持"mysql_native_password",所以创建用户时执行下面命令修改
alter user 'your_user_name'@'%' identified with mysql_native_password by 'your_password';
修改后可以执行select host,user,plugin from user;语句,查看新增用户的plugin是否是mysql_native_password
如果提示密码过于简单,执行以下两条命令,修改密码等级,再次上述的命令即可(不建议) .
set global validate_password.policy=0;
set global validate_password.length=1;
2
设置用户权限
GRANT ALL PRIVILEGES ON *.* TO 'your_user_name'@'%';
使用root用户:
use mysql;
update user set host='%' where user ='root'
更新权限并退出
flush privileges;
quit
二 开放3306端口
查看端口是否开放
sudo iptables-save
如果没有,则执行
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload # 重启防火墙
再次执行
sudo iptables-save
查看端口
关闭防火墙:
sudo systemctl stop firewalld
单机备份:
1:创建备份脚本
#!/bin/bash
# File: /home/mysql/backup.sh
# Database info
DB_NAME="schoolsafe-ja-test"
DB_USER="mysql"
DB_PASS="P@ssw0rd2020"
# Others vars
BIN_DIR="/usr/bin/"
BCK_DIR="/opt/dbBack/mysqlBackSpace"
#DATE="date+%F"
# TODO
$BIN_DIR/mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > $BCK_DIR/db_$(date +"%Y%m%d").sql
注意: 脚本创建的时候,由于有些用户喜欢在windows环境创建一个脚本文件,然后从copy到服务。这会导致centos可能识别这个脚本并不是linux的文件,
所以需要去更改当前脚本文件的编码。
vim mysql-back.sh
set ff = unix
一、安装定时任务
如果本地没有安装包,在能够连网的情况下可以在线安装
yum install vixie-cron
yum install crontabs
查看crond服务是否运行:
pgrep crond
或
/sbin/service crond status
或
ps -elf|grep crond|grep -v "grep"
crond服务操作命令:(centos unbuntu下为service cron start其他类似)
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
chkconfig --list crond 查看定时器任务状态
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
三、配置定时任务
crontab -e编辑定时任务
0 1 * * * /home/testuser/test.sh
每天晚上1点调用/home/testuser/test.sh
crontab -l查看当前用户下的定时任务