Score:0

เรียกใช้ mysqldump ผ่าน SSH บนเซิร์ฟเวอร์ mysql แยกต่างหาก

ธง cn

ฉันมีสภาพแวดล้อมการโฮสต์ที่ประกอบด้วยสองเซิร์ฟเวอร์แยกกัน: เซิร์ฟเวอร์เว็บและเซิร์ฟเวอร์ฐานข้อมูล เว็บเซิร์ฟเวอร์สามารถเข้าถึงได้ผ่าน SSH เท่านั้น (และแน่นอนพอร์ต 80) ไม่สามารถเข้าถึงเซิร์ฟเวอร์ DB ได้จากอินเทอร์เน็ต และสามารถเข้าถึงได้ผ่านเว็บเซิร์ฟเวอร์เท่านั้น

เว็บเซิร์ฟเวอร์ไม่มี mysqldump และพื้นที่บนฮาร์ดดิสก์ไม่อนุญาตให้ทำการดัมพ์ฐานข้อมูลบนเว็บเซิร์ฟเวอร์

ฉันต้องการใช้ mysqldump ในเครื่องของฉันและเชื่อมต่อผ่านเว็บเซิร์ฟเวอร์ไปยังเซิร์ฟเวอร์ DB ฉันไม่แน่ใจว่าจะรับคำสั่ง bash เพื่อให้ทำงานได้อย่างไร ฉันได้ลองสิ่งนี้แล้ว:

อุโมงค์ SSH

ssh -f -L 3312:localhost:3306 user@web-server -i ~/.ssh/key-file -c cipher -N

mysqldump

mysqldump -P 3312 -h 127.0.0.1 -u ผู้ใช้ -p ฐานข้อมูล > /tmp/db.sql

ฉันทราบดีว่าจำเป็นต้องรวมเซิร์ฟเวอร์ db ไว้ในคำสั่ง แต่ฉันไม่แน่ใจว่าจะรวม IP ของเซิร์ฟเวอร์ DB ได้อย่างไรและที่ไหน

Score:1
ธง us

เดอะ -L พารามิเตอร์สำหรับ SSH มีสามค่า จากตัวอย่างของคุณ:

  • 3312 คือ SSH พอร์ตในเครื่องที่ฟังบนคอมพิวเตอร์ที่คุณเรียกใช้ SSH
  • โลคัลโฮสต์ เป็นโฮสต์ปลายทางที่ SSH daemon ระยะไกลเปิดช่องสัญญาณ
  • 3306 เป็นพอร์ตปลายทางที่ repote SSH daemon เปิดช่องสัญญาณ

เพื่อที่จะได้ mysqldump เชื่อมต่อกับพอร์ต 3306 ของเซิร์ฟเวอร์ DB ผ่านพอร์ต localhost 3312 คำสั่ง SSH จะต้องเป็น:

ssh -f -L 3312:<dbserver ip>:3306 user@web-server -i ~/.ssh/key-file -c cipher -N
spekulatius avatar
cn flag
ยอดเยี่ยม ขอบคุณ! สิ่งนี้ช่วยแก้ปัญหาได้! ตอนนี้กำลังเชื่อมต่อผ่านอุโมงค์
Score:-1
ธง pl

ฉันอาจไม่เข้าใจคำถาม แต่ -h 127.0.0.1 -Host ที่เซิร์ฟเวอร์ MySQL ตั้งอยู่ คุณต้องเปลี่ยนเป็นโฮสต์ DB

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา