Laravel Ubuntu数据库迁移遇SQLSTATE[HY000][2002]错误求助
解决Linux环境下Laravel数据库迁移SQLSTATE[HY000] [2002]错误
检查MySQL套接字路径
Linux下XAMPP的MySQL套接字默认路径是/opt/lampp/var/mysql/mysql.sock,Laravel默认无法识别这个路径,需要手动指定:
在项目根目录的.env文件中添加:DB_SOCKET=/opt/lampp/var/mysql/mysql.sock或者修改
config/database.php中mysql配置块,补充socket项:'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', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', '/opt/lampp/var/mysql/mysql.sock'), // 其他默认配置... ],确认MySQL服务可用性
即使XAMPP面板显示运行,仍需手动验证:执行/opt/lampp/bin/mysql -u root -p,输入密码后看能否正常登录数据库。若登录失败,执行sudo /opt/lampp restart mysql重启MySQL服务。确保PHP扩展正确启用
打开XAMPP的PHP配置文件/opt/lampp/etc/php.ini,找到pdo_mysql扩展行,确保分号已删除:extension=pdo_mysql修改后执行
sudo /opt/lampp restart apache重启Apache服务。清理配置缓存
除了清除应用缓存,还需清理配置缓存:php artisan config:clear php artisan cache:clear核对数据库连接信息
确认.env文件中的DB_DATABASE、DB_USERNAME、DB_PASSWORD与phpMyAdmin中创建的数据库信息完全一致,注意Linux环境下数据库名称区分大小写。
内容的提问来源于stack exchange,提问作者ECHHOD
相关产品推荐
相关产品推荐

