0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Vagrant 環境での MySQL 接続エラーと解決法

Posted at

1. Vagrantfile の構文エラー (syntax error, unexpected 'end')

エラー内容

Vagrant failed to initialize at a very early stage:
C:/vagrant/centos74/Vagrantfile:79: syntax error, unexpected `end'

原因

  • do ... endif ... end のブロックが正しく閉じられていない。
  • <<-SHELL の閉じ忘れ。

解決策

  1. Vagrantfile を開き、end の前後のコードを確認。
  2. ブロックが正しく閉じているか確認(特に <<-SHELL を使用している場合)。
  3. 修正後、以下を実行。
    vagrant reload
    

2. SSH 接続時のホストキーエラー (REMOTE HOST IDENTIFICATION HAS CHANGED!)

エラー内容

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Host key verification failed.

原因

  • Vagrant を再作成 (vagrant destroy && vagrant up) したことで SSHホストキーが変更された

解決策

  1. 古いホストキーを削除
    ssh-keygen -R [127.0.0.1]:2222
    
  2. 再度 SSH 接続を試す
    ssh.exe -N -L 3307:127.0.0.1:3306 vagrant@127.0.0.1 -p 2222 -i "C:/vagrant/centos74/.vagrant/machines/default/virtualbox/private_key"
    
  3. yes を入力し、新しいホストキーを受け入れる。

3. PasswordAuthentication no のまま変わらない

エラー内容

vagrant ssh-config
...
PasswordAuthentication no

原因

  • Vagrantfilesshd_config の設定が正しく反映されていない。
  • SSH サービスの再起動が必要。

解決策

  1. Vagrant 内にログイン。
    vagrant ssh
    
  2. sshd_config を編集。
    sudo nano /etc/ssh/sshd_config
    
    以下を確認・修正
    PasswordAuthentication yes
    UsePAM yes
    
  3. SSH を再起動。
    sudo systemctl restart ssh
    
  4. Vagrant を再起動。
    vagrant reload --provision
    

**4. MySQL への接続エラー (Can't connect to MySQL server)

エラー内容

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1'

原因

  • MySQL サーバーが停止している。
  • SSH トンネルが適切に設定されていない。

解決策

  1. Vagrant 内部で MySQL の状態を確認

    vagrant ssh
    sudo systemctl status mysql
    

    active (running) ならOK。inactive なら以下を実行。

    sudo systemctl start mysql
    
  2. 手動で MySQL に接続できるか確認

    mysql -u homestead -p
    
    • パスワードは secret または vagrant
  3. ポートフォワードを再設定

    ssh.exe -N -L 3307:127.0.0.1:3306 vagrant@127.0.0.1 -p 2222 -i "C:/vagrant/centos74/.vagrant/machines/default/virtualbox/private_key"
    

5. HeidiSQL での MySQL 接続エラー

エラー例

  • 接続できない
  • タイムアウトする

解決策

HeidiSQL の基本設定

設定項目
ネットワークタイプ MySQL (SSHトンネル経由)
ホスト名/IP 127.0.0.1
ポート 3307
ユーザー名 homestead
パスワード secret
データベース (空欄のままでOK)

SSHタブの設定

設定項目
SSHホスト 127.0.0.1
SSHポート 2222
SSHユーザー vagrant
認証方法 Public Key
SSH キーファイル C:/vagrant/centos74/.vagrant/machines/default/virtualbox/private_key
ローカルポート 3307
リモートポート 3306

まとめ

  • SSH のホストキー変更時は ssh-keygen -R [127.0.0.1]:2222 でリセット
  • PasswordAuthentication yes を適用後、SSH を再起動 (sudo systemctl restart ssh)
  • Vagrant で reload --provision して設定を反映
  • HeidiSQL の SSH 設定を正しく入力
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?