art*_*s90 32 php mysql apache sqlite laravel
我正在服务器上开发一个网站我只能访问MySQL和FTP,所以我运行的所有命令都是通过b374k php shell.我遇到了SQL驱动程序的Laravel问题.我尝试切换到文件托管的SQLite(在database/database.sqlite中),但抛出的异常与使用MySQL时相同.控制台的输入和输出如下:
php artisan migrate:refresh --seed
[Illuminate\Database\QueryException]
could not find driver (SQL: select * from sqlite_master where type = 'table ' and name = migrations)
[Doctrine\DBAL\Driver\PDOException]
could not find driver
[PDOException]
could not find driver
Run Code Online (Sandbox Code Playgroud)
服务器上安装的Apache扩展包括:
/etc/php/5.6/apache2/conf.d/10-mysqlnd.ini,
/etc/php/5.6/apache2/conf.d/10-opcache.ini,
/etc/php/5.6/apache2/conf.d/10-pdo.ini,
/etc/php/5.6/apache2/conf.d/15-xml.ini,
/etc/php/5.6/apache2/conf.d/20-calendar.ini,
/etc/php/5.6/apache2/conf.d/20-ctype.ini,
/etc/php/5.6/apache2/conf.d/20-curl.ini,
/etc/php/5.6/apache2/conf.d/20-dom.ini,
/etc/php/5.6/apache2/conf.d/20-exif.ini,
/etc/php/5.6/apache2/conf.d/20-fileinfo.ini,
/etc/php/5.6/apache2/conf.d/20-ftp.ini, /etc/php/5.6/apache2/conf.d/20-gd.ini,
/etc/php/5.6/apache2/conf.d/20-gettext.ini,
/etc/php/5.6/apache2/conf.d/20-iconv.ini,
/etc/php/5.6/apache2/conf.d/20-json.ini,
/etc/php/5.6/apache2/conf.d/20-mbstring.ini,
/etc/php/5.6/apache2/conf.d/20-mcrypt.ini,
/etc/php/5.6/apache2/conf.d/20-mysql.ini,
/etc/php/5.6/apache2/conf.d/20-mysqli.ini,
/etc/php/5.6/apache2/conf.d/20-pdo_mysql.ini,
/etc/php/5.6/apache2/conf.d/20-phar.ini,
/etc/php/5.6/apache2/conf.d/20-posix.ini,
/etc/php/5.6/apache2/conf.d/20-readline.ini,
/etc/php/5.6/apache2/conf.d/20-shmop.ini,
/etc/php/5.6/apache2/conf.d/20-simplexml.ini,
/etc/php/5.6/apache2/conf.d/20-sockets.ini,
/etc/php/5.6/apache2/conf.d/20-sysvmsg.ini,
/etc/php/5.6/apache2/conf.d/20-sysvsem.ini,
/etc/php/5.6/apache2/conf.d/20-sysvshm.ini,
/etc/php/5.6/apache2/conf.d/20-tokenizer.ini,
/etc/php/5.6/apache2/conf.d/20-wddx.ini,
/etc/php/5.6/apache2/conf.d/20-xmlreader.ini,
/etc/php/5.6/apache2/conf.d/20-xmlwriter.ini,
/etc/php/5.6/apache2/conf.d/20-xsl.ini,
/etc/php/5.6/apache2/conf.d/20-zip.ini
Run Code Online (Sandbox Code Playgroud)
可能是什么问题,我该如何解决?(我无权访问root bash)
Nib*_*ibb 41
如果可以的话,运行:
composer update
composer require doctrine/dbal
Run Code Online (Sandbox Code Playgroud)
看起来你缺少依赖
编辑:
您可能需要在php.ini文件中注释掉以下内容.
;extension=pdo_mysql.so
Run Code Online (Sandbox Code Playgroud)
摘自这篇文章: Laravel 5 PDOException无法找到驱动程序 .我认为在数字海洋上设置laravel时我必须做一些完全相同的事情.
小智 38
您的数据库驱动程序丢失.解决问题
首先安装驱动程序
对于ubuntu:对于mysql数据库.
sudo apt-get install php5.6-mysql/php7.2-mysql
Run Code Online (Sandbox Code Playgroud)
您还可以搜索其他数据库系统.
您还可以搜索驱动程序:
sudo apt-cache search drivername
Run Code Online (Sandbox Code Playgroud)
然后运行cmd php artisan migrate
Mub*_*bas 19
运行我的测试套件时出现了同样的错误.它之前工作但它升级后我停止了工作.所以我做了
sudo apt-get install php-sqlite3
Run Code Online (Sandbox Code Playgroud)
它起作用了.
小智 10
解决方案1:
1. php -v
Run Code Online (Sandbox Code Playgroud)
输出: PHP 7.3.11-1+ubuntu16.04.1+deb.sury.org+1 (cli)
2. sudo apt-get install php7.3-mysql
Run Code Online (Sandbox Code Playgroud)
解决方案2:
检查您的数据库凭据,如数据库名称、数据库用户、数据库密码
在Ubuntu中更简单(18.04)
apt install php-mysql
做完了 无需编辑任何.ini文件。
编码愉快!
错误:找不到驱动程序(SQL:select * from testswhere slug= a limit 1)
我在 Laravel 项目中遇到上述错误,我在 ubuntu 16.04 上使用 nginx 服务器
此错误是因为php-mysql缺少驱动程序。要安装它,请键入以下命令。
sudo apt-get install php7.2-mysql
Run Code Online (Sandbox Code Playgroud)
请php version在上述命令中指定您的电流。
打开php.ini文件并取消注释以下代码行(删除分号)。
;extension=pdo_mysql
Run Code Online (Sandbox Code Playgroud)
然后重启nginx和php服务
sudo systemctl restart php7.2-fpm
sudo systemctl restart nginx
Run Code Online (Sandbox Code Playgroud)
它对我有用。
首先检查一下php -m
。如果看不到mysql驱动程序,请安装mysql。sudo apt-cache search php-mysql
您的结果将类似于:
php-mysql - MySQL module for PHP [default]
Run Code Online (Sandbox Code Playgroud)
安装php- mysql驱动
sudo apt-get install php7.1-mysql
Run Code Online (Sandbox Code Playgroud)
您可能缺少 sqlite 或您尝试迁移的特定数据库驱动程序。
安装数据库驱动程序,你会没事的。您不一定需要编辑您的 php.ini 文件(尽管这也是修复它的一种方法)。
对于 sqlite 做 -->sudo apt-get install php-sqlite3
然后php artisan migrate
注意:我假设您已经安装了 PHP 和 MySql
我在 Ubuntu 16.04 中遇到了类似的问题,对我有帮助的是我为 php 7.2 安装了 php-mysql。如果您有 php 7.2,我建议您运行以下命令,或者根据您的 PHP 版本安装 php mysql。确保您已经安装了 DBAL 包
apt-get install php7.2-mysql
systemctl restart apache2
Run Code Online (Sandbox Code Playgroud)
我在使用 sqlite 3 时遇到了同样的问题:
$sudo apt-get install php-sqlite3 。$php artisan 迁移。您需要在 php.ini 文件中启用这些扩展
前:
;extension=pdo_mysql
;extension=mysqli
;extension=pdo_sqlite
;extension=sqlite3
Run Code Online (Sandbox Code Playgroud)
后:
extension=pdo_mysql
extension=mysqli
extension=pdo_sqlite
extension=sqlite3
Run Code Online (Sandbox Code Playgroud)
建议您还激活 fileinfo 扩展名,许多软件包都需要它。
| 归档时间: |
|
| 查看次数: |
115576 次 |
| 最近记录: |