ubuntu下mysql_cluster基础搭建
来源:互联网 发布:建筑工程用什么软件 编辑:程序博客网 时间:2024/06/02 06:08
准备
1、官网下载对应版本mysql_cluster安装包—-官网链接
2、搭建环境
搭建过程中,用三台计算机来实现MySQL-Cluster环境的配置,具体环境如下:
- 管理节点(MGM)服务器:192.168.131.130 主机名:jwing nodeid=1
- 数据节点1(NDB ):192.168.131.131 nodeid=2
- 数据节点2(NDB):192.168.131.132 nodeid=3
- SQL节点1:192.168.131.131 nodeid=4
- SQL节点2:192.168.131.132 nodeid=5
3、如果之前安装过mysql-server,在进行此次实验之前,需要将mysql-server卸载,执行以下指令卸载mysql
- sudo apt-get autoremove –purge mysql-server
- sudo apt-get remove mysql-server
- sudo apt-get autoremove mysql-server
- sudo apt-get remove mysql-common
管理节点配置
这里将主机ip为192.168.131.130的服务器作为管理节点,进行下面的配置。
// 将下载好的安装包解压到自己选择的目录下,并修改个短一点的名字cd /usr/localtar -zxvf /home/jwing/Downloads/mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64.tar.gzmv mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64 mysql_cluster// 将管理命令(ndb_mgm,ndb_mgmd)复制到/usr/local/bin下cd mysql_cluster/bincp ndb_mgm* /usr/local/bin// 新建管理文件并配置mkdir /var/lib/mysql-clustercd /var/lib/mysql-clustervi config.ini
config.ini文件内容:
# Options affecting ndbd processes on all data nodes:[NDBD DEFAULT] NoOfReplicas=2DataMemory=80MIndexMemory=18M# TCP/IP options:[TCP DEFAULT] #portnumber=2202# Management process options:[NDB_MGMD] nodeid=1 HostName=192.168.131.130DataDir=/var/lib/mysql-cluster/# Options for data node :[NDBD] nodeid=2HostName=192.168.131.131DataDir=/usr/local/mysql_cluster/data/# Options for data node :[NDBD] nodeid=3 HostName=192.168.131.132DataDir=/usr/local/mysql_cluster/data/# SQL node options:[MYSQLD] nodeid=4 HostName=192.168.131.131[MYSQLD]nodeid=5HostName=192.168.131.132
数据节点与sql节点配置
在192.168.131.131主机与192.168.131.132主机上均进行以下配置
1、检查是否已有mysql用户与mysql组,若不存在,手动新增
查看:
- cat /etc/passwd
- cat /etc/group
新增:
- groupadd mysql
- useradd -g mysql mysql
2、解压
// 将下载好的安装包解压到自己选择的目录下,并修改个短一点的名字cd /usr/localtar -zxvf /home/jwing/Downloads/mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64.tar.gzmv mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64.tar.gz mysql_cluster// 将ndbd命令复制到/usr/local/bin下cd mysql_cluster/bincp ndbd /usr/local/bin
3、创建系统数据库:
cd /usr/local/mysql_clusterapt-get install libaio1 libaio-devscripts/mysql_install_db --user=mysql
(报错提示主机名不匹配,可能是压缩包下载的版本(确认操作系统是32位还是64位)问题。若是提示文件夹不存在,可能是压缩包版本(有些版本没有scripts文件夹)问题或是因为之前mysql没有完全卸载。)
4、设置权限
chown -R root .chown -R mysql datachgrp -R mysql .
5、设置自启动
// 将MySQL启动脚本拷贝恰当的目录下cp support-files/mysql.server /etc/init.d // 使之成为可执行的脚本chmod +x /etc/init.d/mysql.server// 设置它能在启动操作系统时启动apt-get install sysv-rc-confsysv-rc-conf mysql.server on
6、配置my.cnf
数据节点与sql节点可在同一个文件中配置,配置文件的默认位置为/etc/my.cnf
// 新建并编辑my.cnfvi /etc/my.cnf
my.cnf内容:
[MYSQLD]ndbcluster ndb-connectstring=192.168.131.130 #管理节点ip [MYSQL_CLUSTER] ndb-connectstring=192.168.131.130 #管理节点ip
7、配置mysql环境变量
vi /etc/profilesource /etc/profile
在文件最下方配置内容如下:
export MYSQL_HOME=/usr/local/mysql_clusterPATH=${MYSQL_HOME}/bin:$PATHexport PATH
运行
1、管理节点:
配置结束后运行ndb_mgmd --ndb-nodeid=1 --initial --configdir=/var/lib/mysql-cluster/ -f /var/lib/mysql-cluster/config.ini
。失败的情况请用命令ndb_mgmd --help
查看参数提示。确保配置文件路径与配置文件内容是正确的。 ndb_mgm
可进入管理模式,再输入show可查看当前各节点状态:
2、数据节点:
运行ndbd --initial
(参数--initial
只有第一次运行需要添加,该参数会导致之前的内容清空)
数据节点连接后:
3、sql节点:
/usr/local/mysql_cluster/bin/mysqld_safe --user=mysql &// 若执行上方命令时出现不能同时写syslog和error.log的情况,则使用以下指令:/usr/local/mysql_cluster/bin/mysqld_safe --user=mysql --skip-syslog &
均连接成功后:
测试
1、登录mysql(以下数据库的操作方式不多做赘述)
在192.168.131.131与192.168.131.132登录mysql
mysql -u root -p // 密码默认为空,直接回车即可登录
2、同步测试
在192.168.131.131主机的mysql上新建数据库、表与数据。在192.168.131.132主机的mysql中查看数据是否已经被同步。
create database cluster;use cluster;// 创建表时需要指定引擎为ndbcluster(engine=ndb or engine=ndbcluster)create table test(id int, name char(10))engine=ndb;insert into test(id, name)values(1,"myname");
3、高可用测试
在192.168.131.131主机中关闭ndbd连接
pkill ndbd //关闭ndbd有关进程
修改其中一个节点,查看数据是否同步。
在192.168.131.132主机中关闭sql节点的连接
pkill mysqld //关闭mysqld有关进程
在192.168.131.131主机中修改数据,再将192.168.131.132主机中的节点连接回去,查看数据是否同步。
(关闭节点后能在管理节点的ndb_mgm
观察到状态)此时继续测试集群的同步性时可以发现数据仍然同步,说明了当有一个SQL节点或数据节点宕机后,整个MySQL-Cluster环境仍然可以工作。
- ubuntu下mysql_cluster基础搭建
- mysql_cluster体系结构
- Java基础:Ubuntu下Java环境的搭建
- Ubuntu下的LAMP环境搭建笔记 (基础向)
- Ubuntu下嵌入式Linux基础开发环境搭建
- Ubuntu 基础环境搭建
- UBUNTU 下LAMP 搭建
- Ubuntu下搭建PHP
- ubuntu下搭建VPN
- ubuntu下sendmail搭建
- Ubuntu 下搭建Opencv!
- ubuntu下samba搭建
- ubuntu下搭建lamp
- ubuntu下搭建nagios
- ubuntu 下搭建vsftp
- ubuntu下搭建tftp
- Ubuntu下搭建Oracle11g
- ubuntu下mysql搭建
- 从Python的exec()聊起(转)
- ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
- PHP开发实例之公共方法(持续更新中~)
- 日期多选插件Kalendae.js
- C++之构造函数后面:冒号的作用
- ubuntu下mysql_cluster基础搭建
- Rails 接口来完全管理绑定DLZ安装
- 简单冒泡排序的写法和两种优化
- cannot implicitly convert type System.DateTime? to System.DateTime.
- gns3关联SecureCRT
- 阿里巴巴Java开发规约插件 eclipse 安装成功但使用失败解决方案
- androidstudio手动连接夜神、海马玩、逍遥模拟器
- SSS1629|SSS1629中文说明|电路设计|台湾鑫创
- A7139无线驱动调试