목차
1. 기본 지식 소개
2. MHA 구축
데이터 베이스 MySQL 튜토리얼 MySQL 데이터베이스를 기반으로 MySQL 고가용성 운영 및 유지관리에 대해 이야기해 보세요.

MySQL 데이터베이스를 기반으로 MySQL 고가용성 운영 및 유지관리에 대해 이야기해 보세요.

Jul 25, 2018 pm 03:52 PM

이 기사에서는 MySQL을 위한 또 다른 고가용성 구현 솔루션, 즉 MHA(Master 고가용성). 하 선생님. MySQL의 마스터-슬레이브 아키텍처에 대한 자동 장애 복구 기능을 제공하는 오픈소스 고가용성 프로그램입니다.

1. 기본 지식 소개

1. MHA 정의

마스터 HA. MySQL의 마스터-슬레이브 아키텍처에 대한 자동 장애 복구 기능을 제공하는 오픈소스 고가용성 프로그램입니다. 마스터-슬레이브 복제 중에 MHA가 MySQL 마스터 노드 오류를 감지하면 복제 클러스터의 슬레이브 노드를 자동으로 승격하여 새 마스터 노드가 됩니다. 전환 중에 다른 노드에서 추가 정보를 얻어 데이터 일관성 문제도 방지됩니다. 또한 MHA는 필요에 따라 마스터/슬레이브 노드를 전환할 수 있는 마스터 노드에 대한 온라인 장애 조치 기능도 제공합니다.

2. MHA 구조

MHA의 모든 노드에는 주로 관리 노드와 데이터 노드라는 두 가지 역할이 있습니다.
관리 노드(MHA Manager): 일반적으로 단일 머신에 배포되며 여러 마스터 및 슬레이브 클러스터를 관리하는 데 사용되며 마스터와 슬레이브로 구성된 각 클러스터를 애플리케이션이라고 합니다.
데이터 노드(MHA 노드): 각 MySQL 서버에서 실행되며 로그 구문 분석 및 정리 기능으로 스크립트를 모니터링하여 노드 장애 조치를 가속화합니다.

3. HMA 컴포넌트
(1) 매니저 컴포넌트

masterha_check_sh:MHA依赖的ssh环境监测工具
masterha_check_repl:MySQL复制环境监测工具
masterha_manager:MHA服务主程序
masterha_check_status:MHA运行状态探测工具
masterha_master_monitor:MySQL master节点可用性监测工具
masterha_master_switch:master节点切换工具
masterha_conf_host:添加或删除配置的节点
masterha_stop:关闭MHA服务的工具
로그인 후 복사

(2) 노드 컴포넌트

save_binary_logs:保存和赋值master的二进制日志
apply_diff_relay_logs:识别差异的中继日志并应用于其他slave
filter_mysqlbinlog:去除不必要的ROLLBACK事件(MHA已经不再使用这个工具)
purge_relay_logs:清除中继日志(不会阻塞SQL线程)
로그인 후 복사

(3) 커스텀 확장

secondary_check_script:通过多条网络路由监测master的可用性
master_ip_failover_script:更新application使用的masterip
shutdown_script:强制关闭master节点
report_script:发送报告
init_conf_load_script:加载初始配置参数
master_ip_online_change_script:更新master节点ip地址
로그인 후 복사

2. MHA 구축

1 운영체제: CentOS6.9_X86_64
MySQL 버전: MySQL5.6.39 범용 바이너리
서버 계획:
마스터 노드 마스터: 192.168.199.104(mysql-master, master)

슬레이브 노드 1: 192.168.199.105(mysql-slave01,slave01)

슬레이브 노드 2: 192.168. 106 (mysql-slave02,slave02)
관리 노드 : 192.168.199.107(mysql-manager,manager)

2.Setup

(1) 각 노드의 호스트를 따로 작성하지 않고도 나중에 사용하기 더 편리합니다. IP

[root@mysql-master ~]# vim /etc/hosts
#添加如下内容:
127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.199.104 mysql-master master
192.168.199.105 mysql-slave01 slave01
192.168.199.106 mysql-slave02 slave02
192.168.199.107 mysql-manager manager
로그인 후 복사

(2) 구성된 호스트 파일을 다른 3개의 노드에 복사합니다

[root@mysql-master ~]# scp /etc/hosts slave01:/etc/
[root@mysql-master ~]# scp /etc/hosts slave02:/etc/
[root@mysql-master ~]# scp /etc/hosts manager:/etc/
로그인 후 복사

(3) 마스터-슬레이브 동기화를 구성합니다. Slave01 및 Slave02는 마스터의 슬레이브 라이브러리입니다

마스터의 바이너리 로그를 활성화합니다

[root@mysql-master ~]# vim /etc/my.cnf
#在[mysqld]下面添加如下内容:
server-id = 104
skip-name-resolve
log_bin=/mysql_data/mysql-bin
log_bin_index=/mysql_data/mysql-bin.index
binlog_format = mixed
로그인 후 복사

마스터에서 현재 바이너리 로그 포인트 위치를 보고 복제 계정을 생성합니다

[root@mysql-master ~]# mysql -uroot –proot
#查看当前二进制日志点的位置
mysql> SHOW MASTER STATUS \G
*************************** 1. row ***************************
             File: mysql-bin.000090
         Position: 120
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)
#创建从库的复制账户
mysql> GRANT REPLICATION SLAVE ,REPLICATION CLIENT ON *.* TO 'repl'@'192.168.199.%' IDENTIFIED BY 'repl';
#刷新权限
mysql> FLUSH PRIVILEGES;
로그인 후 복사

slave01에서 바이너리 로그 및 릴레이 로그를 활성화하고 마스터의 슬레이브 라이브러리로 구성합니다

[root@mysql-slave01 ~]# vim /etc/my.cnf
#在[mysqld]下添加如下内容:
server-id = 105
log_bin = /mysql_data/mysql-bin
log_bin_index = /mysql_data/mysql-bin.index
relay_log = /mysql_data/mysql-relay
relay_log_index = /mysql_data/mysql-relay.index
read_only
relay_log_purge = 0
로그인 후 복사

매개변수 설명:

relay_log_purge:该参数表示不自动清理中继日志,因为MHA需要根据slave的中继日志判断slave同步master的binlog到什么位置了
read_only:表示是只读,MHA需要根据这个参数来识别主从库
bin_log:开启从库的二进制日志,因为在主节点出现故障时,需要将其中某个从库提升为主库,所以需要开启从库的二进制日志
로그인 후 복사

시작 슬레이브01 노드가 필요하며 동기화된 마스터 노드 정보는 마스터 노드를 가리킵니다.

[root@mysql-slave01 ~]# service mysqld restart
[root@mysql-slave01 ~]# mysql -uroot –proot
#使用change master命令将主库指向master节点
mysql> CHANGE MASTER TO MASTER_HOST = '192.168.199.104',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='repl',MASTER_LOG_FILE='mysql-bin.000090',MASTER_LOG_POS=120;
mysql> START SLAVE;
#查看是否同步成功
mysql> SHOW SLAVE STATUS \G
看到如下信息表示同步成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
로그인 후 복사

두 번째 슬레이브 라이브러리를 동일한 방식으로 구성합니다. 두 번째 슬레이브에 슬레이브01의 구성 파일을 직접 복사한 후 수정할 수 있습니다.

[root@mysql-slave01 ~]# scp /etc/my.cnf slave02:/etc/
[root@mysql-slave02 ~]# vim /etc/my.cnf
#修改server-id即可:
server-id = 106
로그인 후 복사

수정이 완료되면 저장하고 종료하고 mysql을 다시 시작한 다음,slave02를 마스터의 슬레이브 라이브러리로 구성합니다

[root@mysql-slave02 ~]# mysql -uroot –proot
mysql> CHANGE MASTER TO MASTER_HOST = '192.168.199.104',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='repl',MASTER_LOG_FILE='mysql-bin.000090',MASTER_LOG_POS=120;
mysql> START SLAVE;
#查看是否同步成功
mysql> SHOW SLAVE STATUS \G
看到如下信息表示同步成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
로그인 후 복사

(4) 관리 권한이 있는 사용자 계정을 생성합니다

#在主节点master上创建管理账号,使其可以同步到其他连个从节点,注意:这个管理账号需要能够远程连接MySQL
mysql> GRANT ALL ON *.* TO 'mha'@'192.168.199.%' IDENTIFIED BY 'mha';
mysql> FLUSH PRIVILEGES;
로그인 후 복사

(5) MHA로 인해 아키텍처상 각 노드는 서로 통신이 가능해야 하며, 상호 신뢰 통신을 위해서는 각 노드가 비밀키 없이 로그인할 수 있도록 구성해야 하기 때문에 하나하나 생성하고 복사하는 것이 번거롭다. . 마스터 노드에서 비밀 키 쌍을 생성한 다음 각 호스트가 동일한 개인 키 쌍을 갖도록 할 수 있습니다. Key

#在master上生成秘钥对
[root@mysql-master ~]# ssh-keygen -t rsa -P ''
#首先保存到本机的秘钥文件中,使得本机可以无秘钥使用ssh方式登陆本机
[root@mysql-master ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys
#使用ssh登陆本机测试,发现可以无密码登陆
[root@mysql-master ~]# ssh 192.168.199.104
#修改authorized_keys文件的权限,只能属主查看,同组用户和其他用户不可查看
[root@mysql-master ~]# chmod go= .ssh/authorized_keys
로그인 후 복사

비밀 키 쌍과 개인 키 파일을 다른 세 노드에 복사하세요.

[root@mysql-master ~]# scp -p .ssh/id_rsa .ssh/authorized_keys slave01:/root/.ssh/
[root@mysql-master ~]# scp -p .ssh/id_rsa .ssh/authorized_keys slave02:/root/.ssh/
[root@mysql-master ~]# scp -p .ssh/id_rsa .ssh/authorized_keys manager:/root/.ssh/
#测试无密码登陆,在主节点上执行如下命令,查看slave01节点的ip地址
[root@mysql-master ~]# ssh slave01 'ifconfig eth0'
#能够查看到slave01的ip地址表示无秘钥登陆配置成功,其他俩节点可以自己验证
로그인 후 복사

(6) mha4mysql-manager 및 mha4mysql-node 설치 패키지를 다운로드합니다.

여기에 사용된 소프트웨어 패키지 버전은 다음과 같습니다.

管理节点:mha4mysql-manager-0.56.tar.gz
数据节点:mha4mysql-node-0.56.tar.gz
로그인 후 복사

(7) 일부 mha4mysql 패키지는 base에서 제공되고 일부 패키지는 base에서 제공되므로 epel을 구성합니다. epel

[root@mysql-master ~]# rpm –ivh  http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
로그인 후 복사

(8) 압축을 풀고 perl 명령을 사용하여 Makefile.PL 스크립트

[root@mysql-master ~]# tar xf mha4mysql-manager-0.56.tar.gz
[root@mysql-master ~]# cd mha4mysql-manager-0.56
[root@mysql-master mha4mysql-manager-0.56]# perl Makefile.PL
로그인 후 복사

를 실행합니다. 참고: Makefile.PL 실행 중에 다음과 유사한 오류가 발생하면 해당 라이브러리 파일을 설치해야 합니다. Perl 프로그램은 다음 항목에 따라 달라집니다.

Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: inc /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at inc/Module/Install/Makefile.pm line 4.
BEGIN failed--compilation aborted at inc/Module/Install/Makefile.pm line 4
로그인 후 복사

위 오류가 발생하면 종속성을 설치해야 합니다.

[root@mysql-master ~]# yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker cpan perl-Time-HiRes perl-DBI perl-DBD-MySQL
로그인 후 복사

(9) "perl MakeFile.PL"이 올바르게 실행되었는지 확인한 후 make 명령을 사용하여 설치. 참고: "echo $?"를 사용하면 이 명령의 실행 결과를 보고 이전 명령이 올바르게 실행되었는지 확인할 수 있습니다. 일반적으로 0은 올바르게 수행되었음을 의미합니다.

[root@mysql-master mha4mysql-manager-0.56]# make
[root@mysql-master mha4mysql-manager-0.56]# make install
로그인 후 복사

(10) 마스터에 매니저 설치가 완료되면 같은 방법으로 mha4mysql-node를 컴파일하고 설치한다.

[root@mysql-manager ~]# tar xf mha4mysql-node-0.56.tar.gz
[root@mysql-manager ~]# cd mha4mysql-node-0.56
[root@mysql-manager mha4mysql-node-0.56]# perl Makefile.PL
#判断Makefile.PL是否正常执行完成
[root@mysql-manager mha4mysql-node-0.56]# echo $?
0
[root@mysql-manager mha4mysql-node-0.56]# make && make install
로그인 후 복사

(11) 나머지 3개 서버(master,slave01,slave02)에도 mha4mysql-node

[root@mysql-slave01 ~]# tar mha4mysql-node-0.56.tar.gz
[root@mysql-slave01 ~]# cd mha4mysql-node-0.56
[root@mysql-slave01 mha4mysql-node-0.56]# perl Makefile.PL
[root@mysql-slave01 mha4mysql-node-0.56]# make && make install
로그인 후 복사

를 설치한다. ) 나머지 두 노드도 같은 방법으로 설치하는데 여기서는 생략한다.

(12) 설치가 완료되면 /usr/local/bin 아래에 mha4mysql에서 생성된 스크립트 파일인 일부 스크립트가 있는 것을 확인할 수 있습니다.

(13) MHA 초기화

mha의 구성 파일을 편집합니다. 크게 두 가지 범주로 구성됩니다.
글로벌 구성: 각 애플리케이션에 대한 기본 구성을 제공합니다.
애플리케이션 구성: 어떤 서버를 지정하는 데 사용됩니다.

#创建目录并编辑配置文件
[root@mysql-manager ~]# mkdir -pv /etc/masterha/
[root@mysql-manager ~]# vim /etc/masterha/app01.conf
로그인 후 복사

다음 내용을 작성합니다.

[server default]
user=mha  #管理用户的用户名
password=mha  #管理用户密码
manager_workdir=/data/masterha/app01  #manager节点的工作目录,用来存放一些二进制日志,不存在会自动创建
manager_log=/data/masterha/app01/manager.log #日志文件位置
remote_workdir=/data/masterha/app01  #远程的每一个节点的工作目录,没有会自动生成
ssh_user=root  #需要使用ssh来完成一些管理操作
repl_user=repl  #拥有复制权限的用户名
repl_password=repl  #拥有复制权限的密码
ping_interval=1  #每隔多长时间监测一次主节点是否在线,心跳信息监测
#其他主机
[server1]
hostname=192.168.199.104
#ssh_port=3306  #如果MySQL没有使用默认端口号,则此处需要指定,使用默认端口不需要指定
candidate_master=1  #表示该节点是否在主节点故障之后参与成为主节点
master_binlog_dir=/mysql_data/ #指定mysql的binlog日志路径
[server2]
hostname=192.168.199.105
candidate_master=1
master_binlog_dir=/mysql_data/
[server3]
hostname=192.168.199.106
#no_master=1  #表示主节点故障之后,该节点不参与成为主节点
master_binlog_dir=/mysql_data/
로그인 후 복사

(14) 각 노드 간의 통신이 정상적인지 확인

[root@mysql-manager ~]# masterha_check_ssh --conf=/etc/masterha/app01.conf
로그인 후 복사

오류 1: @INC에서 Config/Tiny.pm을 찾을 수 없습니다(@INC에는 다음이 포함되어 있으며 인터넷에서 다운로드해야 합니다. http://rpmfind에서 필수 rpm 패키지를 다운로드할 수 있습니다. .net/. 다음 rpm 패키지는 CentOS6.9 X86_64용입니다.

perl-Mail-Sender-0.8.16-3.el6.noarch.rpm 
perl-Log-Dispatch-2.26-1.el6.rf.noarch.rpm 
perl-Parallel-ForkManager-0.7.9-1.el6.noarch.rpm
perl-Config-Tiny-2.12-7.1.el6.noarch.rpm
로그인 후 복사

다운로드가 완료된 후 yum 명령을 사용하세요. 다른 패키지에 따라 달라질 수 있기 때문입니다
.

错误2:master_check_ssh执行中的错误:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
原因:/root/.ssh/下的文件内容不一样或者文件的权限有问题,我遇到的是文件内容有问题。
解决办法:重新将其他主机上的秘钥对和私钥拷贝一份就正常了。


(15)检查主从复制环境是否正常

[root@mysql-manager ~]# masterha_check_repl --conf=/etc/masterha/app01.conf
로그인 후 복사

错误1:

Sat Jun  2 03:07:26 2018 - [error][/usr/local/share/perl5/MHA/ServerManager.pm, ln301] install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at (eval 27) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.
로그인 후 복사

原因:缺少perl-DBD-MySQL依赖库
解决办法:

[root@mysql-manager ~]# yum install -y perl-DBD-MySQL*
로그인 후 복사

错误2:

Sat Jun  2 03:11:06 2018 - [error][/usr/local/share/perl5/MHA/ServerManager.pm, ln188] There is no alive server. We can't do failover
로그인 후 복사

错误3:

Failed to save binary log: Binlog not found from /var/lib/mysql,/var/log/mysql! If you got this error at MHA Manager, please set "master_binlog_dir=/path/to/binlog_directory_of_the_master
로그인 후 복사

原因:mysql的binlog日志目录没有在默认的/var/log/mysql下,而是在其他地方,导致目录找不到。
解决办法:在manager节点的配置文件中每个节点下制定二进制日志的目录路径。

[server1]
hostname=192.168.199.105
candidate_master=1
master_binlog_dir=/mysql_data/  #指定二进制日志文件目录
로그인 후 복사

错误4:

Can't exec "mysqlbinlog": No such file or directory at /usr/local/share/perl5/MHA/BinlogManager.pm line 106.
mysqlbinlog version command failed with rc 1:0, please verify PATH, LD_LIBRARY_PATH, and client options
로그인 후 복사

原因:使用ssh连接之后找不到mysqlbinlog命令
解决办法:将/usr/local/mysql-5.6.39/目录连接到/usr/bin下

[root@mysql-master ~]# ln –s /usr/local/mysql-5.6.39/bin /usr/bin
[root@mysql-slave01 ~]# ln –s /usr/local/mysql-5.6.39/bin /usr/bin
[root@mysql-slave02 ~]# ln –s /usr/local/mysql-5.6.39/bin /usr/bin
로그인 후 복사

(16)启动MHA

#前台启动,日志会直接打印在控制台上
[root@mysql-manager app01]# masterha_manager --conf=/etc/masterha/app01.conf
#后台启动
[root@mysql-manager app01]# nohup masterha_manager --conf=/etc/masterha/app01.conf &
로그인 후 복사

(17)验证高可用故障自动转移

#停止master节点的mysqld服务
[root@mysql-master ~]# killall mysqld mysqld_safe

#查看原来的两个slave节点信息,发现已经有slave01被提升为master了
mysql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.199.105
                  Master_User: repl
                  ...
#查看slave01的read_only属性,发现已经被修改为OFF了
mysql> SHOW VARIABLES LIKE 'read_only';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| read_only     | OFF   |
+---------------+-------+
로그인 후 복사

注意:当某一个master故障之后,从库提升为主库,原来的manager节点上的manager服务会自动退出。需要手动重启。
(18)故障的服务器再次恢复时,需要使用”CHANGE MASTER”命令手动将其加入到从节点中
(19)manager节点启动之后,可以使用masterha_check_status命令查看当前的主节点状态信息

[root@mysql-manager ~]# masterha_check_status --conf=/etc/masterha/app01.conf 
    app01 (pid:20582) is running(0:PING_OK), master:192.168.199.105
로그인 후 복사

MHA的其他用法,如在线主从切换等,可以自行参考官方文档,此处不再介绍。另外还有MHA的manager节点的自动重启功能,报警功能,故障主机彻底摘除功能等可以通过shell脚本实现,后面有时间会继续介绍。

至此,MySQL的MHA高可用基本功能搭建完成。整个过程中有无数的坑,可能读者在搭建过程中,还会遇到其他的深坑,最好能够硬着头皮一个一个去解决!篇幅较长,所有内容都是经过验证一个字一个字敲上去的,但也难免有笔误,如有错误,欢迎在下方评论指出!

相关推荐:

运维角度浅谈MySQL数据库优化

运维角度浅谈MySQL数据库优化(李振良)

위 내용은 MySQL 데이터베이스를 기반으로 MySQL 고가용성 운영 및 유지관리에 대해 이야기해 보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Mar 19, 2025 pm 03:51 PM

이 기사는 MySQL의 Alter Table 문을 사용하여 열 추가/드롭 테이블/열 변경 및 열 데이터 유형 변경을 포함하여 테이블을 수정하는 것에 대해 설명합니다.

MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까? MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까? Mar 18, 2025 pm 12:01 PM

기사는 인증서 생성 및 확인을 포함하여 MySQL에 대한 SSL/TLS 암호화 구성에 대해 설명합니다. 주요 문제는 자체 서명 인증서의 보안 영향을 사용하는 것입니다. [문자 수 : 159]

MySQL에서 큰 데이터 세트를 어떻게 처리합니까? MySQL에서 큰 데이터 세트를 어떻게 처리합니까? Mar 21, 2025 pm 12:15 PM

기사는 MySQL에서 파티셔닝, 샤딩, 인덱싱 및 쿼리 최적화를 포함하여 대규모 데이터 세트를 처리하기위한 전략에 대해 설명합니다.

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? 인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? Mar 21, 2025 pm 06:28 PM

기사는 MySQL Workbench 및 Phpmyadmin과 같은 인기있는 MySQL GUI 도구에 대해 논의하여 초보자 및 고급 사용자를위한 기능과 적합성을 비교합니다. [159 자].

드롭 테이블 문을 사용하여 MySQL에서 테이블을 어떻게 드롭합니까? 드롭 테이블 문을 사용하여 MySQL에서 테이블을 어떻게 드롭합니까? Mar 19, 2025 pm 03:52 PM

이 기사에서는 Drop Table 문을 사용하여 MySQL에서 테이블을 떨어 뜨리는 것에 대해 설명하여 예방 조치와 위험을 강조합니다. 백업 없이는 행동이 돌이킬 수 없으며 복구 방법 및 잠재적 생산 환경 위험을 상세하게합니다.

외국 키를 사용하여 관계를 어떻게 표현합니까? 외국 키를 사용하여 관계를 어떻게 표현합니까? Mar 19, 2025 pm 03:48 PM

기사는 외국 열쇠를 사용하여 데이터베이스의 관계를 나타내고 모범 사례, 데이터 무결성 및 피할 수있는 일반적인 함정에 중점을 둡니다.

JSON 열에서 인덱스를 어떻게 생성합니까? JSON 열에서 인덱스를 어떻게 생성합니까? Mar 21, 2025 pm 12:13 PM

이 기사에서는 PostgreSQL, MySQL 및 MongoDB와 같은 다양한 데이터베이스에서 JSON 열에서 인덱스를 작성하여 쿼리 성능을 향상시킵니다. 특정 JSON 경로를 인덱싱하는 구문 및 이점을 설명하고 지원되는 데이터베이스 시스템을 나열합니다.

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까? 일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까? Mar 18, 2025 pm 12:00 PM

기사는 준비된 명령문, 입력 검증 및 강력한 암호 정책을 사용하여 SQL 주입 및 무차별 적 공격에 대한 MySQL 보안에 대해 논의합니다 (159 자)

See all articles