更新到 2.29 后启动 Laravel Homestead 时出错
Error starting Laravel Homestead after updating to 2.29
我最近将我的 vagrant 版本更新为 2.2.9
。当 运行 命令时,vagrant up
我现在收到此错误:
homestead: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
homestead: Job for mariadb.service failed because the control process exited with error code.
homestead: See "systemctl status mariadb.service" and "journalctl -xe" for details.
我不确定是什么导致了这个问题,我已经多次更新 virtualbox、vagrant 和 homestead 包,没有问题。
我的机器是OSCatalina 10.15.5
我试过卸载和重新安装,我也试过安装旧版本的 vagrant。一切都会导致上述相同的错误。我不确定下一步该怎么做 - 非常感谢任何建议!
编辑
谢谢你,@Aminul!
这是我得到的输出:
Status: "MariaDB server is down"
Jun 20 19:17:53 homestead mysqld[42962]: 2020-06-20 19:17:53 0 [Note] InnoDB: Starting shutdown...
Jun 20 19:17:54 homestead mysqld[42962]: 2020-06-20 19:17:54 0 [ERROR] Plugin 'InnoDB' init function returned error.
Jun 20 19:17:54 homestead mysqld[42962]: 2020-06-20 19:17:54 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
Jun 20 19:17:54 homestead mysqld[42962]: 2020-06-20 19:17:54 0 [Note] Plugin 'FEEDBACK' is disabled.
Jun 20 19:17:54 homestead mysqld[42962]: 2020-06-20 19:17:54 0 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded
Jun 20 19:17:54 homestead mysqld[42962]: 2020-06-20 19:17:54 0 [ERROR] Unknown/unsupported storage engine: InnoDB
Jun 20 19:17:54 homestead mysqld[42962]: 2020-06-20 19:17:54 0 [ERROR] Aborting
Jun 20 19:17:54 homestead systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
Jun 20 19:17:54 homestead systemd[1]: mariadb.service: Failed with result 'exit-code'.
Jun 20 19:17:54 homestead systemd[1]: Failed to start MariaDB 10.4.13 database server.
运行: mysql --version
returns:
mysql Ver 15.1 Distrib 10.4.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
很明显,它表示 MariaDB 未启动。我可以研究如何开始。不过我更好奇——这是发生在宅基地上的事情吗?或者这是其他原因的结果?通常,我可以 vagrant up
一切都很好。我担心如果我把事情搞砸了,我就会为自己的失败做好准备。
编辑 2
当运行这个:
vagrant@homestead:~$ systemctl start mysqld.service
这是我的提示:
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start 'mariadb.service'.
Authenticating as: vagrant,,, (vagrant)
Password:
我不确定继续测试的凭据是什么。
附加解决方案
谢谢你,Raphy963!
我不想回答我自己的问题,我找到了另一种解决方法,希望能对其他人有所帮助。
我正在处理的应用程序尚未投入生产,因此我能够将我的数据库从 MySQL 更改为 PostgreSQL。
我removed/uninstalled virtualbox、vagrant 和 homestead 的所有实例。我还删除了“VirtualBox VMs”目录。
我重新安装了所有东西,从 VirtualBox、Vagrant 开始,然后是 laravel/homestead。我现在 运行 一切都是最新版本;使用 Laravel documentation 进行说明。
安装完所有内容后,运行 vagrant up
没有出现错误,但我仍然无法连接到 MySQL。
我将 Homestead.yaml
文件更新为以下内容:
---
ip: "10.10.10.10"
memory: 2048
cpus: 2
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: /Users/<username>/Sites
to: /home/vagrant/sites
sites:
- map: blog.test
to: /home/vagrant/sites/blog/public
databases:
- blog
- homestead
features:
- mariadb: false
- ohmyzsh: false
- webdriver: false
我将主机文件更新为:
10.10.10.10 blog.test
最后,使用 TablePlus 我能够连接到以下内容:
我的 Laravel 应用程序中的 .env
文件如下所示:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=blog
DB_USERNAME=homestead
DB_PASSWORD=secret
我现在可以使用 TablePlus 和我的应用程序进行连接。
希望这对某人有帮助!!
您需要调查原因。
通过 运行ing vagrant ssh
和 运行 systemctl status mariadb.service
登录到您的实例以检查错误日志。
检查错误是什么,如果您不明白,请在此处回复。
我遇到了同样的问题,花了太多时间试图解决它。我尝试使用他们的 GitHub 存储库 (https://github.com/laravel/homestead) 中的新版 Homestead,它声称可以解决这个确切的问题,但它没有用。
在我自己调查之后,我意识到 Vagrant 中用于 homestead 的脚本(这个 repo 在这里 https://github.com/laravel/settler)已经更新到“10.0.0-beta”。我做了以下操作将其恢复为“9.5.1”。
vagrant box remove laravel/homestead
vagrant box add laravel/homestead --box-version 9.5.1
之后,我使用 vagrant destroy
和 vagrant up
重新创建了我的实例,MariaDB 启动并再次 运行。
虽然这可能不是最好的解决方案,但至少我让它工作了,这对我来说已经足够好了。
希望对您有所帮助!
我最近将我的 vagrant 版本更新为 2.2.9
。当 运行 命令时,vagrant up
我现在收到此错误:
homestead: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
homestead: Job for mariadb.service failed because the control process exited with error code.
homestead: See "systemctl status mariadb.service" and "journalctl -xe" for details.
我不确定是什么导致了这个问题,我已经多次更新 virtualbox、vagrant 和 homestead 包,没有问题。
我的机器是OSCatalina 10.15.5
我试过卸载和重新安装,我也试过安装旧版本的 vagrant。一切都会导致上述相同的错误。我不确定下一步该怎么做 - 非常感谢任何建议!
编辑 谢谢你,@Aminul! 这是我得到的输出:
Status: "MariaDB server is down"
Jun 20 19:17:53 homestead mysqld[42962]: 2020-06-20 19:17:53 0 [Note] InnoDB: Starting shutdown...
Jun 20 19:17:54 homestead mysqld[42962]: 2020-06-20 19:17:54 0 [ERROR] Plugin 'InnoDB' init function returned error.
Jun 20 19:17:54 homestead mysqld[42962]: 2020-06-20 19:17:54 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
Jun 20 19:17:54 homestead mysqld[42962]: 2020-06-20 19:17:54 0 [Note] Plugin 'FEEDBACK' is disabled.
Jun 20 19:17:54 homestead mysqld[42962]: 2020-06-20 19:17:54 0 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded
Jun 20 19:17:54 homestead mysqld[42962]: 2020-06-20 19:17:54 0 [ERROR] Unknown/unsupported storage engine: InnoDB
Jun 20 19:17:54 homestead mysqld[42962]: 2020-06-20 19:17:54 0 [ERROR] Aborting
Jun 20 19:17:54 homestead systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
Jun 20 19:17:54 homestead systemd[1]: mariadb.service: Failed with result 'exit-code'.
Jun 20 19:17:54 homestead systemd[1]: Failed to start MariaDB 10.4.13 database server.
运行: mysql --version
returns:
mysql Ver 15.1 Distrib 10.4.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
很明显,它表示 MariaDB 未启动。我可以研究如何开始。不过我更好奇——这是发生在宅基地上的事情吗?或者这是其他原因的结果?通常,我可以 vagrant up
一切都很好。我担心如果我把事情搞砸了,我就会为自己的失败做好准备。
编辑 2
当运行这个:
vagrant@homestead:~$ systemctl start mysqld.service
这是我的提示:
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start 'mariadb.service'.
Authenticating as: vagrant,,, (vagrant)
Password:
我不确定继续测试的凭据是什么。
附加解决方案
谢谢你,Raphy963! 我不想回答我自己的问题,我找到了另一种解决方法,希望能对其他人有所帮助。
我正在处理的应用程序尚未投入生产,因此我能够将我的数据库从 MySQL 更改为 PostgreSQL。
我removed/uninstalled virtualbox、vagrant 和 homestead 的所有实例。我还删除了“VirtualBox VMs”目录。
我重新安装了所有东西,从 VirtualBox、Vagrant 开始,然后是 laravel/homestead。我现在 运行 一切都是最新版本;使用 Laravel documentation 进行说明。
安装完所有内容后,运行 vagrant up
没有出现错误,但我仍然无法连接到 MySQL。
我将 Homestead.yaml
文件更新为以下内容:
---
ip: "10.10.10.10"
memory: 2048
cpus: 2
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: /Users/<username>/Sites
to: /home/vagrant/sites
sites:
- map: blog.test
to: /home/vagrant/sites/blog/public
databases:
- blog
- homestead
features:
- mariadb: false
- ohmyzsh: false
- webdriver: false
我将主机文件更新为:
10.10.10.10 blog.test
最后,使用 TablePlus 我能够连接到以下内容:
我的 Laravel 应用程序中的 .env
文件如下所示:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=blog
DB_USERNAME=homestead
DB_PASSWORD=secret
我现在可以使用 TablePlus 和我的应用程序进行连接。
希望这对某人有帮助!!
您需要调查原因。
通过 运行ing vagrant ssh
和 运行 systemctl status mariadb.service
登录到您的实例以检查错误日志。
检查错误是什么,如果您不明白,请在此处回复。
我遇到了同样的问题,花了太多时间试图解决它。我尝试使用他们的 GitHub 存储库 (https://github.com/laravel/homestead) 中的新版 Homestead,它声称可以解决这个确切的问题,但它没有用。
在我自己调查之后,我意识到 Vagrant 中用于 homestead 的脚本(这个 repo 在这里 https://github.com/laravel/settler)已经更新到“10.0.0-beta”。我做了以下操作将其恢复为“9.5.1”。
vagrant box remove laravel/homestead
vagrant box add laravel/homestead --box-version 9.5.1
之后,我使用 vagrant destroy
和 vagrant up
重新创建了我的实例,MariaDB 启动并再次 运行。
虽然这可能不是最好的解决方案,但至少我让它工作了,这对我来说已经足够好了。
希望对您有所帮助!