>  기사  >  데이터 베이스  >  여러 머신에 MySQL8.0.20을 배포하는 방법

여러 머신에 MySQL8.0.20을 배포하는 방법

WBOY
WBOY앞으로
2023-05-28 21:19:041162검색

0. 환경 요구 사항

1. Linux 환경 준비(시스템: CentOS7)
2. MySQL 설치 패키지 준비(버전: 8.0.20)
3 설치 방법은 msyql 압축 해제 설치

1.

1 .압축 해제 및 설치된 mysql 설치 패키지 파일을 다운로드하세요

2. 업로드 및 압축 해제(저는 여기에 업로드했습니다:
## 创建mysql目录
mkdir -p /usr/app/mysql
## 移动到目录下
cd /usr/app/mysql
## 使用xhell上传文件到服务器
## 解压后重命名
tar -zxvf mysql-8.0.20-el7-x86_64.tar.gz
mv mysql-8.0.20-el7-x86_64 mysql-8.0

4. my.cnf 파일을 구성하세요

## 创建各实例数据存放目录
mkdir -p /usr/app/mysql/mysql-8.0/{3306,3307,3308}/data
## 创建各个mysql对应error日志
mkdir -p /usr/app/mysql/mysql-8.0/{3306,3307,3308}/log
touch /usr/app/mysql/mysql-8.0/3306/log/error.log
touch /usr/app/mysql/mysql-8.0/3307/log/error.log
touch /usr/app/mysql/mysql-8.0/3308/log/error.log
## 创建mysql用户组及用户
groupadd mysql
useradd -g mysql mysql
## 目录归属赋权
chown -R mysql:mysql /usr/app/mysql

5. 각 인스턴스 데이터베이스를 초기화하세요

# 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/app/mysql/mysql-8.0
lower_case_table_names=1

[mysqld_multi]
mysqld=/usr/app/mysql/mysql-8.0/bin/mysqld_safe
mysqladmin=/usr/app/mysql/mysql-8.0/bin/mysqladmin
log=/usr/app/mysql/mysql-8.0/mysqld_multi.log

# 3306 数据库实例
[mysqld3306]
port=3306
server_id=1
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/usr/app/mysql/mysql-8.0/3306/data
socket=/tmp/mysql_3306.sock
log-error=/usr/app/mysql/mysql-8.0/3306/log/error.log
pid-file=/usr/app/mysql/mysql-8.0/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=/usr/app/mysql/mysql-8.0/3307/data
socket=/tmp/mysql_3307.sock
log-error=/usr/app/mysql/mysql-8.0/3307/log/error.log
pid-file=/usr/app/mysql/mysql-8.0/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=/usr/app/mysql/mysql-8.0/3308/data
socket=/tmp/mysql_3308.sock
log-error=/usr/app/mysql/mysql-8.0/3308/log/error.log
pid-file=/usr/app/mysql/mysql-8.0/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

부탁드립니다. 나중에 로그인할 때 사용할 임시 비밀번호를 기억하세요. 예:

2022-04-04T15:12:39.011998Z 6 [참고 ] [MY-010454] [서버] root@localhost에 대해 임시 비밀번호가 생성됩니다: sJH ):ayhH5cW

2022-04-04T15:14:24.214337Z 6 [참고] [MY-010454] [서버] 임시 비밀번호는 root@localhost에 대해 생성됩니다: s7qrjzwqI< wd


6. msyql 환경 변수

환경 변수를 추가하면 운영 체제는 mysql, mysqld_multi 및 기타 명령의 위치를 ​​스스로 찾을 수 있습니다
/usr/app/mysql/mysql-8.0/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/usr/app/mysql/mysql-8.0/3306/data/ --initialize
/usr/app/mysql/mysql-8.0/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/usr/app/mysql/mysql-8.0/3307/data/ --initialize
/usr/app/mysql/mysql-8.0/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/usr/app/mysql/mysql-8.0/3308/data/ --initialize

7. mysql 서비스를 시작하고 볼 수 있습니다(구성 파일을 지정해야 함)

## 在/etc/profile 文件末尾添加
export PATH=/usr/app/mysql/mysql-8.0/bin:$PATH

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

시작 실패하면 mysqld_multi.log 로그나 각 인스턴스 디렉터리의 오류 로그를 확인하세요

cat /usr/app/mysql/mysql-8.0/mysqld_multi.log

cat /usr/app/mysql/mysql-8.0/3306/ log /error.log

8. 원격 접속 비밀번호를 설정하세요

## 启动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

9. 방화벽에서 접속 포트를 열어주세요(방화벽을 닫아주세요)
## 服务器登录 (注意:另外两个实例同样如此。)
mysql -uroot -p -S /tmp/mysql_3306.sock
## 输入上面初始化数据库时的临时密码

## 设置本地访问密码,例如:Mysql@123,注意密码为高安保等级(例如大小写和特殊字符的组合),不然无法使用其他操作
ALTER USER &#39;root&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;Mysql@123&#39;;
## 进入mysql数据
use mysql;
## 更新root信息
update user set host=&#39;%&#39; where user=&#39;root&#39;;
## 刷新
flush privileges;
# 授权root用户可以远程登陆
GRANT ALL ON *.* TO &#39;root&#39;@&#39;%&#39;;
## 远程连接设置
ALTER USER &#39;root&#39;@&#39;%&#39; IDENTIFIED WITH mysql_native_password BY &#39;Mysql@123&#39;;
## 刷新
flush privileges;
.

위 내용은 여러 머신에 MySQL8.0.20을 배포하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제