Rocky8(centos8)二进制安装mysql8.0并实现多实例安装

[root@rocky8 ~]# tar -xf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
[root@rocky8 ~]# ln -s /usr/local/mysql-8.0.31-linux-glibc2.12-x86_64/ /usr/local/mysql
## 创建各实例数据存放目录
[root@rocky8 ~]# mkdir -p /data/{3306,3307,3308}/data
## 创建各个mysql对应error日志
[root@rocky8 ~]# mkdir -p /data/{3306,3307,3308}/log
[root@rocky8 ~]# touch /data/3306/log/error.log
[root@rocky8 ~]# touch /data/3307/log/error.log
[root@rocky8 ~]# touch /data/3308/log/error.log
## 创建mysql用户组及用户
groupadd mysql
useradd -g mysql mysql
## 目录归属赋权
chown -R mysql:mysql /usr/local/mysql

编辑配置文件
vim /etc/my.cnf
写下内容
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

[client]
default-character-set=utf8mb4

[mysqld]
user=mysql
basedir=/usr/local/mysql
lower_case_table_names=1

[mysqld_multi]
mysqld=/data/bin/mysqld_safe
mysqladmin=/data/bin/mysqladmin
log=/data/mysqld_multi.log

# 3306 数据库实例
[mysqld3306]
port=3306
server_id=1
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/data/3306/data
socket=/tmp/mysql_3306.sock
log-error=/data/3306/log/error.log
pid-file=/data/3306/mysql3306.pid

## skip-grant-tables #用于跳过密码登录
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
lower_case_table_names=1
explicit_defaults_for_timestamp=true


# 3307 数据库实例
[mysqld3307]
port=3307
server_id=2
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/data/3307/data
socket=/tmp/mysql_3307.sock
log-error=/data/3307/log/error.log
pid-file=/data/3307/mysql3307.pid
# lc_messages_dir=/usr/local/mysql/share/english

## 默认最大连接数设置
# max_connections=300
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
lower_case_table_names=1
explicit_defaults_for_timestamp=true

# 3308 数据库实例
[mysqld3308]
port=3308
server_id=3
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/data/3308/data
socket=/tmp/mysql_3308.sock
log-error=/data/3308/log/error.log
pid-file=/data/3308/mysql3308.pid
# lc_messages_dir=/usr/local/mysql/share/english

character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
lower_case_table_names=1
explicit_defaults_for_timestamp=true



安装libaio软件包(异步IO),不然会mysql初始化的时候会报错
yum install libaio libaio-devel -y

初始化mysql8.0,指定配置文件目录,指定数据存放目录,端口分别是3306,3307,3308
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/data/3306/data/ --initialize
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/data/3307/data/ --initialize
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/data/3308/data/ --initialize



## 在/etc/profile 文件末尾添加
vim /etc/profile
在最后一行添加以下内容
export PATH=/usr/local/mysql/bin:$PATH

## 使环境变量生效
source /etc/profile

执行如下命令,不然可能启动时会报错
ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5


## 启动mysql
mysqld_multi --defaults-file=/etc/my.cnf start 3306
mysqld_multi --defaults-file=/etc/my.cnf start 3307
mysqld_multi --defaults-file=/etc/my.cnf start 3308
 
## 查看mysql服务
mysqld_multi --defaults-file=/etc/my.cnf report



登录mysql 3306并修改密码
## 服务器登录 (注意:另外两个实例同样如此。)
mysql -uroot -p -S /tmp/mysql_3306.sock
## 输入上面初始化数据库时的临时密码

## 设置本地访问密码,例如:Asdf-1234,注意密码为高安保等级(例如大小写和特殊字符的组合),不然无法使用其他操作
## 远程连接设置
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Asdf-1234' PASSWORD EXPIRE NEVER;
## 刷新
flush privileges;



登录mysql 3307并修改密码
## 服务器登录 (注意:另外两个实例同样如此。)
mysql -uroot -p -S /tmp/mysql_3307.sock
## 输入上面初始化数据库时的临时密码

## 设置本地访问密码,例如:Asdf-1234,注意密码为高安保等级(例如大小写和特殊字符的组合),不然无法使用其他操作
## 远程连接设置
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Asdf-1234' PASSWORD EXPIRE NEVER;
## 刷新
flush privileges;



登录mysql 3308并修改密码
## 服务器登录 (注意:另外两个实例同样如此。)
mysql -uroot -p -S /tmp/mysql_3308.sock
## 输入上面初始化数据库时的临时密码

## 设置本地访问密码,例如:Asdf-1234,注意密码为高安保等级(例如大小写和特殊字符的组合),不然无法使用其他操作
## 远程连接设置
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Asdf-1234' PASSWORD EXPIRE NEVER;
## 刷新
flush privileges;


Powered By Z-BlogPHP 1.7.3

 Theme By 优美模版

本博客为开源博客,本博客联系QQ:372097243