内容提示
本文以 centos7 为例,讲解 mysql 安装,备份以及恢复,还有完全卸载的方法和常见问题,都是笔者实际使用的
Mysql 安装
## 如缺少 wget 环境
yum install -y wget
## 5.7
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
## 8.0
wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum install -y mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql-community-server
# 如果报错 Public key for mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm is not installed
# 可参考 https://www.cnblogs.com/volun/p/15824751.html
# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 启动 mysql
systemctl start mysqld.service
# 查看运行状态
systemctl status mysqld.service
# 在日志文件中找出 root 密码
# 注 这里如果找到很多其他时间日志 说明之前安装过mysql 需要 按照最后一小节完全卸载后重新安装
grep "password" /var/log/mysqld.log
# 进入数据库
mysql -uroot -p
# 修改密码 注意这里密码要包含 大小写 特殊符号 否则会提示密码不符合规范
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Xxxxxx!';
# 开启mysql的远程访问
# 192.168.0.1 代表ip 可用 % 代替所有
# password 填入密码
grant all privileges on *.* to 'root'@'%' identified by 'Xxxxxx!' with grant option;
flush privileges;
exit;
# 更改mysql的语言
status;
vim /etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
# 重启服务
service mysqld restart
mysql -uroot -p
status;
mysql 备份与恢复以及定时脚本
# 使用 mysqldump 备份 canal 库到 canal.sql
mysqldump -uroot -p canal > canal.sql
# 恢复到 备库
# 注,这里笔者遇到过 collaction xxx找不到的问题,原因是 8.0 和 5.7 版本不兼容,发生与 把 mqsql8.0的数据导出后恢复到 5.7 的时候,当时处理的方式是保持版本一致
mysql -u root -p canal_rec < canal.sql
# 按照时间备份并压缩
mysqldump car| gzip > ./car`date +%Y-%m-%d_%H%M%S`.sql.gz;
# 此时会有警告,mysqldump: [Warning] Using a password on the command line interface can be insecure.
# 解决办法,在 mysql 配置文件中添加如下配置
# 查找默认的 mysql 配置文件的位置
mysql --help|grep 'my.cnf'
# order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
# mysql 会顺着这个顺序依次去找配置文件,我们这里修改第一个文件,添加如下内容
vim /etc/my.cnf
[mysqldump]
user=root
password=Xxxxxx!
## 添加定时备份脚本 每天两点半执行
crontab -e
30 2 * * * /root/mysql_bak.sh
完全卸载
## 卸载
## 1. 删除相关 yum
rpm -qa |grep -i mysql
yum remove xxx
## 2.删除相关文件夹
find / -name mysql
## 3.删除/etc/my.cnf
rm -rf /etc/my.cnf
## 4.删除/var/log/mysqld.log 这里不删除会导致无法生成新密码,生成密码的时间点在第一次启动 mysql 服务的时候,但是如果之前安装过,这里就不会生成临时密码,卡了好久
rm -rf /var/log/mysqld.log