我已经创建了一个带有的mysql集群。
version: '3.9'
services:
management:
image: mysql/mysql-cluster:8.0
volumes:
- ./mysql.conf/my.cnf:/etc/my.cnf
- ./mysql.conf/mysql-cluster.cnf:/etc/mysql-cluster.cnf
- /etc/localtime:/etc/localtime:ro
command: ndb_mgmd
networks:
mysqlcluster:
ipv4_address: 172.28.0.1
ndb1:
image: mysql/mysql-cluster:8.0
volumes:
- ./mysql.conf/my.cnf:/etc/my.cnf
- ./mysql.conf/mysql-cluster.cnf:/etc/mysql-cluster.cnf
- /etc/localtime:/etc/localtime:ro
command: ndbd
depends_on:
- "management"
networks:
mysqlcluster:
ipv4_address: 172.28.0.21
ndb2:
image: mysql/mysql-cluster:8.0
volumes:
- ./mysql.conf/my.cnf:/etc/my.cnf
- ./mysql.conf/mysql-cluster.cnf:/etc/mysql-cluster.cnf
- /etc/localtime:/etc/localtime:ro
command: ndbd
depends_on:
- "management"
networks:
mysqlcluster:
ipv4_address: 172.28.0.22
ndb3:
image: mysql/mysql-cluster:8.0
volumes:
- ./mysql.conf/my.cnf:/etc/my.cnf
- ./mysql.conf/mysql-cluster.cnf:/etc/mysql-cluster.cnf
- /etc/localtime:/etc/localtime:ro
command: ndbd
depends_on:
- "management"
networks:
mysqlcluster:
ipv4_address: 172.28.0.23
ndb4:
image: mysql/mysql-cluster:8.0
volumes:
- ./mysql.conf/my.cnf:/etc/my.cnf
- ./mysql.conf/mysql-cluster.cnf:/etc/mysql-cluster.cnf
- /etc/localtime:/etc/localtime:ro
command: ndbd
depends_on:
- "management"
networks:
mysqlcluster:
ipv4_address: 172.28.0.24
mysql1:
image: mysql/mysql-cluster:8.0
ports:
- "2201:3306"
volumes:
- ./mysql.conf/my.cnf:/etc/my.cnf
- ./mysql.conf/mysql-cluster.cnf:/etc/mysql-cluster.cnf
- /etc/localtime:/etc/localtime:ro
- ./data/mysql1:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: bdteste
MYSQL_USER: teste
MYSQL_PASSWORD: teste
MYSQL_ROOT_HOST: '%'
command: mysqld
depends_on:
- "management"
- "ndb1"
- "ndb2"
- "ndb3"
- "ndb4"
networks:
mysqlcluster:
ipv4_address: 172.28.0.11
mysql2:
image: mysql/mysql-cluster:8.0
ports:
- "2202:3306"
volumes:
- ./mysql.conf/my.cnf:/etc/my.cnf
- ./mysql.conf/mysql-cluster.cnf:/etc/mysql-cluster.cnf
- /etc/localtime:/etc/localtime:ro
- ./data/mysql2:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: bdteste
MYSQL_USER: teste
MYSQL_PASSWORD: teste
MYSQL_ROOT_HOST: '%'
command: mysqld
depends_on:
- "management"
- "ndb1"
- "ndb2"
- "ndb3"
- "ndb4"
networks:
mysqlcluster:
ipv4_address: 172.28.0.12
mysql3:
image: mysql/mysql-cluster:8.0
ports:
- "2203:3306"
volumes:
- ./mysql.conf/my.cnf:/etc/my.cnf
- ./mysql.conf/mysql-cluster.cnf:/etc/mysql-cluster.cnf
- /etc/localtime:/etc/localtime:ro
- ./data/mysql2:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: bdteste
MYSQL_USER: teste
MYSQL_PASSWORD: teste
MYSQL_ROOT_HOST: '%'
command: mysqld
depends_on:
- "management"
- "ndb1"
- "ndb2"
- "ndb3"
- "ndb4"
networks:
mysqlcluster:
ipv4_address: 172.28.0.13
adminer:
image: adminer
restart: always
ports:
- 8888:8080
links:
- mysql1:db
networks:
mysqlcluster:
networks:
mysqlcluster:
driver: bridge
ipam:
config:
- subnet: 172.28.0.0/16
gateway: 172.28.5.254所有的跑步和工作都很好:
bash-4.4# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: 172.28.0.1:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 6 node(s)
id=21 @172.28.0.21 (mysql-8.0.30 ndb-8.0.30, Nodegroup: 0, *)
id=22 @172.28.0.22 (mysql-8.0.30 ndb-8.0.30, Nodegroup: 0)
id=23 @172.28.0.23 (mysql-8.0.30 ndb-8.0.30, Nodegroup: 1)
id=24 @172.28.0.24 (mysql-8.0.30 ndb-8.0.30, Nodegroup: 1)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @172.28.0.1 (mysql-8.0.30 ndb-8.0.30)
[mysqld(API)] 4 node(s)
id=11 @172.28.0.11 (mysql-8.0.30 ndb-8.0.30)
id=12 @172.28.0.12 (mysql-8.0.30 ndb-8.0.30)在客户端上,我在172.28.0.11上创建了新的数据库和新的表,我正在插入新的行,所有这些都很好。但是,如果连接到172.28.0.12数据库,但存在空表,则在172.28.0.11上创建的新表在172.28.0.12上没有检测到。
有什么建议吗?谢谢
发布于 2022-08-17 05:52:08
抱歉这是我的错。以文件为基础
https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster-install-example-data.html
我们必须用ENGINE=NDBCLUSTER创建表
在我用ENGINE=NDBCLUSTER重新创建所有表之后,每个mysql服务器现在都同步该表。谢谢
https://stackoverflow.com/questions/73382297
复制相似问题