Centos操作系统&部署&两台MYSQL8.0

概述

业务需要在单台服务器上部署两套mysql8.0数据库服务,其中也踩了许多坑的地方,在这里留个笔记。
部署两套数据库,主要思路,就是分开两套环境,两套配置文件,然后先按照第一套环境配置启动第一台服务,随后就是一模一样操作,启动第二台数据库服务。

下载安装包

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

如果在官网上下载,要看自己的机器是多少位的,找到合适的版本。我的服务器是64位,结果我下载的是“mysql-8.0.28-linux-glibc2.12-i686.tar.xz”安装包,这个安装包是32位,解压安装会出现一些库找不到的问题。

新建目录

在/data目录下创建一个数据库目录,数据库目录下创建两个目录,一个是mysql3306,一个是mysql3307
在这里插入图片描述

解压

tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

解压后的目录重命名为mysql,分别移动到mysql3306和mysql3307中。
在这里插入图片描述

创建用户和用户组

groupadd mysql
useradd -g mysql mysql

创建配置和其他文件

  1. 删除 /etc/my.cnf 和 /etc/my.cnf.d文件
  2. 在mysql3306创建my.cnf,完成后,修改相关信息复制一份到mysql3307中。内容如下([mysqld,client]此类引导头不能去掉,否则会报错)
[mysql]
default-character-set=utf8mb4
[client]
port=3306
socket=/data/mysqls/mysql3306/mysql.sock
[mysqld]
port=3306
socket=/data/mysqls/mysql3306/mysql.sock
basedir=/data/mysqls/mysql3306
datadir=/data/mysqls/mysql3306/data
log-error=/data/mysqls/mysql3306/mysql.log
pid-file=/data/mysqls/mysql3306/mysql.pid

在my.cnf中,指定了data目录、mysql.log文件,这里先提前创建。

mkdir /data/mysqls/mysql3306/data

touch /data/mysqls/mysql3306/mysql.log

赋予权限

给mysqls下所有文件赋予权限,包括my.cnf等

chown -R mysql.mysql /data/mysqls/
chmod -R 755 /data/mysqls/

初始化

可切换为mysql身份执行指令,也可以使用root身份执行指令。本人用的mysql身份。进入mysql3306下的mysql的bin目录,执行命令(另一台数据库一样操作,目录不同而已)

./mysqld --user=mysql --basedir=/data/mysqls/mysql3306 --datadir=/data/mysqls/mysql3306/data/ --initialize

初始化之前试过指定文件,但是mysql还是用默认的路径和参数,这里在初始化时候指定目录。
记住控制台的密码,后续会用上。

启动数据库

./mysqld_safe --defaults-file=/data/mysqls/mysql3306/my.cnf &

启动数据库指定我们的配置文件,在启动的日志里面可能会出现权限报错,这个时候需要对我们配置的目录赋予权限,具体目录参考日志。如下:
在这里插入图片描述
对问题目录下的文件,都改为mysql用户组
在这里插入图片描述
再次启动,可启动成功
在这里插入图片描述

登录并修改密码

我们进入mysql3306和mysql3307各自的bin目录下,使用命令登录

./mysql -u root -p -h127.0.0.1 --port=3306

./mysql -u root -p -h127.0.0.1 --port=3307

如果不指定 -h127.0.0.1会出错,提示找不到sock套接字文件,他会去/tmp目录找(我也不清楚咋回事,有了解的求评论告知)
在这里插入图片描述
加上ip后可以正常登录。
密码为初始化步骤时候记下的密码。
在这里插入图片描述
修改密码

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

刷新权限

flush privileges;

设置远程登陆,客户端连接

use mysql

update user set user.Host='%'where user.User=‘root’;

flush privileges;

开启服务器外部端口,就可以使用客户端链接了,开启端口命令为

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

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

firewall-cmd --reload

  • 19
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值