系统:Ubuntu16.04
mysql-cluster:mysql-cluster-gpl-7.6.7-linux-glibc2.12-x86_64.tar.gz
参考链接:https://www.cnblogs.com/xuri/p/3434064.html
mysql-cluster集群中的节点有三类:管理节点、数据节点和mysql节点,搭建过程和参考链接中基本一致,下面只记录不同点。
1.执行命令:scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data错误
改为执行:bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data 接下来提示mysql_install_db已经不能用了,继续如下命令:
bin/mysqld --user=mysql --datadir=/usr/local/mysql/data
2.执行命令:/etc/init.d/mysql.server start无法启动mysql服务,可能原因如下:
(1)之前安装过mysql,需要把系统的mysql配置文件删除或者重命名
mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
(2)提示:Starting mysql.server (via systemctl): mysql.server.serviceFailed to start mysql.server.service: Unit mysql.server.service not found.
可跳过此服务启动,已经通过前面的bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data启动mysql服务
3.执行命令:/usr/local/mysql/bin/mysql_secure_installation提示密码错误
需要用mysql安全模式修改root密码
service mysql stop
mysqld_safe --skip-grant-tables &
为了安全可以这样禁止远程连接:
mysqld_safe
--skip-grant-tables --skip-networking &
mysql -p
更改密码:
mysql> update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
mysql> flush privileges;
mysql> quit;
4.无法远程用root账号登录mysql的解决办法
本地登录mysql
mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
mysql>FLUSH PRIVILEGES;
5.搭建mysql集群的代理服务器,mysql-proxy已经不再支持,使用性能更好的mysql-router
参考链接:https://blog.csdn.net/dbabruce/article/details/51035049
有个变化的地方需要注意,
安装后配置文件地址为/etc/mysqlrouter/mysqlrouter.conf
6.插入数据报错“table is full”
登录ndb_mgm可以用以下命令查看各个节点内存使用情况:
all report memoryusage
修改数据节点的内存限制,在配置文件/var/lib/mysql-cluster/config.ini中
DataMemory=80M //调整到实际情况合适的值,不能超过物理内存
IndexMemory=18M
7.启动数据节点时,只有第一次启动需要加–-initial参数,修改管理节点配置,或者重启服务不需要加此参数,不然ndbcluster引擎的表都会丢失