เป€เบฎเบฑเบ”เปƒเบซเป‰เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ

เปƒเบซเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบกเบตเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰ delve เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›เปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ backend เปเบฅเบฐเบชเบธเบกเปƒเบชเปˆ frontend เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ‚เบฒเบ”เบกเบทเปเบฅเบฐเบ—เบฑเบเบชเบฐ. เบ‚เป‰เบญเบเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเป„เบ”เป‰เบงเปˆเบฒเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบ‚เป‰เบญเบเบˆเบฐเบ›เบญเบ”เป„เบž, เปเบ•เปˆเบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบ.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ‚เป‰เบญเบเบšเปเปˆเบกเบฑเบเบˆเปˆเบฒเบเบ„เปˆเบฒเป‚เบฎเบ”เบ•เบดเป‰เบ‡, เบ‚เป‰เบญเบเปƒเบŠเป‰เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปƒเบ™เบšเปˆเบญเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบกเบต IP เบชเบตเบ‚เบฒเบงเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™. เบ™เบตเป‰เปเบกเปˆเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™:

เป€เบฎเบฑเบ”เปƒเบซเป‰เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ

เบ‚เป‰เบญเบเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบซเบผเบฒเบเป†เป€เบ„เบทเปˆเบญเบ‡, เบŠเบฑเบ”เป€เบˆเบ™เบเบงเปˆเบฒ 192.168.1.2 (aka 192.168.0.2) เบเบฑเบš Linux เบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เปเบฅเบฐ 192.168.0.3 เบเบฑเบš Windows. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ‚เป‰เบญเบเป€เบฅเบทเบญเบ mysql เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ‚เป‰เบญเบเปเบฅเบฐเป€เบšเบดเปˆเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™ Linux. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบฅเป‰เบงเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เปเบ•เปˆเบšเปเปˆเบกเบตเปƒเบœเบฎเบนเป‰เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™, เปเบฅเบฐเบœเบนเป‰เบ—เบตเปˆเบฎเบนเป‰เบฅเบทเบก (เบœเบนเป‰เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบญเบ™เบ‚เป‰เบญเบ). เป‚เบ”เบเป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบงเปˆเบฒเบšเปเปˆเบกเบตเปƒเบœเบ•เป‰เบญเบ‡เบเบฒเบ™เบกเบฑเบ™, เบ‚เป‰เบญเบเป„เบ”เป‰เบฅเบถเบšเบกเบฑเบ™เปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบกเบฑเบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡. เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบžเบฝเบ‡เบžเป, เปเบฅเบฐเบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ™เบตเป‰, เบ‚เป‰เบญเบเบˆเบฐเบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเปเปเบฅเบฐเปเบ›เป‰เบ™เบžเบดเบกเบ”เป‰เบงเบเบซเบ™เบนเบเบฑเบšเบกเบฑเบ™, เบ‚เป‰เบญเบเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ›เบฐเบ–เบดเป‰เบกเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰. เบเบดเปˆเบ‡โ€‹เป„เบ›โ€‹เบเบงเปˆเบฒโ€‹เบ™เบฑเป‰เบ™โ€‹, เป€เบ„เบทเปˆเบญเบ‡โ€‹เบ—เบตเปˆโ€‹เบกเบต Windows เปเบกเปˆเบ™โ€‹เบกเบตโ€‹เบญเปเบฒโ€‹เบ™เบฒเบ”โ€‹เบซเบผเบฒเบโ€‹เปเบฅเบฐโ€‹เบšเบงเบโ€‹, เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบกเบตโ€‹เบกเบฑเบ™โ€‹เปƒเบ™โ€‹เบ„เบญเบกโ€‹เบžเบดเบงโ€‹เป€เบ•เบตโ€‹เบ‚เบญเบ‡โ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบขเบนเปˆโ€‹เป€เบฎเบทเบญเบ™โ€‹. เปƒเบ™เบซเบผเบฑเบเบเบฒเบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบšเปเปˆเบญเบฐเบ—เบดเบšเบฒเบเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡; เบกเบตเบซเบผเบฒเบเบ„เบนเปˆเบกเบทเปเบฅเบฐเบงเบดเบ”เบตเป‚เบญเบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™. เป‚เบ”เบเป„เบ”เป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡ mysql เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ Windows, เบ‚เป‰เบญเบเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบˆเบฒเบเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰เบ‚เบญเบ‡เบ‚เป‰เบญเบเป„เบ›เบซเบฒเบšเปˆเบญเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบ‚เป‰เบญเบ.

เบกเบฑเบ™เป€เบฎเบฑเบ”เปเบšเบšเบ™เบตเป‰ (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ):

mysqldump -uroot -p your_base > dump_file.sql

เบ•เปเปˆเป„เบ›, เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบกเปˆเปเบฅเบฐเบŸเบทเป‰เบ™เบŸเบนเบเบฒเบ™เบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ "เปƒเบซเบกเปˆ".

mysql -h localhost -u root -p

create database your_base;
use your_base;

mysql -uroot -p your_base < dump_file.sql

show tables;


เป„เบŸเบฅเปŒเบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ•เป‰เบญเบ‡เบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปƒเบซเบกเปˆเปเบฅเบฐ, เบšเบฒเบ‡เบ—เบต, เบ–เป‰เบฒเบšเปเปˆเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบตเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป€เบ•เบฑเบกเป„เบ›เบซเบฒเบกเบฑเบ™. (เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบžเบฝเบ‡เปเบ•เปˆเบญเบฑเบšเป‚เบซเบฅเบ”เบเบฒเบ™เบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฑเบš GitHub เปเบฅเบฐ cloned เบกเบฑเบ™เปƒเบชเปˆเป€เบ„เบทเปˆเบญเบ‡เปƒเบซเบกเปˆ). เบ‚เป‰เบญเบเบˆเบฐเป€เบžเบตเปˆเบกเบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡, เปเบ•เปˆเบ‚เป‰เบญเบเบšเปเปˆเป„เบ”เป‰เบšเบฑเบ™เบ—เบถเบเบžเบฒเบšเบซเบ™เป‰เบฒเบˆเป, เปเบฅเบฐเบ‚เป‰เบญเบเบ„เบดเบ”เบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบเบฒเบเบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบฎเบฝเบ™ 2-3 เบ›เบต.

เป€เบกเบทเปˆเบญเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ”เป‰เบ–เบทเบเบŸเบทเป‰เบ™เบŸเบน, เบกเบฑเบ™เป€เบ–เบดเบ‡เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเป„เบฅเบเบฐเป„เบ. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ„เปเบฒเบชเบฑเปˆเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบšเปเปˆเป„เบ”เป‰เบ™เปเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบชเปเบฒเป€เบฅเบฑเบ” (เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบซเป‰เบชเบดเบ”เบญเปˆเบฒเบ™เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบ)

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

เบซเบผเบฒเบเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™, เบ‚เป‰เบญเบเบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบžเบฝเบ‡เปเบ•เปˆเบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡,

mysql -h localhost -u client -pclient

เปเบ•เปˆเบญเบฑเบ™เบ™เบตเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบญเบตเบเบ•เปเปˆเป„เบ›

mysql -h 192.168.0.3 -u client -pclient

เบญเบฑเบ™เบ™เบตเป‰เปƒเบŠเป‰เบšเปเปˆเป„เบ”เป‰เบชเบณเบฅเบฑเบšเบ‚เป‰เบญเบ เปเบฅเบฐเบ‚เป‰เบญเบเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบœเปˆเบฒเบ™เบ—เบตเปˆเบขเบนเปˆเบ™เบตเป‰เป€เบ›เบฑเบ™เบฎเบฒเบเป„เบ”เป‰.

เป‚เบ„เบ‡เบเบฒเบ™ mysql workbench เบŠเปˆเบงเบ; เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบ›เปˆเบฝเบ™ localhost เป€เบ›เบฑเบ™ % เปเบฅเบฐเบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบฅเบนเบเบ„เป‰เบฒเบšเปเปˆเป„เบ”เป‰เบŠเปˆเบงเบ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบ console เบซเบผเบทเบˆเบฒเบเบฅเบฐเบซเบฑเบ”เบˆเบฒเบเบ—เบตเปˆเบขเบนเปˆเปƒเบ”เป†.

เป€เบฎเบฑเบ”เปƒเบซเป‰เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ

เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบธเบฅเบฐเบเบดเบ”เป€เบฎเบทเบญเบ™เบซเบผเบทเบ—เบธเบฅเบฐเบเบดเบ”เปเบฅเบฐเบ›เบดเบ” Windows firewall, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ” ping เป€เบ„เบทเปˆเบญเบ‡เบ™เบตเป‰ (เบ›เปˆเบญเบเปƒเบซเป‰เบœเบนเป‰เบ”เบฝเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™).

เป€เบฎเบฑเบ”เบงเบฝเบเป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบชเปเบฒเป€เบฅเบฑเบ”, เบ•เบญเบ™เบ™เบตเป‰เบ‚เป‰เบญเบเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเป€เบฎเบทเบญเบ™.

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบˆเบฒเบเปเบœเบ™เบœเบฑเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ›เบˆเบฒเบ 192.168.0.3 เบซเบฒ 192.168.1.1 (router), เปƒเบซเป‰เป„เบ›เปƒเบ™เบ—เบดเบ”เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก. เปƒเบซเป‰เป€เบฎเบปเบฒเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบˆเบฒเบ 192.168.1.1 เบซเบฒ 192.168.1.2 เปเบšเบšเบ™เบตเป‰:

เป€เบฎเบฑเบ”เปƒเบซเป‰เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ

เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบฎเบนเบšเบžเบฒเบšเบšเปเปˆเบชเบฐเปเบ”เบ‡, เบชเบฐเบ™เบฑเป‰เบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบ‚เบฝเบ™เบ”เป‰เบงเบเบกเบท:

route add 192.168.0.0 mask 255.255.255.0 gateway 192.168.1.2

เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเปˆเบญเบเบ”เบฝเบง, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบ•เปเปˆเป„เบ›เบซเบฒเบ—เบตเปˆเบขเบนเปˆ 192.168.0.2 เบซเบผเบท 192.168.0.3 เบ—เบฑเบ™เบ—เบต.

เบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰ router เบฎเบนเป‰เบšเปˆเบญเบ™เบ—เบตเปˆเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเปˆเบญเบ 192.168.0.0/24 เบ•เบฑเป‰เบ‡เบขเบนเปˆ (เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”).

เบ•เบญเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบžเบญเบ” 3306 (เบžเบญเบ” mysql เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบ›เปˆเบฝเบ™เบกเบฑเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡)) เบเบฑเบšเบ—เบตเปˆเบขเบนเปˆ 192.168.1.2.

เป€เบฎเบฑเบ”เปƒเบซเป‰เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ

เบชเบดเปˆเบ‡เบ—เบตเปˆเบเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ Linux (เบกเบฑเบ™เบกเบตเบชเบญเบ‡เบšเบฑเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบ 192.168.1.2 (enp3s1 interface) เปเบฅเบฐ 192.168.0.2 (enp3s0 interface) เป€เบžเบทเปˆเบญเปƒเบซเป‰เบšเบฑเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบฎเบนเป‰เบงเปˆเบฒเบˆเบฐเป‚เบญเบ™เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบˆเบฒเบ 192.168.1.2. เบเบฑเบš 192.168.0.2, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡ Windows เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบš 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

เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เป€เบชเบฑเป‰เบ™เบ—เบต 1 เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบเบญเบกเบฎเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”, เบญเบฑเบ™เบ”เบฑเบš 2 เปเบฅเบฐ 3 เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เป„เบ”เป‰เบ—เบฑเบ‡เบชเบญเบ‡เบ—เบดเบ”เบ—เบฒเบ‡, เป€เบชเบฑเป‰เบ™เบ—เบต 4 เปเบฅเบฐเบ—เบต 5 เบซเบกเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เบ›เบฒเบเบ—เบฒเบ‡เปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เปเบซเบผเปˆเบ‡. เปเบฅเบฐ voila, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฒเบเป€เบฎเบทเบญเบ™เบœเปˆเบฒเบ™ mysql. เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบ, เบฅเบฐเบซเบฑเบ” C ++ เบ‚เบญเบ‡เบ‚เป‰เบญเบเบ—เบตเปˆเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰:

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

เบ”เบฝเบงเบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เป‚เบ›เบฃเปเบเบฃเบกเบ™เบตเป‰เป„เบ›เปƒเบซเป‰เปƒเบœเป„เบ”เป‰เบขเปˆเบฒเบ‡เบ›เบญเบ”เป„เบž, เปเบฅเบฐเบ—เปˆเบฒเบ™เบšเปเปˆเบˆเบณเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ‚เบฝเบ™เบกเบฑเบ™เบ„เบทเบ™เปƒเปเปˆเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™