Laravel执行migrate命令提示:No such file or directory的解决方法

前端技术 2023/09/08 PHP

本文实例讲述了Laravel执行migrate命令提示:No such file or directory的解决方法。分享给大家供大家参考,具体如下:

今天使用Laravel命令行工具操作数据库迁移操作时报错,提示mysql 2002错误,如图:

查看数据库配置没错呀,网站前台也可以打开,说明能连上,那是什么原因呢?

在Laravel5中,有两种办法解决:

1.增加一个数据库配置项

\'mysql\' => [
  \'driver\'  => \'mysql\',
  \'host\'   => env(\'DB_HOST\', \'localhost\'),
  \'database\' => env(\'DB_DATABASE\', \'forge\'),
  \'username\' => env(\'DB_USERNAME\', \'forge\'),
  \'password\' => env(\'DB_PASSWORD\', \'\'),
  \'charset\'  => \'utf8\',
  \'collation\' => \'utf8_general_ci\',
  \'unix_socket\'  => \'/Applications/MAMP/tmp/mysql/mysql.sock\',
  \'prefix\'  => \'laravel_\',
  \'strict\'  => false,
],

这里增加的一项是unix_socket,本机Mac上装的MAMP环境,路径是/Applications/MAMP/tmp/mysql/mysql.sock,查看自己路径的办法是在mysql中输入以下命令就可以看到:

show variables like \'%sock%\';

如下图所示:

2.修改.env配置

这个办法只能是临时修改,让migrate可以执行,然后必须改回来。

DB_HOST=localhost
DB_CONNECTION=mysql
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=tanteng
DB_PORT=8889

临时修改办法是把DB_HOST那里改成localhost:8889,也就是把端口号加上,再使用Laravel5的artisan命令执行migrate操作就可以了,但是操作完了要改回以前的写法,否则网站前台页面会打不开连不上数据库,提示错误:SQLSTATE[HY000] [2005] Unknown MySQL server host \'localhost:8889\' (0)

好了,这样就解决了使用Laravel5的migrate报错的问题。

转自:小谈博客 http://www.tantengvip.com/2015/12/laravel-migrate-mysql-2000/

更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

本文地址:https://www.stayed.cn/item/22654

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。