이 기사에서는 주로 복제와 관련된 문제를 소개하는 mysql에 대한 관련 지식을 제공합니다. MySQL 8.0.17에서는 로컬 또는 원격 MySQL 서버 인스턴스에서 복제할 수 있는 복제 플러그인을 소개합니다. 모두가 도움이 됩니다.
추천 학습: mysql 튜토리얼
복제 플러그인 소개
MySQL 8.0.17에는 로컬 또는 원격 MySQL 서버 인스턴스에서 복제할 수 있는 복제 플러그인이 도입되었습니다. 복제된 데이터는 InnoDB에 저장됩니다. 스키마, 테이블, 테이블스페이스 및 데이터 사전 메타데이터를 포함한 데이터의 물리적 스냅샷입니다. 복제 작업에는 로컬 복제와 원격 복제가 포함됩니다.
로컬 복제 작업: 플러그인을 먼저 설치하고 구성해야 합니다. 플러그인 이름은 mysql_clone.so이며, 설치하는 방법은 두 가지가 있다.
방법 1:
[mysqld]
plugin-load-add=mysql_clone.so
방법 2: 런타임에 플러그인을 로드하고 INSTALL PLUGIN을 사용하여 설치합니다. mysql.plugin 시스템 테이블에 플러그인을 등록하세요. Medium: install plugin clone soname 'mysql_clone.so';
설치 후에는 information_schema.plugins 테이블이나 show 플러그인을 통해 볼 수 있습니다. 로컬 데이터 복제로컬 복제 데이터는 동일한 서버 또는 노드에 있는 MySQL 데이터 디렉터리를 다른 디렉터리로 복제하는 것입니다. 지원되는 구문은 다음과 같습니다. CLONE LOCAL DATA DIRECTORY [=] '/path/to/clone_dir'위 명령문을 실행하려면 해당 사용자에게 BACKUP_ADMIN 권한이 있어야 합니다. 권한, 사용자가 생성한 파일 또는 테이블스페이스가 데이터 디렉토리에 있어야 하며, 동시에 복제 대상에 대한 절대 경로가 지정되어야 하지만, clone_dir은 존재하지 않아야 합니다. 존재하다. 데모: 로컬 데이터 복제1) 사용자 생성
mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.25 | +-----------+ 1 row in set (0.00 sec) mysql> create user clone_admin identified by 'Cl0neTest'; Query OK, 0 rows affected (0.02 sec) mysql> grant backup_admin on *.* to clone_admin; Query OK, 0 rows affected (0.10 sec)2) 디렉터리 생성
[root@node1 ~]# mkdir /mysql/clone/ [root@node1 ~]# chown -R mysql:mysql /mysql/clone/3) 복제 작업
mysql> clone local data directory='/mysql/clone/clone_data';
Query OK, 0 rows affected (17.09 sec)
4) 복제된 파일 보기[root@node1 ~]# ll /mysql/clone/clone_data/ total 6348816 drwxr-x---. 2 mysql mysql 89 Nov 28 11:26 #clone -rw-r-----. 1 mysql mysql 9231 Nov 28 11:26 ib_buffer_pool -rw-r-----. 1 mysql mysql 4294967296 Nov 28 11:26 ibdata1 -rw-r-----. 1 mysql mysql 1073741824 Nov 28 11:26 ib_logfile0 -rw-r-----. 1 mysql mysql 1073741824 Nov 28 11:26 ib_logfile1 drwxr-x---. 2 mysql mysql 6 Nov 28 11:26 mysql -rw-r-----. 1 mysql mysql 25165824 Nov 28 11:26 mysql.ibd drwxr-x---. 2 mysql mysql 4096 Nov 28 11:26 sakila drwxr-x---. 2 mysql mysql 28 Nov 28 11:26 sys -rw-r-----. 1 mysql mysql 16777216 Nov 28 11:26 undo_001 -rw-r-----. 1 mysql mysql 16777216 Nov 28 11:26 undo_0025) 확인, 복제된 디렉터리를 사용하여 데이터베이스 시작
[root@node1 ~]# service mysql.server stop Shutting down MySQL.... SUCCESS! [root@node1 ~]# mysqld_safe --datadir=/mysql/clone/clone_data/ --lower-case-table-names=1 --user=mysql 2021-11-28T03:47:11.012900Z mysqld_safe Logging to '/mysql/clone/clone_data/node1.com.cn.err'. 2021-11-28T03:47:11.036181Z mysqld_safe Starting mysqld daemon with databases from /mysql/clone/clone_data원격 데이터 복제원격 MySQL 서버 인스턴스(제공자)를 복제하고 복제 작업을 수행하는 MySQL 인스턴스(수신자)로 전송합니다. 원격 데이터 복제에 지원되는 구문은 다음과 같습니다.
CLONE INSTANCE FROM 'user'@'host':port IDENTIFIED BY 'password' [ DATA DIRECTORY [ = ] 'clone_dir' ] [ REQUIRE [ NO ] SSL ]Where,
user는 기증자 MySQL 서버 인스턴스의 사용자 이름입니다.
password는 사용자의 비밀번호입니다.
host는 기증자 MySQL 서버 인스턴스의 호스트 이름 주소입니다. IPv6는 지원되지 않습니다.
- port는 기증자 MySQL 서버 인스턴스입니다.
- DATA DIRECTORY [ = ] 'clone_dir'은 복제 데이터를 수신할 디렉터리를 지정하는 데 사용되는 선택적 절입니다. . 이 옵션을 지정하면 복제 데이터를 디렉터리로 전송할 수 있습니다.
- REQUIRE [NO] SSL은 암호화된 연결을 사용할지 여부를 명시적으로 지정합니다.
- 복제 작업을 수행하려면 기증자와 수신자에서 활성화해야 합니다. MySQL 서버 인스턴스에서 복제 사용자는 수신자 서버의 BACKUP_ADMIN 권한이 필요합니다. 예를 들어 사용자를 복제하려면 BACKUP_ADMIN 및 SHUTDOWN 권한이 포함된 CLONE_ADMIN 권한이 필요합니다.
- CLONE INSTANCE 문을 실행하려면 다음 전제 조건을 충족해야 합니다.
- donor和recipient必须有相同的MySQL服务器版本,克隆插件在8.0.17版本后支持;
- donor和recipient必须运行在相同的操作系统和平台;
- 克隆数据,recipient必须有足够的磁盘空间;
- InnoDB需要在数据目录外面创建表空间,可通过INFORMATION_SCHEMA.FILES查看;
- 克隆插件必须在donor和recipient激活,可通过SHOW PLUGINS查看;
- donor和recipient必须有相同的MySQL服务器字符集和排序规则;
- donor和recipient需要有相同的innodb_page_size和innodb_data_file_path设置;
- 若克隆加密或页压缩的数据,donor和recipient必须有相同的文件系统块大小;
- 若克隆加密的数据,需要安全的连接;
- recipient上的clone_valid_donor_list设置必须包括donor MySQL服务器实例的主机地址;
- 一次只能有一个克隆操作,克隆期间不能有其他克隆操作,可通过clone_status查看;
- 克隆插件以1MB数据包和元数据的形式传输数据,在donor和recipient MySQL服务器实例上所需的最小max_allowed_packet是2MB;
- donor上的Undo表空间文件名必须唯一,当数据克隆到recipient,undo表空间克隆到recipient 上innodb_undo_directory指定的位置或DATA DIRECTORY [ = ] 'clone_dir' 子句指定的目录;
- 默认,recipient MySQL服务器实例在克隆数据完成后自动重启;
- 几个变量控制远程克隆操作的各个方面;
演示:克隆远程数据
默认将数据克隆到recipient端的数据目录,并使用donor的数据进行覆盖,然后进行自动重启recipient端的MySQL服务器实例
1)登录到donor MySQL服务器实例,创建用户并安装插件(若安装可忽略)
mysql> create user 'donor_clone_user' identified by 'donor_clone_user'; Query OK, 0 rows affected (0.02 sec) mysql> grant backup_admin on *.* to donor_clone_user; Query OK, 0 rows affected (0.01 sec)
2)登录到recipient MySQL服务器实例,创建账户并安装插件,并设置clone_valid_donor_list
mysql> create user recipient_clone_user identified by 'recipient_clone_user'; Query OK, 0 rows affected (0.04 sec) mysql> grant clone_admin,backup_admin on *.* to recipient_clone_user; Query OK, 0 rows affected (0.01 sec) mysql> install plugin clone soname 'mysql_clone.so'; Query OK, 0 rows affected (0.01 sec) mysql> set global clone_valid_donor_list='192.168.56.53:3306'; Query OK, 0 rows affected (0.00 sec)
3)登录到recipient MySQL服务器实例,使用 recipient_clone_user用户或root用户执行克隆操作,操作完成后会自动重启
mysql> clone instance from 'donor_clone_user'@'192.168.56.81':3306 identified by 'donor_clone_user'; Query OK, 0 rows affected (51.08 sec)
注:将donor的数据克隆到recipient端默认会覆盖其数据文件,也可以指定一个目录进行克隆,如下:
mysql> clone instance from 'donor_clone_user'@'192.168.56.81':3306 identified by 'donor_clone_user' data directory='/mysql/clone/clone_data'; Query OK, 0 rows affected (51.17 sec)
使用新目录启动MySQL服务器实例:
[root@node2 clone]# mysqld --lower-case-table-names=1 --datadir=/mysql/clone/clone_data/ --user=mysql &
推荐学习:mysql视频教程
위 내용은 Clone 플러그인의 MySQL 상세 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

MySQL은 초보자가 데이터베이스 기술을 배우는 데 적합합니다. 1. MySQL 서버 및 클라이언트 도구를 설치하십시오. 2. SELECT와 같은 기본 SQL 쿼리를 이해하십시오. 3. 마스터 데이터 작업 : 데이터를 만들고, 삽입, 업데이트 및 삭제합니다. 4. 고급 기술 배우기 : 하위 쿼리 및 창 함수. 5. 디버깅 및 최적화 : 구문 확인, 인덱스 사용, 선택*을 피하고 제한을 사용하십시오.

MySQL은 테이블 구조 및 SQL 쿼리를 통해 구조화 된 데이터를 효율적으로 관리하고 외래 키를 통해 테이블 간 관계를 구현합니다. 1. 테이블을 만들 때 데이터 형식을 정의하고 입력하십시오. 2. 외래 키를 사용하여 테이블 간의 관계를 설정하십시오. 3. 인덱싱 및 쿼리 최적화를 통해 성능을 향상시킵니다. 4. 데이터 보안 및 성능 최적화를 보장하기 위해 데이터베이스를 정기적으로 백업 및 모니터링합니다.

MySQL은 웹 개발에 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 주요 기능에는 다음이 포함됩니다. 1. 다른 시나리오에 적합한 InnoDB 및 MyISAM과 같은 여러 스토리지 엔진을 지원합니다. 2.로드 밸런싱 및 데이터 백업을 용이하게하기 위해 마스터 슬레이브 복제 기능을 제공합니다. 3. 쿼리 최적화 및 색인 사용을 통해 쿼리 효율성을 향상시킵니다.

SQL은 MySQL 데이터베이스와 상호 작용하여 데이터 첨가, 삭제, 수정, 검사 및 데이터베이스 설계를 실현하는 데 사용됩니다. 1) SQL은 Select, Insert, Update, Delete 문을 통해 데이터 작업을 수행합니다. 2) 데이터베이스 설계 및 관리에 대한 생성, 변경, 삭제 문을 사용하십시오. 3) 복잡한 쿼리 및 데이터 분석은 SQL을 통해 구현되어 비즈니스 의사 결정 효율성을 향상시킵니다.

MySQL의 기본 작업에는 데이터베이스, 테이블 작성 및 SQL을 사용하여 데이터에서 CRUD 작업을 수행하는 것이 포함됩니다. 1. 데이터베이스 생성 : createAbasemy_first_db; 2. 테이블 만들기 : CreateTableBooks (idintauto_incrementprimarykey, titlevarchar (100) notnull, authorvarchar (100) notnull, published_yearint); 3. 데이터 삽입 : InsertIntobooks (Title, Author, Published_year) VA

웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.

MySQL 데이터베이스를 구축하는 단계에는 다음이 포함됩니다. 1. 데이터베이스 및 테이블 작성, 2. 데이터 삽입 및 3. 쿼리를 수행하십시오. 먼저 CreateAbase 및 CreateTable 문을 사용하여 데이터베이스 및 테이블을 작성한 다음 InsertInto 문을 사용하여 데이터를 삽입 한 다음 최종적으로 SELECT 문을 사용하여 데이터를 쿼리하십시오.

MySQL은 사용하기 쉽고 강력하기 때문에 초보자에게 적합합니다. 1.MySQL은 관계형 데이터베이스이며 CRUD 작업에 SQL을 사용합니다. 2. 설치가 간단하고 루트 사용자 비밀번호를 구성해야합니다. 3. 삽입, 업데이트, 삭제 및 선택하여 데이터 작업을 수행하십시오. 4. Orderby, Where and Join은 복잡한 쿼리에 사용될 수 있습니다. 5. 디버깅은 구문을 확인하고 쿼리를 분석하기 위해 설명을 사용해야합니다. 6. 최적화 제안에는 인덱스 사용, 올바른 데이터 유형 선택 및 우수한 프로그래밍 습관이 포함됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

드림위버 CS6
시각적 웹 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기
