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:
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.
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:
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
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