![如何设置 Mysql 集群?](https://linux22.com/image/1094202/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%20Mysql%20%E9%9B%86%E7%BE%A4%EF%BC%9F.png)
过去三周我一直尝试mysql-cluster-gpl-7.1.17-linux-i686-glibc23.tar.gz
在服务器上进行设置,但尚未成功。ubuntu 10.04
我关注的链接是:
http://stepbysteparticles.com/index.php?option=com_content&view=article&id=48&Itemid=54
http://cyrenity.wordpress.com/2010/08/12/howto-setup-mysql-cluster-beginners-tutorial/
http://tech.jocke.no/2011/03/13/mysql-cluster-how-to-with-load-balancing-failover/
http://www.lod.com/whitepapers/mysql-cluster-howto.html
http://blog.rimuhosting.com/2011/07/06/building-database-clusters-with-mysql/
上述链接中的所有配置几乎相同,只有一些细微的变化,我只是尝试了所有方法,看看是否有用,但都没有。
我已经发过帖子了服务器故障但我仍然无法让它工作。
如果尝试多次后仍无效果,我总是会回到这里,现在我就是这样的。
另外,我不明白是否mysql-server
需要与其他mysql-client
一起安装才能在 SQL 节点上运行。在我的例子中,设置是。mysql-cluster
mysql-cluster
mysqld
3 nodes=(data1+sql1 + data2+sql2 + mgmt node)
常见错误:
/etc/init.d/mysql.server启动
输出:
Starting MySQL
* Couldn't find MySQL manager (/usr/bin/mysqlmanager) or server (/usr/bin/mysqld_safe)
我甚至尝试复制/usr/local/mysql/bin/*
但仍然没有用,因为它在尝试启动时/usr/bin
就提示!. * Manager of pid-file quit without updating file.
尝试在 data/sql 节点上启动 mysql 守护进程时
cd /usr/本地/mysql
./bin/mysqld_safe --user=mysql --defaults-file=/etc/my.cnf &
输出:
[1] 2338
root@web2:/usr/local/mysql# 111208 15:53:47 mysqld_safe Logging to syslog.
111208 15:53:47 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
111208 15:53:47 mysqld_safe mysqld from pid file /var/lib/mysql/web2.pid ended
[1]+ Done ./bin/mysqld_safe --user=mysql --defaults-file=/etc/my.cnf
有人能帮我一下吗?有人能澄清一下 ubuntu 或集群配置是否有问题吗?一旦成功,我就必须在云服务器上实现这一点。
谢谢你!
更新:1
现在,我已经在 SQL/Data 节点上删除了它们mysql-server
,mysql-client
我通常将它们作为任何全新安装的基本包进行安装。我通过运行以下命令删除了它们,并且在两个节点上只有mysql-cluster
我无法设置的可用:
apt-get 删除 mysql 客户端 mysql-client-5.1 mysql-client-core-5.1 mysql-common mysql 服务器 mysql-server-5.1 mysql-server-core-5.1
更新:2
我已经解决了我遇到的问题。现在我还有以下事情要做。
添加/删除在线节点的
mgmt
最佳方法是什么?SQL/DATA
编辑:我试过mysql文档
/var/lib/mysql-cluster
用于在线添加节点但感到困惑,并且除非我关闭所有节点并删除所有节点上的日志,否则它不起作用。my.conf
为了进行最佳性能调整,我应该在我的文件中包含哪些附加配置DataMemory
,IndexMemory
如果有人用于生产,可以推荐或粘贴在这里吗?
更新:3
如何将数据库的所有表引擎转换为具有外键的 NDB?
编辑:我找到了一个用于转换所有表引擎的脚本,但是我的数据库的所有表都没有转换,错误如下:第 11 行出现错误 1217 (23000):无法删除或更新父行:外键约束失败
有没有一种方法可以同时拥有 NDB 和 InnoDB 的功能以及集群和多主复制,而且没有风险(停机时间)?
答案1
哦……经过多次尝试,我自己终于成功了,现在需要等到。链接是很好的教程,我可以用这种方法解决我遇到的问题。
另外,我不明白是否需要与 mysql-cluster 一起安装 mysql-server 或 mysql-client,否则单独 mysql-cluster 就足以在 SQL 节点上运行 mysqld。
A:我不确定是否可以mysql-cluster
正常工作mysql-server
,以及mysql-client
哪些已经安装,apt
但我确信 Ubuntu 上的 mysql-cluster 不需要这些或任何额外的包,因为它本身具有所有包。因此,我可以mysqld
从集群提取的包运行,并且不需要为 SQL 节点额外安装任何包。
./bin/mysqld_safe --user=mysql --defaults-file=/etc/my.cnf &
A:无需mysqld
手动运行,而是可以使用/etc/init.d/mysql.server start
复制来/usr/local/mysql/support-files/mysql.server
启动mysqld / SQL节点。
启动 MySQL * 找不到 MySQL 管理器 (/usr/bin/mysqlmanager) 或服务器 (/usr/bin/mysqld_safe)
A:以上是尝试启动时遇到的错误mysql.server
,那是因为我已经安装了mysql-server
和mysql-client
。这些应该被完全删除(我不确定是否可以与它们一起成功运行集群),我做到了。这些没有被完全删除(可能我必须使用apt --purge remove
)。检查dpkg --get-selections | grep mysql
,如果你发现deinstall
那些没有完全卸载,这应该否则将不得不面对上述错误。执行以下命令完全删除了它们,我可以启动 mysql.server 而不会出现任何错误。
aptitude purge $(dpkg --get-selections | grep deinstall | sed s/deinstall//) #To completely remove all deinstall package
pkill -9 mysqld
/etc/init.d/mysql.server
...... * pid-file 管理器退出,未更新文件。
A:我在测试启动时多次遇到上述错误mysql.server
。我可以通过简单地向data
mysql 用户授予权限来避免这种chown -R mysql:mysql /usr/local/mysql/data
情况,这个错误是因为我尝试多次提取新的 mysql-cluster,因此错误为用户无法在数据目录下创建 pid 文件,因为没有权限, sql/data 节点mysql
下的错误日志帮助我跟踪了这个问题。/var/lib/mysql-cluster
应该非常具体地分配给/usr/local/mysql/数据,如果你只是这样做chown -R mysql:mysql /usr/local/mysql
并且保持安静,它将不会起作用并且会引发相同的错误!
授予权限后,通过发出检查mysqld是否正常工作并正在运行/usr/local/mysql/bin/mysql -uroot -p
。即使输入密码后您也无法连接并抛出错误,则mysql root密码未设置或您忘记了。使用以下命令重置mysql root密码,然后尝试再次连接:
/usr/local/mysql/bin/mysqladmin -uroot password your-new-password-here
我对这个答案既不满意,也不愿意接受并奖励自己,因为我在这个集群中还有很多事情要做。我愿意用更多查询更新我的问题,并等待为其他将要回答的人奖励积分。更新的问题!
谢谢你!
更新
我们考虑使用 MySQL Cluster 作为生产 Web 服务器,其中 apache-tomcat 提供一些静态和 jsp 页面,但由于速度慢joins
、不支持foreign keys
等等……这些问题在我们的环境中至关重要,并且在 Innodb 引擎中比 NDB 运行良好,我最终不再使用 mysql 集群,而是再次回头考虑复制,尽管它存在同步问题。谢谢!