Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Пример реализации репликации в MYSQL

Читайте также:
  1. E. Примерные темы СРС
  2. F. Примерные темы курсовых проектов (работ)
  3. G. Примерные темы контрольных работ
  4. H. Примерные темы рефератов
  5. I. Примеры неподлинных или устаревших принципов пространства
  6. II. Организационно-педагогические условия реализации программы (материально-техническое обеспечение образовательного процесса)
  7. II. Основные цели и задачи Программы с указанием сроков и этапов ее реализации, а также целевых индикаторов и показателей

 

1. Создаем базу данных согласно варианту задания, пусть для примера у нас будет таблица с данными о статистике на компьютеры:

 

CREATE TABLE IF NOT EXISTS `pc` (

`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,

`title` VARCHAR(45) NOT NULL,

`price` DOUBLE NOT NULL,

PRIMARY KEY (`id`))

ENGINE = InnoDB;

 

2. Настраиваем Master-Slave репликацию на 2-х MySQL серверах и выполняем на обоих вышеуказанный запрос. Если Master-Slave репликация была настроена раньше, чем созданы таблицы в обоих MySQL серверах (пункт 1), то тогда таблицу и базу данных нужно создать ТОЛЬКО на Master сервере. Т.к. база данных и таблица pc автоматически появится на SLAVE сервере.

 

2. Открываем консоль windows (в Windows XP - пуск->выполнить->cmd)

 

3. Перемещаемся в директорию с установленной nodejs:

 

cd C:\Program Files\nodejs

 

4. Установить (если не установлен) драйвер для MySQL (https://github.com/felixge/node-mysql):

 

npm install mysql@2.0.0-alpha3

 

или просто распаковать архив «mysql_nodejs_driver» из папки programs в папку C:\Program Files\nodejs\node_modules\mysql

 

5. Создаем файл C:\ws\www\nodejs\server_repl_master.js следующего содержимого (он будет сохранять данные в master БД):

 

var http = require('http');

var url = require('url');

var server_port = '1337';

var server_ip = '127.0.0.1';

var mysql = require('C:/Program Files/nodejs/node_modules/mysql/index.js');

 

// MySQL мастер

var master_connection = mysql.createConnection({

host: 'localhost',

user: 'root',

password: '',

database: 'srod'

});

 

// коннектимся к MySQL

master_connection.connect();

 

http.createServer(function (req, res){

var sql_query = null;

 

// записываем данные в БД

sql_query = "INSERT INTO `pc` (`id`, `title`, `price`) VALUES (NULL, 'New pc item"+String(Math.random())+"', "+String(Math.random())+")";

 

master_connection.query(sql_query, function(err, rows, fields) {

end_time = new Date().getTime();

 

if (err) { throw err; }

 

content = "<H1>MySQL master writer:</H1>";

content += "new pc item was added";

res.writeHead(200, {'Content-Type': 'text/html','Content-Length':content.length});

res.write(content);

res.end();

});

}).listen(server_port, server_ip);

 

// говорим о том, что сервер стартовал

console.log('Server running at http://'+server_ip+':'+server_port+'/');

 

 

4. Запустить сервер на nodejs можно вот такой командой:

 

node C:\ws\www\nodejs\server_repl_master.js

 

В результате на экране появится нечто вроде:

 

Server running at http://127.0.0.1:1337/

 

5. Запускаем в браузере адрес http://127.0.0.1:1337/ на экране должно появиться:

 

MySQL master writer:

new pc item was added

 

6. Подключаемся к MySQL серверу и проверяем, что вставились данные на SLAVE. Для этого сначала коннектимся к MySQL серверу:

 

mysql -P 3308 -u root

 

Выполняем запрос на выборку данных из таблицы PC:

 

SELECT * FROM srod.pc;

 

На экране должно появиться:

 

+----+-------------------------------+----------------------+

| id | title | price |

+----+-------------------------------+----------------------+

| 1 | New pc item0.5479995431378484 | 0.045062282122671604 |

-----+-------------------------------+----------------------+

1 rows in set (0.00 sec)

 

7. Смотрим текущую позицию SLAVE:

 

mysql> show slave status \G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 127.0.0.1

Master_User: root

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: master-log.000001

Read_Master_Log_Pos: 4142

Relay_Log_File: home-a719be1647-relay-bin.000002

Relay_Log_Pos: 2850

Relay_Master_Log_File: master-log.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 4142

Relay_Log_Space: 3016

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

1 row in set (0.00 sec)

 


Дата добавления: 2015-10-02; просмотров: 55 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Настраиваем MASTER-SLAVE репликацию на MySQL сервере| Азақстан Республикасының экологиялық кодексі: – Алматы: ЮРИСТ, 2007. – 172 б.

mybiblioteka.su - 2015-2024 год. (0.008 сек.)