我正在使用 ndb cluster au 安装简单测试和高写入负载选项。集群启动成功。然后我create-minimal-mysql.sql
通过替换InnoDB
并NDBCLUSTER
运行它来编辑文件。它显示:
第 1703 行的错误 1114(HY000):表“用户组”已满。
这是我config.ini
在管理节点配置目录中的文件:
#
# Configuration file for MyCluster
#
[NDB_MGMD DEFAULT]
Portnumber=1186
[NDB_MGMD]
NodeId=49
HostName=192.168.5.4
DataDir=/home/admin/MySQL_Cluster/49/
Portnumber=1186
[TCP DEFAULT]
SendBufferMemory=8M
ReceiveBufferMemory=8M
[NDBD DEFAULT]
BackupMaxWriteSize=1M
BackupDataBufferSize=16M
BackupLogBufferSize=4M
BackupMemory=20M
BackupReportFrequency=10
MemReportFrequency=30
LogLevelStartup=15
LogLevelShutdown=15
LogLevelCheckpoint=8
LogLevelNodeRestart=15
DataMemory=1146M
IndexMemory=184M
MaxNoOfTables=4096
MaxNoOfTriggers=3500
MaxNoOfAttributes=25000
NoOfReplicas=2
StringMemory=25
DiskPageBufferMemory=64M
SharedGlobalMemory=20M
LongMessageBuffer=32M
MaxNoOfConcurrentTransactions=16384
BatchSizePerLocalScan=512
FragmentLogFileSize=64M
NoOfFragmentLogFiles=16
RedoBuffer=64M
MaxNoOfExecutionThreads=2
StopOnError=false
LockPagesInMainMemory=1
TimeBetweenEpochsTimeout=32000
TimeBetweenWatchdogCheckInitial=60000
TransactionInactiveTimeout=60000
HeartbeatIntervalDbDb=15000
HeartbeatIntervalDbApi=15000
[NDBD]
NodeId=1
HostName=192.168.5.4
DataDir=/home/admin/MySQL_Cluster/1/
[NDBD]
NodeId=2
HostName=192.168.5.75
DataDir=/home/admin/MySQL_Cluster/2/
[MYSQLD DEFAULT]
[MYSQLD]
NodeId=52
HostName=192.168.5.4
[MYSQLD]
NodeId=55
HostName=192.168.5.75
[API]
NodeId=50
HostName=192.168.5.4
[API]
NodeId=51
HostName=192.168.5.4
[API]
NodeId=53
HostName=192.168.5.75
[API]
NodeId=54
HostName=192.168.5.75
管理节点报告:
Node 1: Data usage is 0%(48 32K pages of total 64000)
Node 1: Index usage is 0%(468 8K pages of total 64032)
Node 2: Data usage is 0%(48 32K pages of total 64000)
Node 2: Index usage is 0%(468 8K pages of total 64032)
和配置:
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=1 @192.168.5.4 (mysql-5.6.11 ndb-7.3.2, Nodegroup: 0, Master)
id=2 @192.168.5.75 (mysql-5.6.11 ndb-7.3.2, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=49 @192.168.5.4 (mysql-5.6.11 ndb-7.3.2)
[mysqld(API)] 6 node(s)
id=50 (not connected, accepting connect from 192.168.5.4)
id=51 (not connected, accepting connect from 192.168.5.4)
id=52 @192.168.5.4 (mysql-5.6.11 ndb-7.3.2)
id=53 (not connected, accepting connect from 192.168.5.75)
id=54 (not connected, accepting connect from 192.168.5.75)
id=55 @192.168.5.75 (mysql-5.6.11 ndb-7.3.2)
我应该怎么办???
1114 错误有多种可能的原因。
首先要查找的是节点是否在其数据文件夹中具有写入权限。
ndbd
在数据节点 1 上运行的用户是/home/admin/MySQL_Cluster/1/
文件夹的所有者吗?还要在节点 2 上检查这一点。接下来,根据http://dev.mysql.com/doc/refman/5.5/en/faqs-mysql-cluster.html#qandaitem-B-10-1-13检查节点的硬件要求。最重要的是,确保所有节点都有相同数量的 RAM。此外,检查 RAM 的数量是否足以存储所有数据和索引(您的配置需要每个 NDB 节点大约 2.5GB,但 3GB 会更好)。
您的脚本是立即失败,还是在插入多行后失败?如果它能够写入几行而不是失败,则问题与节点上的写入权限无关。
尝试手动将一些数据插入数据库(使用 mysql-client),当它失败时 type
show warnings
,这应该为您提供有关您遇到的错误的更多信息。在使用 mysql 客户端时,运行以下脚本:
如果您有任何使用
ndb_engine
.编辑:根据 supper aban_89 的评论添加信息。
听起来您仍在使用默认配置参数。请参阅MySQL 文档:MaxNoOfTables 的默认值为 128。
您应该关闭 NDB 管理节点,然后使用配置文件重新启动它:
之后,通过进入 NDB 管理客户端并一一重启 NDB 节点,执行数据节点的滚动重启。你应该看到这样的输出:
滚动重启完成后,您的数据节点将使用新配置 - 希望 - 您的问题将得到解决。
编辑 2:根据评论 #2 详细说明
从这个页面:脚本可能对您的服务器来说太大了。尝试将其拆分为每个大约 1000 行的单独文件,这应该会创建 3 个或 4 个文件。(我使用http://haitianschoolwithoutborders.org/liferay/create-minimal/create-minimal-mysql.sql供参考)。
不要忘记
use lportal;
在每个文件的顶部添加,或者在导入命令中指定数据库(例如mysql -uliferay -p lportal < minimal.1.sql
)。