오늘은 MySQL 주제를 이어가며, 오늘은 Amoeba 기반의 MySQL 읽기-쓰기 분리를 구현하는 솔루션에 대한 글을 들고 왔으니 바로 오늘의 주제로 들어가겠습니다.
主机名 | IP地址 | 节点 |
liuyazhuang152 | 192.168.0.152 | amoeba |
liuyazhuang153 | 192.168.0.153 | 写库 |
liuyazhuang154 | 192.168.0.154 | 读库 |
amoeba를 192.168.0.152에 설치했고, mysql을 192.168.0.153과 192.168.0.154에 설치했습니다. 0.153의 경우 쓰기용 데이터베이스로 구성되어 있고, 192.168.0.154의 MySQL은 읽기용 데이터베이스로 구성되어 있으며, 우리 클라이언트는 amoeba에 접속하고, amoeba는 해당 데이터베이스에 데이터를 쓰고 을 통해 쿼리를 수행합니다. : 192.168.0.153 서버 MySQL은 관련 데이터를 삽입했지만 192.168.0.154의 MySQL 서버는 그렇지 않습니다. 우리는 아메바가 우리 프로그램이 읽기-쓰기 분리 기능을 완료하는 데 도움을 주었다고 생각합니다.
블로그 게시물 "MySQL-CentOS6.5 MySQL5.6.16 컴파일 및 설치 상세 코드 소개"를 참고하세요
https://sourceforge.net/projects/amoeba/에 가서 여기서 Amoeba를 다운로드할 수 있습니다. amoeba-mysql-binary-2.2 .0.tar.gz
Amoeba는 Java로 작성되었기 때문에 우리 서버는 Java 실행 환경으로 구성되어야 합니다. . 여기서는 Java 구성 방법에 대해 이야기하지 않겠습니다. 실행 환경은 준비되어 있습니다
아메바가 압축 해제된 직후에는 파일이 없으므로 미리 / 폴더를 생성해야 합니다. usr/local: amoeba-mysql-binary-2.2.0
그런 다음 명령줄에 다음 명령을 입력합니다
tar -zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba-mysql-binary-2.2.0
/usr/local/amoeba-mysql에 Amoeba를 추출합니다. -binary-2.2.0 디렉토리입니다. 이제 설치가 완료되었습니다.
Amoeba의 conf 디렉토리에서 다음 구성 파일을 볼 수 있습니다:
여기에서는 amoeba.xml 및 dbServers.xml 파일에 중점을 둡니다.
amoeba.xml 파일을 열고 다음 코드를 찾습니다.
us 사용자 이름과 비밀번호를 구성합니다. 이 중 Amoeba의 기본 포트는 8066입니다. 구성 효과는 다음과 같습니다.
다음 코드를 찾으세요.
댓글을 삭제하면 효과는 다음과 같습니다.
아메바는 이렇게 됩니다. 파일을 구성한 후 액세스합니다. mysql을 사용할 때 amoeba를 통해 MySQL에 연결하려면 amoeba.xml 파일에 구성된 포트, 사용자 이름, 비밀번호에 액세스해야 합니다.
dbServers.xml 파일에서 다음 코드를 찾으세요.
우리는 여기에 관련되어 있습니다 데이터베이스 구성에 대해 다음 사항에 유의하십시오. 이러한 데이터베이스 구성에서는 읽기 및 쓰기와 분리되는 데이터베이스, 사용자 이름 및 비밀번호를 지정합니다. 사용자 이름과 비밀번호는 터미널에서 Amoeba에 액세스하기 위해 구성한 사용자 이름과 비밀번호입니다. 수정 후의 효과는 다음과 같습니다.
이 때 사용자 이름과 비밀번호는 MySQL 서버에서 Amoeba 서버에 대한 인증을 받아야 로그인할 수 있습니다. MySQL 서버.
다음 코드를 찾습니다.
아래와 같이 두 MySQL 서버의 IP 주소로 수정합니다.
이 시점에서 Amoeba 기반의 읽기 및 쓰기 분리를 구성했습니다.
두 개의 MySQL 서버에 각각 로그인하고 다음 명령을 실행하여 Amoeba를 승인합니다.
grant all on lyz.* to lyz@192.168.0.152 identified by 'lyz';
사용자 이름과 비밀번호는 다음과 같습니다. dbServers.xml 파일에 구성된 사용자 이름과 비밀번호를 사용합니다. 이때 MySQL 인증이 완료됩니다
Amoeba의 bin 디렉터리에 들어가서 명령줄에 다음 명령을 입력합니다. run Amoeba
./amoeba start &
그 중 &는 백그라운드에서 실행 중임을 나타냅니다. 이때 시작에 실패한 것으로 확인되었습니다. 정보는 다음과 같습니다.
이는 구성된 Java 스택이 최소 228K로 너무 작다는 것을 의미합니다. 이때 bin 디렉터리에서 amoeba 스크립트 파일을 열고 다음 코드를 찾습니다.
아래 그림과 같이 위 그림의 128K를 256K로 변경합니다(실제 상황에 따라 수정하여 변경할 수 있음).
此时我们重新输入命令
./amoeba start &
启动成功
我们先分别查询MySQL数据库表上的相关数据,未通过Amoeba操作数据库的时候,我们是新建的数据库lyz和表t1,此时192.168.0.153和192.168.0.154上MySQL数据表都应该为空,如下图:
我们在192.168.0.152上输入如下命令登录Amoeba,通过Amoeba访问数据库
mysql -h192.168.0.152 -uroot -proot -P 8066
注意:我们这里输入的端口是8066,此端口是Amoeba配置的端口,我们需要登录Amoeba而不是直接登录MySQL
登录成功如下图所示:
此时我们在终端查询数据表数据,显示为空,如下图:
我们在Amoeba服务器终端插入一条数据,如下:
同时,我们在Amoeba上查询数据如下:
数据为空。
我们登录192.168.0.153数据库,查看表数据如下:
如图,说明Amoeba向192.168.0.153库插入了数据。
我们在登录192.168.0.154数据库查看数据信息,如下:
说明Amoeba没有向192.168.0.154库插入数据,并从192.168.0.154库读取数据。
至此,基于Amoeba实现MySQL读写分离全部配置完成。
./amoeba start & 启动amoeba ./amoeba stop 关闭amoeba
위 내용은 MySQL - 아메바 기반 읽기와 쓰기 분리에 대한 자세한 설명(그림 및 텍스트)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!