我尝试将当前的CakePHP 2.x应用程序升级到3.x.
我修复了命名空间和文件夹结构问题。现在我有数据库问题。在我的测试服务器中,我创建了相同的MySQL数据库并授予用户访问权限。然后我更改了Regexp
配置文件。但是当我尝试我的应用程序时,我得到以下错误。会出现什么问题?似乎Cakephp尝试使用Sqlite,但我使用MySQL?
内部config\app.php
config\app.php
错误
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'nonstandard_port_number',
'username' => 'myuser',
'password' => 'mypass',
'database' => 'mydatabase',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
/**
* Set identifier quoting to true if you are using reserved words or
* special characters in your table or column names. Enabling this
* setting will result in queries built using the Query Builder having
* identifiers quoted when creating SQL. It should be noted that this
* decreases performance because each query needs to be traversed and
* manipulated before being executed.
*/
'quoteIdentifiers' => false,
],
],
答案 0 :(得分:17)
如果你仔细观察堆栈跟踪,你会发现这不是来自你的应用程序连接,而是来自DebugKit插件,它默认使用SQLite存储面板和请求详细信息,而且很可能是目标目录/文件不可写。
<强> Cookbook > DebugKit 强>
[...]
DebugKit Storage
默认情况下,DebugKit在应用程序的
/tmp
目录中使用一个小的SQLite数据库来存储面板数据。如果您希望DebugKit将其数据存储在其他位置,则应定义debug_kit
连接。数据库配置
默认情况下,DebugKit会将面板数据存储到应用程序
tmp
目录中的SQLite数据库中。如果无法安装pdo_sqlite
,则可以通过在debug_kit
文件中定义config/app.php
连接来将DebugKit配置为使用其他数据库。[...]