localhost Vagrant / Puppet / MySQL


0

ฉันมีไฟล์คนจรจัดที่ใช้หุ่นเชิดเพื่อกำหนดค่า mysql

นี่คือรหัสที่เกี่ยวข้องใน default.pp:

class { '::mysql::server':
  override_options => { 'mysqld' => { 'bind_address' => '0.0.0.0' } },


  grants => {
    'root@10.0.2.2/*.*' => {
      ensure     => 'present',
      options    => ['GRANT'],
      privileges => ['ALL'],
      table      => '*.*',
      user       => 'root@10.0.2.2',
    },
  },
}

ทำงานได้ แต่จากเครื่องโฮสต์ (ไม่ใช่ VM) ฉันสามารถเข้าถึง mysql ผ่าน 127.0.0.1 เท่านั้นและฉันต้องการเข้าถึงผ่าน localhost (ค่าเริ่มต้นสำหรับไคลเอนต์ mysql)

ดังนั้นคำถามของฉันคือ: 1) ความสำคัญของ 10.0.2.2 คืออะไร? (คัดลอกและวางสิ่งนี้จากตัวอย่าง) 2) ฉันจะกำหนดค่าการติดตั้ง mysql บน VM ให้สามารถเข้าถึงได้จากโฮสต์ระบบปฏิบัติการ (mac) เป็นอย่างไร

mysql -u root -h localhost

ฉันควรทราบด้วยว่าฉันพยายามเปลี่ยน root@10.0.2.2 เป็น root @ localhost และสิ่งนี้ไม่ทำงาน

ขอบคุณ! ฟิล

คำตอบ:


0
  1. 10.0.2.2 อาจเป็นที่อยู่ IP เสมือนของอินสแตนซ์ผู้เยี่ยมชม OS โดยใช้เครือข่าย VirtualBox 'HostOnly'

คุณควรจะสามารถเชื่อมต่อกับเซิร์ฟเวอร์ mysql ในอินสแตนซ์ของผู้เยี่ยมชมได้โดยใช้

mysql -u root -h 10.0.2.2
  1. "localhost" มีความหมายพิเศษกับ MySQL มันทำให้ลูกค้าพยายามเชื่อมต่อผ่าน Unix Domain Sockets แทน TCP ดังนั้นจึงพยายามเชื่อมต่อโดยใช้ไฟล์ซ็อกเก็ตโดยปกติ /tmp/mysql.sock หรือ /var/run/mysql/mysql.sockและไฟล์เหล่านี้เป็นไฟล์พิเศษที่สามารถเข้าถึงได้แบบโลคัลเพื่อประมวลผลบนอินสแตนซ์ระบบปฏิบัติการเดียวกัน

VM ของคุณเป็นอินสแตนซ์ของระบบปฏิบัติการที่แตกต่างกัน mysql ไคลเอนต์บนโฮสต์ระบบปฏิบัติการไม่สามารถเข้าถึงไฟล์ซ็อกเก็ตโดเมนบนระบบปฏิบัติการเกสต์


0

10.0.2.2 หมายถึง IP ระยะไกลที่คุณให้สิทธิ์การเข้าถึงแก่ผู้ใช้โดยศึกษาเทมเพลต puphpet ที่ไม่เจาะจง คนจรจัด / puphpet / puphpet / nodes / Mysql.pp คุณสามารถดู รายการคำนิยามเทมเพลต, รหัสทับทิม:

  each( $grants ) |$key, $grant| {
    # if no host passed with username, default to localhost
    if '@' in $grant['user'] {
      $user = $grant['user']
    } else {
      $user = "${grant['user']}@localhost"
    }

ดังนั้นผู้ใช้จะต้องกำหนดค่าเช่น yaml puphpet

grants:
     mysql:
         user: dbuser@%
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.