CakePHP SQLSTATE Error [HY000] [14]

I am trying to upgrade my current CakePHP 2.x application to 3.x.

I fixed problems with namespace and folder. Now I have problems with the database. On my test server, I created the same MySQL database and granted users access. Then I changed the configuration file config\app.php . But when I try to run my application, I get the following error. What is the problem? CakeFp seems to be trying to use Sqlite, but am I using MySQL?

Inside 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, ], ], 

Error

 Error: [PDOException] SQLSTATE[HY000] [14] unable to open database file Request URL: /mycontroller/ Stack Trace: #0 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php(48): PDO->__construct('sqlite:/var/www...', NULL, NULL, Array) #1 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/cakephp/src/Database/Driver/Sqlite.php(61): Cake\Database\Driver\Sqlite->_connect('sqlite:/var/www...', Array) #2 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/cakephp/src/Database/Schema/BaseSchema.php(46): Cake\Database\Driver\Sqlite->connect() #3 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/cakephp/src/Database/Dialect/SqliteDialectTrait.php(169): Cake\Database\Schema\BaseSchema->__construct(Object(Cake\Database\Driver\Sqlite)) #4 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/cakephp/src/Database/Schema/Collection.php(52): Cake\Database\Driver\Sqlite->schemaDialect() #5 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/cakephp/src/Database/Schema/CachedCollection.php(44): Cake\Database\Schema\Collection->__construct(Object(Cake\Database\Connection)) #6 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/cakephp/src/Database/Connection.php(319): Cake\Database\Schema\CachedCollection->__construct(Object(Cake\Database\Connection), true) #7 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/debug_kit/src/Model/Table/LazyTableTrait.php(40): Cake\Database\Connection->schemaCollection() #8 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/debug_kit/src/Model/Table/RequestsTable.php(43): DebugKit\Model\Table\RequestsTable->ensureTables(Array) #9 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/cakephp/src/ORM/Table.php(285): DebugKit\Model\Table\RequestsTable->initialize(Array) #10 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/cakephp/src/ORM/TableRegistry.php(196): Cake\ORM\Table->__construct(Array) #11 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/debug_kit/src/Routing/Filter/DebugBarFilter.php(186): Cake\ORM\TableRegistry::get('DebugKit.Reques...') #12 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/cakephp/src/Event/EventManager.php(389): DebugKit\Routing\Filter\DebugBarFilter->afterDispatch(Object(Cake\Event\Event), Object(Cake\Network\Request), Object(Cake\Network\Response)) #13 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/cakephp/src/Event/EventManager.php(355): Cake\Event\EventManager->_callListener(Array, Object(Cake\Event\Event)) #14 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/cakephp/src/Event/EventManagerTrait.php(78): Cake\Event\EventManager->dispatch(Object(Cake\Event\Event)) #15 /var/www/vhosts/example.com/httpdocs/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(92): Cake\Routing\Dispatcher->dispatchEvent('Dispatcher.afte...', Array) #16 /var/www/vhosts/example.com/httpdocs/webroot/index.php(37): Cake\Routing\Dispatcher->dispatch(Object(Cake\Network\Request), Object(Cake\Network\Response)) #17 {main} 
+6
source share
1 answer

If you look a little closer to stacktrace, you will notice that this is not related to your connections to applications, but with the DebugKit plugin, which by default uses SQLite to store the panel and request data, and most likely the target directory / file is not accessible for records.

Cookbook> DebugKit

[...]

DebugKit Storage

By default, DebugKit uses a small SQLite database in the /tmp application /tmp to store panel data. If you want to use DebugKit to store your data elsewhere, you must define a debug_kit connection.

Database configuration

By default, DebugKit will store the panel data in the SQLite database in the tmp application tmp . If you cannot set pdo_sqlite , you can configure DebugKit to use a different database by specifying the debug_kit connection in your config/app.php .

[...]

+17
source

All Articles