全世界最权威的博客

1月 05

mysql ndbcluster 搭建及注意事项

搭建步骤

官方没有给出手工搭建的步骤,只给了一个自动搭建工具,然而这工具问题多多,解决了一个又来一个,生成的配置文件也不是很合理,最终在下还是选择自动搭建工具+人工优化的方式搭建.

步骤

要截图还要讲解,真麻烦.有空在写......

注意事项

  1. 各个nodegroup要在30秒内启动完成,否则之前启动的会自动关闭

  2. 不要用root账号运行mysql

  3. 同一nodegroup的节点不要部署到同一机器

  4. 整个集群必须在同一内网如果你在搭建测试环境,请当我在放屁

错误及解决方案

  • 1114 The table is full
    我都没创建几个表呢,怎么表就满了;搜到相关的资料非常少(恕我直言,跟大型网站有关的资料都非常少,90%都是单机应用的增删查改),stackoverflow找了一下跟百度一样都说是内存满了或者硬盘满了;服务器内存,硬盘剩余空间,临时文件夹都看了,空间是足够的,用nbd_mgm show命令看了一下各个数据节点,已用空间都是0%,官方论坛找了一下,有人遇到相同情况,但是看了一下问题没有解决就没有下文了,最后一条回复是3个月前的.没辙了,只好一个个找stackoverflow上的问题,看看有哪个不是说内存满了的,功夫不负有心人,终于找到了请看这里;
    这里给英语不好的同志翻译一下:设置一下config.ini把MaxNoOfAttributes和MaxNoOfOrderedIndexes这两个参数调大即可.

  • 1215
    ndb引擎的外键检查比innodb严格,除了搜到的常见原因外,还要检查目标表是否存在跟外键对不上的记录,若是,请删除外键对不上的数据或者把外键列的值设置为null.还可以SET FOREIGN_KEY_CHECKS=0;关闭外键校验后添加外键.什么?高高兴兴跑去删了数据才看到关闭外键校验的方法?关我屁事,你以为我会同情你?我差点笑出声.

  • 创建的表只在某个sql节点能查到,其它节点查不到
    请检查你创建的表是否是使用ndbcluster引擎,用innodb或者myisam创建的表都只会存放在当前节点,不会存到集群

  • 由于是搭好了集群才写的文章...已经忘记还有什么错误了.....总之是问题不断,大家有什么解决不了的可以在文章下面留言,在下会及时回复的

4月 19

ERROR 1130: Host *** is not allowed to connect to this MySQL server

从其它电脑连接某些版本的mysql数据库的时候,因安全原因会提示这个

Host *** is not allowed to connect to this MySQL server


 

解决办法:

例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话,执行下面的sql语句:

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

      FLUSH PRIVILEGES;