Mysql-cluster環境配置

Mysql-cluster環境配置

硬件環境

4臺機器node

192.168.1.10       管理節點mysql

192.168.1.11           存儲節點 SQL節點linux

192.168.1.12           存儲節點、SQL節點sql

192.168.1.13      SQL節點數據庫

 

軟件環境:

操做系統:CentOS 6 .5(64位)服務器

Mysql版本:MySQL-Cluster-gpl-7.3.5-1.el6.x86_64.rpm-bundle.tardom

mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz(須要其中的兩個文件)socket

 

安裝準備:

1. 解壓MySQL-Cluster-gpl-7.3.5-1.el6.x86_64.rpm-bundle.tar:ide

  將解壓後的MySQL-Cluster-server-gpl-7.3.5-1.el6.x86_64.rpm分發至每臺機器;測試

  將解壓後的MySQL-Cluster-client-gpl-7.3.5-1.el6.x86_64.rpm分發至SQL節點;

2. 清理舊的Mysql安裝:

  yum -y remove mysql

  rpm -qa | grep mysql*

  對於找到的1個剩餘mysql包,請按照以下的命令格式予以刪除:
  rpm -e --nodeps mysql-libs-5.1.61-4.el6.x86_64

3. 安裝依賴庫:

  yum -y install libaio

安裝MySQL Cluster:

 建立文件夾(分以下3個類來建立對應的文件夾)
   存儲節點:mkdir /var/lib/mysql/data 
   管理節點:mkdir /var/lib/mysql-cluster     SQL節點:可不用  文件夾受權
   進程DIR:    mkdir /var/run/mysqld              
  
  使用以下的命令來變動權限保證可寫入:
   chmod -R 1777 /var/lib/mysql
   chmod -R 1777 /var/run/mysqld
   chmod -R 1777 /var/lib/mysql-cluster

1. 在每臺機器上安裝MySQL-Cluster-server-gpl-7.3.5-1.el6.x86_64.rpm

執行命令:rpm -Uvh MySQL-Cluster-server-gpl-7.3.5-1.el6.x86_64.rpm

安裝後會提示默認密碼存放在/root/.mysql_secret文件中(也有時候不提示)

2. 在SQL節點上安裝MySQL-Cluster-client-gpl-7.3.5-1.el6.x86_64.rpm

執行命令:rpm -Uvh MySQL-Cluster-client-gpl-7.3.5-1.el6.x86_64.rpm

配置管理節點:

  1. 解壓mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz,進入其

mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64\bin目錄找到ndb_mgm和ndb_mgmd,將其複製到管理節點的/usr/local/bin,

而後使這兩個文件成爲可執行的:

cd /usr/local/bin

          chmod +x ndb_mgm*

 

  1. 在管理節點上執行:

cd /var/lib/mysql-cluster

vi config.ini

 

內容以下:

[ndbd default]

 NoOfReplicas=2

 DataMemory=80M

IndexMemory=20M

 

[ndb_mgmd]

# Management process options:

hostname=192.168.1.10           # Hostname or IP address of MGM node

datadir=/var/lib/mysql-cluster  # Directory for MGM node log files

 

[ndbd]

HostName=192.168.1.11

DataDir=/var/lib/mysql/data

 

[ndbd]

HostName=192.168.1.12

DataDir=/var/lib/mysql/data

 

[mysqld]

HostName=192.168.1.11

 

[mysqld]

HostName=192.168.1.12

 

[mysqld]

HostName=192.168.1.13

 

                       

配置存儲節點和SQL節點:

在全部存儲節點和SQL節點上創建配置文件:

vi /etc/my.cnf

 

內容以下:

[client]

 socket=/var/lib/mysql/mysql.sock

 

[mysqld]

 max_connections=100

 datadir=/var/lib/mysql

 socket=/var/lib/mysql/mysql.sock

 ndbcluster

 ndb-connectstring=192.168.1.10

 

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

 

[mysql_cluster]

 ndb-connectstring=192.168.1.10

~

 

 

啓動各個節點:

注意順序。

  1. 啓動管理節點:ndb_mgmd -f /var/lib/mysql-cluster/config.ini

(須要在管理節點執行,這會建立一個目錄/usr/local/mysql/mysql-cluster,沒有的話可能報錯,就本身手動建立一個

mkdir  /usr/local/mysql

mkdir  /usr/local/mysql/mysql-cluster)

2. 啓動存儲節點:ndbd --initial

  (須要在存儲節點執行) 初次啓動時須要加--initial參數,之後只須要執行ndbd便可;

3. 啓動SQL節點:nohup mysqld_safe --explicit_defaults_for_timestamp &

(須要在SQL節點執行)

啓動以前,須要先檢查其3306端口是否被佔用,sudo netstat -anp | grep 3306 查看3306端口是否被佔用

若是被佔用須要kill掉,而後再啓動

檢查全部節點是否正常啓動:

 

在管理節點中執行ndb_mgm 進入集羣管理console,使用show命令列出全部節點信息:

 

 

 

能夠看到sql節點沒有啓動成功,解決方法:

         cd  /var/lib/mysql

         ls 

         rm -f ib*   (刪除掉lb開頭的文件)

 

用命令:sudo netstat -anp | grep 3306 查看3306端口是否被佔用

若是被佔用kill殺掉

 

而後從新啓動執行上面操做看到

 

 

經常使用命令:

1)         ndb_mgmd管理命令:ndb_mgm

執行以後就是管理控制檯了,裏面能夠繼續輸入命令。

查看集羣裏面的所有節點的狀態:show

2)         中止集羣服務器的命令:ndb_mgm -e shutdown

若是集羣配置有更新了:rm  /usr/mysql-cluster/ndb_1_config.bin.1

3)         中止SQL節點的命令:mysqladmin -uroot shutdown

4)         SQL Node上鍊接MySQL:mysql -u root –pPASSWORD

執行以後就是MySQL控制檯了,裏面能夠繼續輸入命令。

修改root用戶密碼:

在每一個SQL節點中執行:

mysqladmin -u root -pOLDPASSWORD password 'newpassword'

其中OLDPASSWORD爲/root/.mysql_secret中生成的:

cat /root/.mysql_secret  (查看隨機生成的密碼)

# The random password set for the root user at Tue Apr 15 11:08:59 2014 (local time): Nnqn0u1MRcpXkMue

 

測試集羣:

在192.168.1.12上登陸

mysql -u root –ppassword

mysql> create database transenly;

Query OK, 1 row affected (0.06 sec)

mysql> use transenly;

Database changed

mysql>  CREATE TABLE ctest2 (i INT) ENGINE=NDB;(建立表的時候必須加上後面的ENGINE=NDB,否則數據同步不成功)

Query OK, 0 rows affected (0.38 sec)

 

在192.168.1.11上登陸

mysql -u root –ppassword

 

 

能夠看到數據庫和數據表都有了,說明數據同步成功

 

 

數據導入使用sql文件導入

將sql文件放入到本地的一個地方,如/var/lib/mysql/data/

其中須要將sql文件中 ENGINE= InnoDB修改成ENGINE-NDB,保證數據同步的

 

 

在其中隨意一個sql節點登陸

mysql -u root –ppassword

use transenly;(使用的數據庫,前提是先建立好數據庫)

source /var/lib/mysql/data/transenly.sql

出現Query OK, 0 rows affected (0.00 sec)說明導入成功

 

而後show tables;查看三個sql節點是否都建立成功

 

 

 

 

 

項目連不上數據庫:

須要修改權限,是服務器能夠隨便訪問

mysql> grant all privileges on *.* to root@'%' identified by 'mysql' with grant option;

 //賦予任何主機訪問數據的權限

三、mysql>FLUSH   PRIVILEGES //修改生效

四、mysql>EXIT //退出MySQL服務器

相關文章
相關標籤/搜索