一、 Linux在线安装MySQL8.0.24
如果机器上已经有MySQL5.7版本需要先卸载
- 首先,需要停止MySQL服务。可以通过以下命令来停止服务:
sudo systemctl stop mysqld
- 接下来,我们需要卸载MySQL5.7。可以通过以下命令来卸载:
sudo yum remove mysql-server mysql-common mysql-community-server mysql-community-client
- 然后,还需要删除MySQL的数据目录和配置文件。可以通过以下命令来删除:
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/my.cnf
- 最后,还需要清理残留文件。可以通过以下命令来清理:
sudo rm -rf /usr/share/mysql
sudo rm -rf /usr/lib/mysql
以上步骤完成后,MySQL5.7就已经被完全卸载了。
安装MySQL8.0.24
#先安装wget
yum -y install wget
#从华为镜像站下载mysql8.0.24压缩包,后缀为xz的压缩包,需要两步解压
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz
xz -d mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz
tar -zxvf mysql-8.0.24-linux-glibc2.12-x86_64.tar
#移动该文件到/usr/local/下,并将文件夹名称修改为mysql
mv mysql-8.0.24-linux-glibc2.12-x86_64 /usr/local/mysql
#在/usr/local/mysql目录下创建data目录
mkdir /usr/local/mysql/data
cd /usr/local/mysql
#安装依赖
rpm -qa|grep libaio
yum install libaio-devel.x86_64
yum -y install numactl
#编译安装并初始化mysql,务必记住初始化输出日志末尾的密码~~红框为数据库管理员登入临时密码!!!
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
记住编译安装完成之后 日志 最后面输出的临时密码
#配置mysql的配置文件
vi /etc/my.cnf
#复制下面的配置到 /etc/my.cnf文件中 :wq 保存
[mysqld]
datadir=/usr/local/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
character_set_server=utf8
#启动mysql
/usr/local/mysql/support-files/mysql.server start
#添加软连接,并重启mysql服务
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
#输入临时密码登录mysql (建议临时密码加上单引号 防止临时密码中有特殊字符导致转义的问题)
mysql -u root -p'临时密码'
#修改密码
alter user 'root'@'localhost' identified by '你的新密码';
#开放远程连接
use mysql;
update user set user.Host='%' where user.User='root';
select user, host from user;
#设置允许使用原生密码登录
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的新密码';
flush privileges;
quit
#将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld #赋予可执行权限
chkconfig --add mysqld #添加服务
chkconfig --list ##显示服务列表
二、手动数据备份和恢复
使用MySQL自带的 mysqldump工具进行备份
#数据备份
#-S /tmp/mysql_smt.sock 指定mysql的sock 文件 反斜杠后面不要有空格 表示换行
#新建备份数据存放目录
mkdir /sql-data
cd /usr/local/mysql/bin
#备份多个库
./mysqldump -u用户名 -p密码 -S /tmp/mysql_smt.sock \
--databases 库1 \
库2 \
库3 \
库n \
> /sql-data/databases.sql
cd /sql-data
#数据恢复
mysql -u用户名 -p'密码' -e 'source /sql-data/databases.sql'
#等待恢复完成
三、使用crontab 执行脚本自动备份
新建脚本
#新建目录存放脚本和备份文件
mkdir /mysql-backup
cd /mysql-backup
vi dumpMysql.sh
#复制下面内容到脚本中 :wq 保存
cd /mysql-backup
today=`date +%F-%H%M`
binToday=`date +%F`
#备份+压缩
mysqldump -h 127.0.0.1 -P 3306 -u用户名 -p密码 --all-databases |gzip > dump_${today}.sql.gz
#只保留最近7天的数据
find /mysql-backup/ -name "dump*.sql.gz" -mtime +7 -exec rm -f {} \;
设置crontab 定时任务
#安装crontab
yum install -y vixie-cron
crontab -e
#复制下面内容 :wq 保存
0 0 1 * * ? sh /mysql-backup/dumpMysql.sh