Problema de vagabundo / Puppet / MySQL localhost

0

Eu tenho um arquivo vagrant usando o fantoche para configurar o mysql.

Aqui está o código relevante em default.pp:

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


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

Isso funciona, mas a máquina host (não a VM) só posso acessar o mysql via 127.0.0.1 e eu quero ser capaz de acessar via localhost (o padrão para o cliente mysql).

Então minhas perguntas são: 1) qual é o significado de 10.0.2.2? (copiou e colou isso de um exemplo) 2) como faço para configurar a instalação do mysql na VM para ser acessível a partir do sistema operacional host (mac) como

mysql -u root -h localhost

Devo notar também que tentei alterar [email protected] para root @ localhost e isso não funcionou.

obrigado! phil

    
por phil swenson 04.11.2014 / 19:49

2 respostas

0

  1. O 10.0.2.2 é provavelmente o endereço IP virtual da instância do sistema operacional convidado usando a rede 'HostOnly' do VirtualBox.

Você deve ser capaz de se conectar ao servidor mysql na instância guest usando

mysql -u root -h 10.0.2.2
  1. "localhost" tem um significado especial com o MySQL, faz com que os clientes tentem se conectar via Unix Domain Sockets ao invés de TCP. Por isso, tenta se conectar usando um arquivo de soquete, geralmente /tmp/mysql.sock ou /var/run/mysql/mysql.sock , e esses são arquivos especiais acessíveis somente localmente para processos na mesma instância do sistema operacional.

Sua VM é uma instância do sistema operacional diferente e, portanto, o seu cliente mysql no sistema operacional host não pode acessar os arquivos de soquete do domínio no sistema operacional convidado.

    
por 06.12.2014 / 12:40
0

10.0.2.2 significa para o qual o IP remoto você concede acesso ao usuário, estudando o modelo de puphpet vagante vagrant / puphpet / puphpet / nós / Mysql.pp você pode ver manifesto de definição de modelo, código ruby:

  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"
    }

portanto, o usuário deve configurar yaml puphpet como

grants:
     mysql:
         user: dbuser@%
    
por 29.04.2016 / 16:42