在新安装的PDO驱动程序上遇到很多麻烦
这是我尝试执行由laravel触发的任何数据库操作时遇到的错误。
ext Illuminate\Database\QueryException: SQLSTATE[HY000] [2002] Permission denied (SQL: select * from `users` where `email` = ethan@gmail.com limit 1) in /var/www/html/mypath/vendor/laravel/framework/src/Illuminate/Database/Connection.php:647
真正的奇怪之处在于,在php中启用了PDO,并且我们使用的是php artisan迁移创建表时使用的相同凭据(所以我知道凭据,mysql套接字都可以正常工作)
这是堆栈中的PDO错误
at PDO->__construct('mysql:unix_socket=/mnt/volume_sfo2_01/mysql_data/mysqld.sock;dbname=testdb1', 'dbuser1', 'mypassword', array(0, 2, 0, false, false))
in Connector.php line 68
请注意,我确实移动了mysql的数据目录,因此也更改了套接字。此配置可以运行迁移,因此要使其与laravel PDO驱动程序一起使用,我会缺少什么?
在ubuntu服务器16上也是如此。 Nginx + PHP7.1 仅为此测试禁用了apparmor。任何想法将不胜感激。
答案 0 :(得分:0)
我在Laravel / Lumen 5.5 / CentOS7 / php71 / mariaDB上也遇到过类似的问题
使用此处的解决方案中概述的“ setenforce to test”策略,Permissions Issue with Laravel on CentOS您可能想测试SElinux的影响。
我正在通过端口3306连接,并且能够从此问题报告(https://bugzilla.redhat.com/show_bug.cgi?id=1245295)的洞察力中解决问题,从而导致我进入
sudo setsebool httpd_can_network_connect_db 1