Ime ka nchekwa data dị maka njikọ dịpụrụ adịpụ

Ka anyị bido n'eziokwu na enwere ikpe mgbe ịchọrọ ịme ngwa nwere njikọ na nchekwa data. A na-eme nke a ka ị ghara itinye aka na mmepe azụ azụ ma tinye uche na ihu n'ihu n'ihi enweghị aka na nkà. Enweghị m ike ịsị na ngwọta m ga-adị mma, mana ọ na-arụ ọrụ.

Ebe ọ bụ na anaghị amasị m ịkwụ ụgwọ maka nnabata, ejiri m netwọk na-arụ ọrụ m, enwere IP na-acha ọcha n'ebe ahụ. Nke a bụ usoro ya:

Ime ka nchekwa data dị maka njikọ dịpụrụ adịpụ

Enwere m ike ịnweta ọtụtụ kọmputa, karịa 192.168.1.2 (aka 192.168.0.2) na Linux arụnyere ebe ahụ yana 192.168.0.3 na Windows. N'ozuzu, ahọpụtara m mysql maka ngwa m wee lelee ihe dị na Linux. E tinyegoro ya n'ebe ahụ, ma ọ dịghị onye maara paswọọdụ, na ndị maara chefuru (ndị na-arụ ọrụ n'ihu m). Ebe m mụtara na ọ dịghị onye chọrọ ya, ehichapụrụ m ya ma gbalịa ịwụnye ya ọzọ. Enweghị ebe nchekwa zuru oke, ebe ọ bụ na iji dozie njehie a, m ga-ejikọta ihe nleba anya na keyboard na òké na ya, ekpebiri m ịhapụ n'okwu a. Ọzọkwa, igwe nwere Windows dị ike karịa yana gbakwunyere, enwere m ya na laptọọpụ m n'ụlọ. Na ụkpụrụ, agaghị m akọwa nrụnye n'onwe ya; enwere ọtụtụ akwụkwọ ntuziaka na vidiyo gbasara ya. N'ịbụ onye tinyeworo mysql na igwe Windows, ekpebiri m ịkwado tebụl site na laptọọpụ m gaa na ebe ọrụ m.

A na-eme ya dị ka nke a (n'ọnọdụ m):

mysqldump -uroot -p your_base > dump_file.sql

Ọzọ, anyị na-emepụta nchekwa data na nchekwa data ọhụrụ ma weghachite ndabere na igwe "ọhụrụ".

mysql -h localhost -u root -p

create database your_base;
use your_base;

mysql -uroot -p your_base < dump_file.sql

show tables;


A ghaghị itinye faịlụ ndabere na igwe ọhụrụ na, ma eleghị anya, ọ bụrụ na ọ bụghị na ndekọ na akụrụngwa, mgbe ahụ, ụzọ zuru ezu na ya. (Ebugoro m nkwado ndabere na mpaghara GitHub wee kechie ya na igwe ọhụrụ). M ga-agbakwunye otú e si emepụta tebụl n'onwe ha, ma echekwaghị m nseta ihuenyo, echere m na ọ bụghị ihe siri ike ọbụna maka nwa akwụkwọ 2-3 afọ.

Mgbe eweghachitere tebụl niile, oge eruola ime ka ịnweta nchekwa data dị anya. N'ozuzu, iwu ndị dị otú ahụ edugaghị na ịga nke ọma (ọ nyere ikike ịgụ naanị ịhọrọ)

create user 'client'@'%' IDENTIFIED by 'client';
grant select on your_base . * to 'client'@'%';
flush privileges;

Kpọmkwem, enwere m ike jikọọ na nchekwa data naanị site na iwu,

mysql -h localhost -u client -pclient

mana nke a enweghị ike ime ya ọzọ

mysql -h 192.168.0.3 -u client -pclient

Nke a anaghị arụ ọrụ maka m na enweghị m ike ijikọ site na adreesị a dị ka mgbọrọgwụ.

Ihe omume mysql workbench nyeere aka; na ntọala, gbanwee localhost na% ma ọ na-arụ ọrụ, n'agbanyeghị na onye ahịa enyeghị aka. Ugbu a ị nwere ike jikọọ na nchekwa data site na njikwa ma ọ bụ site na koodu site na adreesị ọ bụla.

Ime ka nchekwa data dị maka njikọ dịpụrụ adịpụ

Ịkwesịrị ịme ụlọ ma ọ bụ netwọk azụmahịa ma gbanyụọ Windows firewall, ma ọ bụghị na ị gaghị enwe ike ping igwe a (ma hapụ naanị jikọọ na nchekwa data).

Ọkara ọrụ a rụrụ, ugbu a ọ dị m mkpa ka m nwee ike jikọọ na nchekwa data site n'ụlọ.

Dịka ị na-ahụ site na eserese netwọkụ, iji banye na ịntanetị ị ga-esi na 192.168.0.3 gaa na 192.168.1.1 (router), ka anyị gaa n'akụkụ nke ọzọ. Ka anyị hazie ụzọ site na 192.168.1.1 ruo 192.168.1.2 dị ka nke a:

Ime ka nchekwa data dị maka njikọ dịpụrụ adịpụ

N'ozuzu, foto a egosighi, ya mere m ga-eji aka dee ya:

route add 192.168.0.0 mask 255.255.255.0 gateway 192.168.1.2

Enwere ike ịme nke a naanị n'otu ntanetị, ya bụ, ị nweghị ike iziga ozugbo na adreesị 192.168.0.2 ma ọ bụ 192.168.0.3.

Nke a dị mkpa ka onye rawụta wee mara ebe subnet 192.168.0.0/24 dị (ịmụta isi nke netwọkụ bara uru).

Ugbu a, anyị na-agbakwunye ọdụ ụgbọ mmiri 3306 (ọdụ ụgbọ mmiri mysql ndabara (ọ bụrụ na ị gbanweeghị ya n'oge echichi)) na adreesị 192.168.1.2

Ime ka nchekwa data dị maka njikọ dịpụrụ adịpụ

Ihe kacha sie ike fọdụrụ ime bụ ime ebugharị na igwe Linux (o nwere kaadị netwọk abụọ 192.168.1.2 (enp3s1 interface) na 192.168.0.2 (enp3s0 interface) ka kaadị netwọk mara ihe ị ga-ebufe ha na 192.168.1.2 ruo 192.168.0.2, wee gaa na igwe Windows anyị nwere MySql.

sudo iptables -A FORWARD -i enp3s1 -o enp3s0 -p tcp --syn --dport 3306 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -i enp3s1 -o enp3s0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i enp3s0 -o enp3s1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -A PREROUTING -i enp3s1 -p tcp --dport 3306 -j DNAT --to-destination 192.168.0.3
sudo iptables -t nat -A POSTROUTING -o enp3s0 -p tcp --dport 3306 -d 192.168.0.3 -j SNAT --to-source 192.168.1.2
и последняя строчка сохраняет введенные команды чтобы они при перезапуске оси не стерлись
sudo service iptables-persistent save

Ndị ahụ. Ahịrị nke mbụ pụtara na anyị na-anabata njikọ mbụ, nke abụọ na nke atọ nke anyị nwere ike izipu ngwugwu n'akụkụ abụọ, nke anọ na nke ise pụtara ịgbanwe ebe na adreesị isi mmalite. Na voila, ị nwere ike jikọọ site na ụlọ site na mysql. N'ikpeazụ, koodu C++ m na-eme nke a:

//DataBaseConnection.cpp
#include "DataBaseConnection.h"

DataBaseConnection::DataBaseConnection()
{
}
void DataBaseConnection::Connect()
{
	// Получаем дескриптор соединения
	conn = mysql_init(NULL);
	if (conn == NULL)
	{
		// Если дескриптор не получен – выводим сообщение об ошибке
		fprintf(stderr, "Error: can'tcreate MySQL-descriptorn");
		//exit(1); //Если используется оконное приложение
	}
	// Подключаемся к серверу
	if (!mysql_real_connect(conn, "192.168.0.3", "root", "password", "your_base", NULL, NULL, 0))
	{
		// Если нет возможности установить соединение с сервером 
		// базы данных выводим сообщение об ошибке
		fprintf(stderr, "Error: can't connect to database: %sn", mysql_error(conn));
	}
	else
	{
		// Если соединение успешно установлено выводим фразу - "Success!"
		fprintf(stdout, "Success!n");
	}
}
std::vector<std::string> DataBaseConnection::Query()
{
	vectordrum.clear();
	std::string query = "SELECT * FROM drum where id=0";
	const char * q = query.c_str();
	qstate = mysql_query(conn, q);
	if (!qstate)
	{
		res = mysql_store_result(conn);
		while (row = mysql_fetch_row(res))
		{
			//printf("ID: %s,Position: %s, Image: %sn", row[0], row[1], row[2]);
			vectordrum.push_back(row[2]);
		}
	}
	else
	{
		std::cout << "Query failed:" << mysql_error(conn) << std::endl;
	}
	return vectordrum;
}
void DataBaseConnection::Close()
{
	// Закрываем соединение с сервером базы данных
	mysql_close(conn);
}
DataBaseConnection::~DataBaseConnection()
{
	vectordrum.clear();
}
//DataBaseConnection.h
#pragma once
#include <iostream>
#include <mysql.h>
#include <vector>
#pragma comment(lib,"mysqlcppconn.lib")
#pragma comment(lib,"libmysql.lib")
class DataBaseConnection
{
public:
	DataBaseConnection();
	void Connect();
	std::vector<std::string> Query();
	void Close();
	~DataBaseConnection();
	MYSQL *conn;
	MYSQL_ROW row;
	MYSQL_RES *res;
	int qstate;
	std::vector<std::string> vectordrum;
};

Ugbu a ị nwere ike iziga onye ọ bụla mmemme a n'enweghị nsogbu, na ịkwesighi idegharị ya ka ọ rụọ ọrụ na mpaghara.

isi: www.habr.com

Tinye a comment