mysql8离线包升级,修复安全漏洞

8.0.21->8.0.28

下载最新版mysql8.0.28:

https://dev.mysql.com/downloads/mysql/

安装

压缩包处理

解压mysql8028

tar -xvf mysql-8.0.28-el7-x86_64.tar

移动目录到安装目录

mv /home/data/setup/un/mysql8028/ /home/data/

创建需要的目录

mkdir -p /home/data/mysql8028/mysql_data/
mkdir -p /home/data/mysql8028/mysql_data/logs

修改服务文件设置,复制原来的配置文件到当前目录下

cp /etc/my.cnf /home/data/mysql8028
修改配置文件my.cnf,根据前一台设置对应修改

vim /home/data/mysql8028/my.cnf

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
basedir = /home/data/mysql8028
datadir = /home/data/mysql8028/mysql_data
port = 3307
socket = /tmp/mysql8028.sock
character-set-server=utf8
log-error = /home/data/mysql8028/mysql_data/mysqld.log
pid-file = /home/data/mysql8028/mysql_data/mysqld.pid
[client]
socket = /tmp/mysql8028.sock
default-character-set=utf8

vim /home/data/mysql8028/support-files/mysql.server
1.开头增加:

basedir=/home/data/mysql8028
datadir=/home/data/mysql8028/mysql_data
conf=/home/data/mysql8028/my.cnf

修改:
lockdir="$basedir/lock"
lock_file_path="$lockdir/mysql"

2.增加:

在 
if test -r "$basedir/my.cnf"
	then extra_args="-e $basedir/my.cnf"
fi
的下面(大概240行附近)
extra_args="-c $conf"

3.修改(在270行附近):

改3:$bindir/mysqld_safe --defaults-file="$conf" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
在命令行里增加:
--defaults-file="$conf"
相关设置

把mysql加入服务

cp /home/data/mysql8028/support-files/mysql.server /etc/init.d/mysql8028

修改权限

chown -R mysql:mysql /home/data/mysql8028
初始化
/home/data/mysql8028/bin/mysqld --defaults-file=/home/data/mysql8028/my.cnf --initialize --basedir=/home/data/mysql8028/ --datadir=/home/data/mysql8028/mysql_data/ --user=mysql

查看初始化root密码

tail /home/data/mysql8028/mysql_data/mysqld.log

启动,停止,重启

service mysql8028 start
service mysql8028 stop
service mysql8028 restart

安装后处理

登陆mysql,修改root密码
/home/data/mysql8028/bin/mysql -uroot --socket=/tmp/mysql8028.sock --port=3307 -p
登陆后:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '修改后的密码';
flush privileges;
登陆原来的mysql查看有哪些库和用户
mysql -umanager --port=3506 -p
mysql> use mysql;
mysql> select User from user;
导出导入

导出mysql库的,会把原来库的用户和权限设置都带过来

导出:
mkdir -p /home/data/dump/
mysqldump -umanager -p mysql > /home/data/dump/mysql.sql
导入:
/home/data/mysql8028/bin/mysql -h 127.0.0.1 -u root -p -P3307 --default-character-set=utf8  mysql < /home/data/dump/mysql.sql

其他库需要导入的话,需要在新的mysql里新建同名的库:

create database xxx;

创建库后检查新老库里的database info是否一致,尤其是字符集

> use xxx;
> status;
登陆新安装的mysql
/home/data/mysql8028/bin/mysql -umanager --socket=/tmp/mysql8028.sock --port=3307 -p
刷新权限

让导入的mysql库生效

mysql> use mysql;
mysql> select User from user;
mysql> flush privileges;

端口加入防火墙(如果需要对外)

firewall-cmd --zone=public --add-port=3307/tcp --permanent
firewall-cmd --reload

加入开机启动

chkconfig --add mysql3308
显示服务列表,如果3,4,5都是开的就说明是自启设置成功
chkconfig --list

结束处理

关闭原来的mysql,几个命令都有可能:

service mysqld stop
systemctl stop mysqld

修改新版本的mysql端口到原来使用的端口后重启

service mysql8028 restart
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值