· 6 years ago · Oct 16, 2018, 08:32 AM
1Zaawansowana Administracja MySQL http://NobleProg.pl Stefan Mucha <stefan@mucha.edu.pl>
2Instalacja Instalacja Instalacja Instalacja i konfiguracja klastra MySQL na konfiguracja klastra MySQL na konfiguracja klastra MySQL na konfiguracja klastra MySQL na konfiguracja klastra MySQL na konfiguracja klastra MySQL na konfiguracja klastra MySQL na konfiguracja klastra MySQL na konfiguracja klastra MySQL na konfiguracja klastra MySQL na konfiguracja klastra MySQL na konfiguracja klastra MySQL na CentOS 7 CentOS 7CentOS 7CentOS 7
3Komponenty:
41. Management Node - NDB_MGMD/MGM zarządzanie nodami, trzymanie konfiguracji, dodawanie nowych nodów 2. Data Nodes - NDBD/NDB synchronizacja danych pomiędzy nodami z danymi (API) 3. SQL Nodes - MySQLD/API Serwery MySQL cluster faktycznie przechowujące dane
5Konfigurujemy ecosystem z:
61 nodem zarzÄ…dzajÄ…cym
72 data nodami
82 SQL nodami
9Komponenty
10ï‚· CentOS 7 - 64bit.
11 5 wirtualnych maszyn CentOS (IP pewnie będą się różnić)
12ï‚· Management Node db1 = 192.168.1.120
13ï‚· Data Nodes db2 = 192.168.1.121 db3 = 192.168.1.122
14ï‚· SQL Nodes db4 = 192.168.1.123 db5 = 192.168.1.124
15Krok 1 - konfiguracja Management Node
16A. Pobieranie MySQL Cluster cd ~ wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
17Zaawansowana Administracja MySQL http://NobleProg.pl Stefan Mucha <stefan@mucha.edu.pl>
18B. Opcjonalna instalacja DataDumper I usuwanie mariadb-libs (konflikt z MySQL cluster) yum -y install perl-Data-Dumper yum -y install libaio-devel yum -y remove mariadb-libs
19C. Instalacja MySQL Cluster
20cd ~ rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm
21Instalacja musi przejść bez błędów
22D. Konfiguracja Klastra na db1
23Tworzymy katalog "/var/lib/mysql-cluster" do przechowywania konfiguracji. mkdir -p /var/lib/mysql-cluster
24Tworzymy plik konfiguracyjny "config.ini" w mysql-cluster. cd /var/lib/mysql-cluster vi config.ini
25Wypełniamy go konfiguracją (z odpowiednimi adresami IP) [ndb_mgmd default] # katalog dla logów MGM node DataDir=/var/lib/mysql-cluster [ndb_mgmd] #Management Node db1 HostName=192.168.1.120 [ndbd default] NoOfReplicas=2 # ilość replik DataMemory=256M # Przydzielona pamięć dla data storage IndexMemory=128M # Przydzielona pamięć dla indexów #katalog dla Data Node DataDir=/var/lib/mysql-cluster
26Zaawansowana Administracja MySQL http://NobleProg.pl Stefan Mucha <stefan@mucha.edu.pl>
27[ndbd] #Data Node db2 HostName=192.168.1.121 [ndbd] #Data Node db3 HostName=192.168.1.122 [mysqld] #SQL Node db4 HostName=192.168.1.123 [mysqld] #SQL Node db5 HostName=192.168.1.124
28Zapisujemy plik i zamykamy edytor.
29E. Uruchamiamy Management Node ndb_mgmd --config-file=/var/lib/mysql-cluster/config.ini
30Wynik powinien wyglądac mniej więcej tak:
31MySQL Cluster Management Server mysql-5.6.28 ndb-7.4.10 2016-03-22 19:26:08 [MgmtSrvr] INFO -- The default config directory '/usr/mysql-cluster' does not exist. Trying to create it... 2016-03-22 19:26:08 [MgmtSrvr] INFO -- Successfully created config directory
32Uruchamiamy monitor Noda ndb_mgm show
33Zaawansowana Administracja MySQL http://NobleProg.pl Stefan Mucha <stefan@mucha.edu.pl>
34Krok 2 - Konfiguracja Data Nodes
35Data nodes w naszym przypadku będą db2 oraz db3.
36ï‚· db2 = 192.168.1.121
37ï‚· db3 = 192.168.1.122
38ï‚·
39A. Pobieramy MySQL Cluster i rozpakowujemy ssh root@192.168.1.121 cd ~ wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
40B. Opcjonalna instalacja DataDumper I usuwanie mariadb-libs (konflikt z MySQL cluster) yum -y install perl-Data-Dumper yum -y remove mariadb-libs
41C. Instalacja klastra cd ~ rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm
42D. Konfiguracja Data Node
43Tworzymy nowy plik konfiguracyjny w /etc vi /etc/my.cnf
44Wypełniamy go konfiguracją [mysqld] ndbcluster ndb-connectstring=192.168.1.120 # IP Noda zarządzającego
45Zaawansowana Administracja MySQL http://NobleProg.pl Stefan Mucha <stefan@mucha.edu.pl>
46[mysql_cluster] ndb-connectstring=192.168.1.120 # IP Noda zarzÄ…dzajÄ…cego
47Zapisujemy i zamykamy
48Tworzymy katalog na dane (zdefiniowany w "config.ini" w sekcji ndb_default) mkdir -p /var/lib/mysql-cluster
49Startujemy data node/ndbd: ndbd
50wynik:
512016-03-22 19:35:56 [ndbd] INFO -- Angel connected to '192.168.1.120:1186' 2016-03-22 19:35:56 [ndbd] INFO -- Angel allocated nodeid: 2
52Data Node db2 jest podłączony do management node ip 192.168.1.120. E. Powtarzamy kroki 2.A - 2.D na serwerze db3.
53Krok 3 - Konfiguracja SQL Node
54Ustawiamy Nody za pomocą których będziemy się komunikować ze światem:
55ï‚· db4 = 192.168.1.123
56ï‚· db5 = 192.168.1.124
57A. Logowanie i pobranie MySQL Cluster ssh root@192.168.1.123 cd ~ wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
58B. Opcjonalna instalacja DataDumper I usuwanie mariadb-libs (konflikt z MySQL cluster) yum -y install perl-Data-Dumper yum -y remove mariadb-libs
59Zaawansowana Administracja MySQL http://NobleProg.pl Stefan Mucha <stefan@mucha.edu.pl>
60C. Instalacja klastra cd ~ rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm
61D. Konfiguracja nodów SQL
62Tworzymy plik my.cnf w /etc vi /etc/my.cnf
63Wypełniamy go konfiguracją: [mysqld] ndbcluster ndb-connectstring=192.168.1.120 # IP noda zarządzającego default_storage_engine=ndbcluster # Definiujemy domyślny silnik dla klastra [mysql_cluster] ndb-connectstring=192.168.1.120 # IP noda zarządzającego
64Zapisujemy konfiguracjÄ™ i startujemy serwer mysqld service mysql start E. Powtarzamy kroki 3.A - 3.D na serwerze db5 .
65Krok 4 – Monitorowanie klastra (mgmt node - db1) ssh root@192.168.1.120 ndb_mgm ndb_mgm> show
66Zaawansowana Administracja MySQL http://NobleProg.pl Stefan Mucha <stefan@mucha.edu.pl>
67Inne przydatne komendy: ndb_mgm -e "all status" ndb_mgm -e "all report memory"
68Krok 5 – Testowanie klastra
69Logujemy siÄ™ na db4 lub db5: ssh root@192.168.1.123
70używamy startowego hasła z "/root/.mysql_secret": cd ~ cat .mysql_secret
71# The random password set for the root user at Tue Mar 22 19:44:07 2016 (local time): qna3AwbJMuOnw23T
72Uruchamiamy tworzenie struktury plików serwera : mysql_secure_installation
73Należy podas stare hasło, a następnie nowe.
74Po wszystkim logujemy siÄ™ do konsoli mysql -u root -p
75Zaawansowana Administracja MySQL http://NobleProg.pl Stefan Mucha <stefan@mucha.edu.pl>
76Po zalogowaniu tworzymy usera root@% CREATE USER 'root'@'%' IDENTIFIED BY 'aqwe123'; select user, host, password from mysql.user;
77Nadajemy uprawnienia dla nowego konta GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*94CC7BF027327993D738E11...(Encrypted PASSWORD)' WITH GRANT OPTION;
78Tworzymy schemat bazy danych na db4 i sprawdzamy czy zreplikował się na db5
79Koniec;)