MySQL සේවාදායකය IP ලිපිනයකට වඩා බැඳ තබන්නේ කෙසේද?


266

MySQL එක IP ලිපිනයකට වඩා බැඳීමට රහස් ක්‍රමයක් තිබේද?

මට පෙනෙන පරිදි my.cnf හි ඇති බන්ධන ලිපින පරාමිතිය එක් IP එකකට වඩා සහාය නොදක්වන අතර ඔබට එය එක් වරකට වඩා තිබිය නොහැක.

Answers:


249

නැත, නැත (මම පැය 1 කට පෙර පරීක්ෂා කළෙමි). ඔබට my.cnf හි බන්ධන ලිපිනය අදහස් දැක්විය හැකිය:

#skip-networking
#bind-address                   = 127.0.0.1

ඔබට අවශ්‍ය වන්නේ අයිපී 2 ක් පමණි, එවිට ඔබට ෆයර්වෝලයක් භාවිතා කිරීමට සිදුවේ.


32
නිවැරදි. බන්ධනය 0, 1, හෝ සේවාදායකයේ ඇති සියලුම IP ලිපින වලට සීමා වේ .
ජෝ

8
කෙසේ වෙතත්, විකල්ප socketසහ bind-addressවිකල්ප දෙකම සඳහන් කිරීමෙන් ඔබට දේශීය යුනික්ස් සොකට් එකක් සහ ජාල සොකට් එකක් ප්‍රකාශයට පත් කිරීමට සහ සේවය කිරීමට හැකි බව සලකන්න .
danorton

5
අද වන විට තවමත් සත්‍යයි.
ඩෙනිස් නොල්ටේ

26
එය හාස්‍යජනකය.
පිලිප්


81

127.0.0.x වෙත බන්ධනය වීමෙන් එය සියලු උපාංග සඳහා ලබා ගත නොහැකි වනු ඇත, එය දේශීයව පමණක් ලබා ගත හැකිය. ඔබ එය සියලු අතුරුමුහුණත් සඳහා ලබා දීමට කැමති නම්, ඔබ 0.0.0.0 භාවිතා කළ යුතුය. ඔබට එය එකකට වඩා වැඩි ගණනකින් ප්‍රවේශ වීමට අවශ්‍ය නම්, නමුත් සියලු අතුරුමුහුණත් වලට වඩා අඩු නම්, ඔබ 0.0.0.0 ට බැඳිය යුතු අතර ඔබට පිවිසීමට අවශ්‍ය නොවන අතුරුමුහුණත් වලින් ෆයර්වෝල් කරන්න.

එසේම, දෙවන ආරක්ෂිත තට්ටුවක් ලෙස, ඔබේ සියලුම MySQL පරිශීලකයින්ට ධාරක ක්ෂේත්‍රය% (වෙනත් ඕනෑම සත්කාරක) හැර වෙනත් දෙයකට සකසා ඇති බවට වග බලා ගත යුතුය.


1
ඔබට බිඳුණු ජාල තොගයක් නොමැති නම් 0.0.0.0 ඇමතීමට ඔබට TCP වරායක් බැඳිය නොහැක.
ජෝන් ගාර්ඩනියර්ස්

28
ඔබට 0.0.0.0 ට බැඳිය හැකිය . ඔබට එයට යා නොහැක. ඔබ ලිනක්ස් හි සිටී නම් (හෝ වින්ඩෝස් වල වුවද, කවුළු සඳහා නෙට්කැට් ස්ථාපනය කරන්න) උත්සාහ කරන්න: එක් පර්යන්තයක: nc -l 0.0.0.0 4321 සහ දෙවන පර්යන්තයක: ටෙල්නෙට් <ඔබේ පරිගණකයේ ඇති ඕනෑම අතුරු මුහුණතක IP> 4321 සහ එය එයට සම්බන්ධ වනු ඇත.
ග්‍රේ පැන්තර්

මා කී පරිදි, ඔබ සතුව බිඳුණු ජාල
ගබඩාවක්

2
@JohnGardeniers ඇයි එය ලිනක්ස් ip (7) බව, විශේෂ ලිපින යටතේ අර්ථ මිනිසා පිටුව: INADDR_ANY (0.0.0.0) means any address for binding;?
ebyrob

3
ඩේබියන් හි, /etc/mysql/conf.d/bindaddress.cnfඅන්තර්ගතය සහිත ගොනු ගොනුවක් සාදන්න[mysqld] \n bind-address = 0.0.0.0
යෙව්ස් මාටින්

46

ඔබට එක් IP ලිපිනයකට වඩා බැඳිය නොහැක, නමුත් ඔබට ඒ වෙනුවට ඇති සියලුම IP ලිපින වලට බැඳිය හැකිය. එසේ නම්, 0.0.0.0පහත දැක්වෙන පරිදි ඔබේ MySQL වින්‍යාස ගොනුවේ (උදා: /etc/mysql/my.cnf) බන්ධන ලිපිනයක් සඳහා භාවිතා කරන්න:

bind-address    = 0.0.0.0

ලිපිනය 0.0.0.0 නම්, සේවාදායකය සියළුම සේවාදායක සත්කාරක IPv4 අතුරුමුහුණත් වල TCP / IP සම්බන්ධතා භාර ගනී.

ලිපිනය නම් ::, සේවාදායකය සියළුම සේවාදායක සත්කාරක IPv4 සහ IPv6 අතුරුමුහුණත් වල TCP / IP සම්බන්ධතා භාර ගනී. සියලුම සේවාදායක අතුරුමුහුණත් වල IPv4 සහ IPv6 සම්බන්ධතා සඳහා අවසර දීමට මෙම ලිපිනය භාවිතා කරන්න.

නැතහොත් ඔබට bind-address=සම්පුර්ණයෙන්ම අදහස් දැක්විය හැකිය , එවිට එය සියලු ලිපිනයන් සමඟ බැඳී ඇත. skip-networkingඔබට දුරස්ථ සම්බන්ධතා වලට ඉඩ දීමට අවශ්‍ය නම් ඔබේ my.cnf හි සක්‍රීය කර නොමැති බවට වග බලා ගන්න (වැඩිදුර කියවන්න: MySQL: දුරස්ථ හා දේශීය සම්බන්ධතා වලට ඉඩ දෙන්න ).

බන්ධන ලිපිනය වෙනස් කිරීමෙන් පසුව, ඔබේ MySQL සේවාදායකය නැවත ආරම්භ කිරීමට අමතක නොකරන්න:

sudo service mysql restart

අවසානයේදී ඔබට මාස්ටර් / ස්ලේව් අනුරූකරණය සමඟ තනි යන්ත්‍රයක (විවිධ වරායන්) MySQL හි අවස්ථා කිහිපයක් ක්‍රියාත්මක කිරීමට සලකා බැලිය හැකිය. ප්‍රතිවර්තනය මඟින් එක් MySQL දත්ත සමුදා සේවාදායකයකින් (මාස්ටර්) දත්ත MySQL දත්ත සමුදා සේවාදායකයන් එකකට හෝ වැඩි ගණනකට (වහලුන්) පිටපත් කිරීමට හැකියාව ලැබේ.

වැඩිදුර කියවන්න:


මෙය හොඳින් ක්‍රියාත්මක වේ. 2 වන, 3 වන, ඕනෑම IP ලිපිනයකින් සම්බන්ධ වීමට සියලුම පරිශීලකයින්ට අවසර තිබේදැයි පරීක්ෂා කිරීමට මතක තබා ගන්න
gies0r

21

නැහැ, ඔබට බැහැ. ඔබ සම්බන්ධ කරන පිටුවේ පැහැදිලිව සඳහන් වන්නේ:

බැඳීමට ඇති IP ලිපිනය. තෝරා ගත හැක්කේ එක් ලිපිනයක් පමණි. මෙම විකල්පය කිහිප වතාවක් නියම කර ඇත්නම්, ලබා දී ඇති අවසාන ලිපිනය භාවිතා වේ.

ලිපිනයක් හෝ 0.0.0.0 නිශ්චිතව දක්වා නොමැති නම්, සේවාදායකය සියලු අතුරුමුහුණත් වලට සවන් දෙයි.


13

අනෙක් අය පිළිතුරු දී ඇති පරිදි, එක් අතුරු මුහුණතකට වඩා තෝරා බේරා ගැනීමට තවමත් ක්‍රමයක් නොමැත.

ලිනක්ස් සතුව TCP මෙවලම් කිහිපයක් තිබේ. මෙම සැකසුම තුළ, ඔබ 127.0.0.1 ට සවන්දීමට mysql වින්‍යාස කර පසුව අත්තනෝමතික අතුරුමුහුණත් මත නිරාවරණය කිරීමට redir භාවිතා කරන්න .

අතථ්‍ය කොටු ආගන්තුකයෙකුට සත්කාරක යන්ත්‍රයේ ස්ථාපනය කර ඇති mysql බැලීමට මම මෙය භාවිතා කර ඇත්තෙමි.

redir --laddr=192.168.33.1 --lport=3306 --caddr=127.0.0.1 --cport=3306 &

සටහන MySQL> = 8.0.13 එක් අතුරු මුහුණතකට වඩා බැඳීමට ඉඩ දෙයි.
txyoji

9

MySQL 8.0.13 ට පෙර, --bind-address තනි ලිපින අගයක් භාරගනී, එය තනි ආදේශක නොවන IP ලිපිනයක් හෝ ධාරක නාමයක් හෝ බහු ජාල අතුරුමුහුණත් (*, 0.0 .0.0, හෝ: :).

MySQL 8.0.13 වන විට, --bind-address දැන් විස්තර කර ඇති ආකාරයට තනි අගයක් හෝ කොමාවෙන් වෙන් කළ අගයන් ලැයිස්තුවක් පිළිගනී. විකල්පය බහු අගයන් ලැයිස්තුවක් නම් කළ විට, සෑම අගයක්ම තනි ආදේශක නොවන IP ලිපිනයක් හෝ ධාරක නාමයක් සඳහන් කළ යුතුය; කිසිවෙකුට ආදේශක ලිපින ආකෘතියක් නියම කළ නොහැක (*, 0.0.0.0, හෝ: :).

මුලාශ්‍රය: https://dev.mysql.com/doc/refman/8.0/en/server-options.html


6

ඔබගේ ප්‍රශ්නය මෙම දෝෂයට සම්බන්ධ යැයි මම සිතමි http://bugs.mysql.com/bug.php?id=14979 දෝෂ වාර්තාව මඟින් යම් ක්‍රියාමාර්ගයක් යෝජනා කරයි.


2005 සිට MySQL විශේෂාංග ඉල්ලීමක්!
ටොනින්

4

දී my.cnf වෙනස් (සාමාන්යයෙන් /etc/mysql/my.cnf ලිනක්ස් හෝ Windows සඳහා පරීක්ෂා මෙම පිළිතුර.

bind-address                   = 127.0.0.1

වෙත

bind-address                   = 0.0.0.0

ඉන්පසු වින්ඩෝස් මත mysql (උබුන්ටු සේවාවේ mysql restart ) නැවත ආරම්භ කරන්න සාමාන්‍යයෙන් Win + R services.msc හරහා සේවා නැවත ආරම්භ කරන්න

0.0.0.0 එය my.cnf හි දක්වා ඇති වරාය සමඟ ඇති සියලුම අයිපී සමඟ සම්බන්ධ වන ලෙස පවසයි

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.