Linux Centos转Rocky安装mysql8.0.39

        应公司要求Centos停止维护需要把原有业务迁移到rocky上面,在运维人员下发了机器后,经历了重重困难,终于把mysql8.0.39安装完成了,接下来把我遇到的问题及安装步骤例举出来;

一、下载mysql8.0.39安装包

官方下载地址:MySQL :: Download MySQL Community Server

这里我选择的是.xz格式的包。

根据自己的Rocky 版本号,去选择对应的版本下载,没办法截图下拉列表框中间的版本号,直接通过代码,给大家看下对应的版本。

如果有兄弟不知道自己下载什么版本时候,麻烦自己在服务器里面查看应版本号,我在安装mysql的过程中,因为疏忽了,下载了不同的版本,导致安装失败,又重新卸载了。

ldd --version #查看对应版本号

如果想知道自己是x86_64还是x86_32,可以通过如下代码

uname -m

二、开始升级操作

#我的安装目录放在了local下面,接下来进入安装目录
cd /usr/local
#创建mysql 文件夹
mkdir mysql
#给予mysql文件夹权限
chmod 755 /usr/local/mysql/
#进入mysql目录
cd /usr/local/mysql
#把当前通过ftp上传的压缩包copy到当前目录(这步每个人可能都不一样,因为我没有上传文件的权限,只能通#过运维人员上传到我用户使用的目录,然后copy到mysql目录下,如果不需要这步的可以跳过)
cp /xx/xx/mysql-8.0.39-linux-glibc2.28-x86_64.tar /usr/local/mysql/
#解压当前文件
tar -xvf mysql-8.0.39-linux-glibc2.28-x86_64.tar

1.解压完成后,会获得如下三个压缩文件夹,继续解压 

tar -Jxvf mysql-8.0.39-linux-glibc2.28-x86_64.tar.xz

#解压完后把解压后的文件夹名称变更成mysql-8.0

mv mysql-8.0.39-linux-glibc2.17-x86_64 mysql-8.0

2.接下来,创建自己需要存放的data、log、tmp等目录,为了后续好做mysql版本升级等服务,在这里分别把三个目录,都放在了其他地方 data放在了根目录,log跟方在了mysql-8.0下面,tmp放在了根目录。

3.创建mysql 用户组和用户

groupadd mysql

useradd -g mysql mysql

chown -R mysql.mysql /usr/local/mysql/

4.初始化数据库

#初始化之前,一定要确认自己的目录是否正确,不要复制代码直接用,如果目录一致没问题,目录不一样,就会报错。记得修改目录
./mysqld --user=mysql --lower-case-table-names=1 --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql/mysql-8.0/data/ --initialize

5.在这里会给你们一个临时密码,可以用临时密码登录,如果未记录临时密码,做如下操作:

#进入/etx目录
cd /etc


vi my.cnf


#如果没有my.cnf文件已经不要慌。我们自己重新创建一个进入编辑模式。
vi my.cnf
:wq!

#创建完成后,我们写入my.cnf文件内容

[mysqld]
user = mysql 
basedir = 刚刚mysql安装目录
datadir = 刚刚新建的存放data的目录
log-error = 刚刚新建存放log的目录
pid-file = /mysql安装目录/data/mysql.pid
socket = /刚刚新建tmp目录/mysql.sock
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'
lower_case_table_names=1
#这行代码,是mysql在没有临时密码或者临时密码登录报错的情况下的设置的,用于root账号不需要密码校验,后续更改密码后,记得把这个注释掉 start
skip-grant-tables
# end 
slow-query-log = 1
slow-query-log-file = /刚刚新建存放log的目录/mysql-slow.log
skip-external-locking=on
[mysqld_safe]
open-files-limit = 8192
[mysqldump]
max_allowed_packet= 400M

上述目录,一定要仔细检查认证,不然mysql 是启动不起来的。

#把刚刚mysql-8.0文件夹、/etc/my.cnf 都给到mysql用户组和root用户组权限。(这里注意,如果你的用户组,不叫mysql,或者不是root。根据自己实际情况来给予用户组权限。不然会重启不起来)

chown -R root:root /usr/local/mysql/mysql-8.0

chown -R mysql:mysql /usr/local/mysql/mysql-8.0

sudo chmod 644 /etc/my.cnf

sudo chown mysql:mysql /etc/my.cnf

sudo chown root:root /etc/my.cnf


#回到mysql 安装目录,添加服务
cd /usr/local/mysql/mysql8.0/
cp -a ./support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql

启动mysql

service mysql start

如果启动报错,建议检查下my.cnf文件。

进入bin目录

#根据自己目录结构,进入刚刚按照的mysql,bin目录
cd /xx/xx/xx/mysql-8.0/bin

#执行如下代码时,有临时密码在-p后面输入临时密码,如果没有临时密码,就在my.cnf上面添加不需要验证密码的配置参数;
./mysql -uroot -p

#选择数据库
use mysql;

#修改root用户登录密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '自己的密码';

flush privileges;

#如果修改密码报如下错误The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 请执行下面的代码 start

#关闭住库只读属性
set global read_only=0;

flush privileges;

SET SESSION binlog_format = 'ROW';

SET GLOBAL binlog_format = 'ROW';

#end,执行这段代码结束后,重新做修改密码操作;

#设置远程链接。
update user set host='%' where user = 'root';

flush privileges;


本次在Rocky环境下,安装mysql 结束了。

延伸问题

此次安装完成后,因为是从Linux转Rocky机器是新下发的,当我论证完上面的内容后,远程链接也设置好后,去用navicat链接数据库的时候,报了错误。因为防火墙没有开3306的端口,所以在这里可能需要对新下发的机器,开通3306的端口;

firewall-cmd --zone=public --add-port=3306/tcp --permanent

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值