Te hanga i te papaa raraunga mo te hononga mamao

Me timata ma te meka he keehi ka hiahia koe ki te tono tono me te hononga ki te papaunga raraunga. Ka mahia tenei kia kore ai e ruku nui ki te whanaketanga o muri me te aro ki te pito o mua na te kore o nga ringaringa me nga pukenga. Kaore e taea e au te kii ka noho haumaru taku otinga, engari ka whai hua.

I te mea kaore au e pai ki te utu mo te manaaki, i whakamahia e au te whatunga i aku mahi, he IP ma kei reira. Anei tona hanganga:

Te hanga i te papaa raraunga mo te hononga mamao

He maha nga rorohiko ka taea e au, ko te 192.168.1.2 (aka 192.168.0.2) me te Linux kua whakauruhia ki reira me te 192.168.0.3 me Windows. I te nuinga, i whiriwhiria e ahau te mysql mo taku tono me te titiro ki nga mea e waatea ana i runga i te Linux. Kua whakauruhia ki reira, engari kaore he tangata e mohio ki te kupuhipa, a ko te hunga i mohio kua wareware (te hunga i mahi i mua i ahau). I te mohiotanga kaore he tangata e hiahia ana, ka mukua e ahau ka ngana ki te whakauru ano. Kaore i nui te mahara, na te mea ki te whakatika i tenei hapa me hono atu ahau ki te kaitirotiro me te papapātuhi me te kiore, ka whakatau ahau ki te whakarere i tenei take. I tua atu, he kaha ake te miihini me te Matapihi me te taapiri, kei runga i taku pona i te kainga. Ko te tikanga, kaore au e whakaahua i te whakaurunga ake; he maha nga pukapuka me nga ataata e pa ana ki a ia. I te whakaurunga o mysql ki te miihini Windows, ka whakatau ahau ki te whakahoki i nga ripanga mai i taku pona ki taku teihana mahi.

He penei te mahi (i taku keehi):

mysqldump -uroot -p your_base > dump_file.sql

I muri mai, ka hangaia e matou he papaarangi i roto i te papaarangi hou me te whakahoki i te taapiri i runga i te miihini "hou".

mysql -h localhost -u root -p

create database your_base;
use your_base;

mysql -uroot -p your_base < dump_file.sql

show tables;


Me whakanoho te konae taapiri ki runga i te miihini hou, a, mehemea kaore i roto i te raarangi me te whaipainga, katahi te huarahi katoa ki reira. (I tukuna noa e ahau te taapiri ki a GitHub me te kati ki tetahi miihini hou). Ka taapirihia e au me pehea te hanga o nga teepu, engari kaore au i tiaki i nga whakaahua, a ki taku whakaaro ehara i te mea uaua ahakoa mo te akonga 2-3 tau.

Kia whakahokia mai nga ripanga katoa, kua tae ki te wa ki te tuku i te urunga mamao ki te putunga raraunga. I te nuinga o te waa, kaore enei whakahau i eke ki te angitu (ko te whakaaetanga panui anake ki te kowhiri)

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

He tika ake, ka taea e au te hono atu ki te papaarangi ma te whakahau anake,

mysql -h localhost -u client -pclient

engari kua kore e taea e tenei

mysql -h 192.168.0.3 -u client -pclient

Kaore tenei i pai ki ahau, a kaore e taea e au te hono atu ma tenei wahitau hei pakiaka.

I awhina te kaupapa mysql workbench; i roto i nga tautuhinga, hurihia te localhost ki % ka mahi, ahakoa kaore te kaihoko i awhina. Inaianei ka taea e koe te hono atu ki te patengi raraunga mai i te papatohu mai i te waehere mai i tetahi wahitau.

Te hanga i te papaa raraunga mo te hononga mamao

Me hanga ano e koe he whatunga kaainga, pakihi ranei, ka whakaweto i te papangaahi Windows, mena ka kore koe e kaha ki te ping i tenei miihini (katahi ka hono atu ki te papanga raraunga).

Kua oti te haurua o nga mahi, inaianei me kaha ahau ki te hono atu ki te papa raraunga mai i te kainga.

Ka kite koe mai i te hoahoa whatunga, kia tae ki te Ipurangi me haere koe mai i te 192.168.0.3 ki te 192.168.1.1 (pouara), me haere ki te huarahi ke. Me whirihora i te huarahi mai i te 192.168.1.1 ki te 192.168.1.2 penei:

Te hanga i te papaa raraunga mo te hononga mamao

I te nuinga o te waa, kaore te pikitia e whakaatu, no reira ka tuhia e au ma te ringaringa:

route add 192.168.0.0 mask 255.255.255.0 gateway 192.168.1.2

Ka taea anake tenei i roto i te kupengaroto kotahi, ara, kaore e taea e koe te tuku wawe ki te wahitau 192.168.0.2, 192.168.0.3 ranei.

He mea tika tenei kia mohio ai te pouara kei hea te kupengaroto 192.168.0.0/24 (he whai hua te ako i nga kaupapa o nga whatunga).

Inaianei ka taapirihia te tauranga whakamua 3306 (te tauranga mysql taunoa (mehemea kaore koe i whakarereke i te waa whakaurunga)) ki te wahitau 192.168.1.2

Te hanga i te papaa raraunga mo te hononga mamao

Ko te mea tino uaua ka toe ko te mahi whakamua i runga i te miihini Linux (e rua nga kaari whatunga 192.168.1.2 (atanga enp3s1) me te 192.168.0.2 (atanga enp3s0) kia mohio ai nga kaari whatunga he aha te whakawhiti mai i te 192.168.1.2 ki 192.168.0.2, katahi ki to maatau miihini Windows me 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

Ko era. Ko te rarangi tuatahi ka whakaae matou ki te hononga tuatahi, ko te tuarua me te tuatoru ka taea e matou te tuku putea ki nga taha e rua, ko te 1 me te 2 ko te whakarereke i te waahi me nga wahitau puna. Na voila, ka taea e koe te hono mai i te kaainga ma te mysql. Ka mutu, ko taku waehere C++ e mahi ana i tenei:

//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;
};

Inaianei ka taea e koe te tuku marie i tenei papatono ki tetahi, kaore koe e tuhi ano kia pai ai te mahi a rohe.

Source: will.com

Tāpiri i te kōrero