如何解决Laravel 7 SQLSTATE [HY000] [2002]没有这样的文件或目录
我有一个在本地(MAMP)上开发的laravel 7应用。我现在想在我的网站托管帐户(apache2,php7.4,mysql服务器)上进行设置。我做了一个git pull来下拉所有文件,现在当我做一个
php artisan migrate
我看到一条错误消息
SQLSTATE[HY000] [2002] No such file or directory (SQL: create table `migrations` (`id` int unsigned not null auto_increment primary key,`migration` varchar(191) not null,`batch` int not null) default character set utf8mb4 collate 'utf8mb4_unicode_ci')
我能够登录到托管服务器上的phpmyadmin,并在那里看到我的空数据库。 我的环境文件看起来像这样:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=commandcenterdb
DB_USERNAME=****
DB_PASSWORD=******
和我的config / database.php文件看起来像这样
'mysql' => [
'driver' => 'mysql','url' => env('DATABASE_URL'),'host' => env('DB_HOST','localhost'),'port' => env('DB_PORT','3306'),'database' => env('DB_DATABASE',' commandcenterdb'),'username' => env('DB_USERNAME','*****'),'password' => env('DB_PASSWORD','********'),'unix_socket' => env('DB_SOCKET',''),'charset' => 'utf8mb4','collation' => 'utf8mb4_unicode_ci','prefix' => '','prefix_indexes' => true,'strict' => false,'engine' => null,'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),]) : [],
解决方法
我在 Mac 上使用 MAMP 时遇到同样的错误
SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables where table_schema = php-laravel and table_name = migrations)
我通过在 .env
文件中添加 DB_SOCKET 解决了这个问题
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your-database-name
DB_USERNAME=your-username
DB_PASSWORD=your-password
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
如果它不起作用尝试修改 config/database.php
文件中的字符集和排序规则
'mysql' => [
'driver' => 'mysql','host' => env('DB_HOST','127.0.0.1'),'port' => env('DB_PORT','3306'),'database' => env('DB_DATABASE','forge'),'username' => env('DB_USERNAME','password' => env('DB_PASSWORD',''),'unix_socket' => env('DB_SOCKET','charset' => 'utf8','collation' => 'utf8_unicode_ci','prefix' => '','strict' => true,'engine' => null,]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。