Sono nuovo di PHP e CakePHP. Trovare problemi durante il cablaggio del mio database usando CakePhp.SQLSTATE [HY000] [1045] Accesso negato per utente 'nome utente' @ 'localhost' utilizzando CakePhp
Di seguito è riportata la configurazione dell'app. Sono in Bitnami WAMP pila 5.4.40-0 Sto usando CakePHP 3.0.4 per creare un web MVC applicazione
ingresso per origini dati nel mio file app.php
/**
* Connection information used by the ORM to connect
* to your application's datastores.
* Drivers include Mysql Postgres Sqlite Sqlserver
* See vendor\cakephp\cakephp\src\Database\Driver for complete list
*/
'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' => 'test2',
'password' => 'computer',
'database' => 'jobs',
'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,
/**
* During development, if using MySQL < 5.6, uncommenting the
* following line could boost the speed at which schema metadata is
* fetched from the database. It can also be set directly with the
* mysql configuration directive 'innodb_stats_on_metadata = 0'
* which is the recommended value in production environments
*/
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
],
Ho già creato una tabella di database chiamata job in base alle convenzioni di CakePhp. L'utente test2 ha i privilegi globali come l'amministratore di root.
Ma quando eseguo il comando bake all. Sto ottenendo il seguente errore
2015-07-01 06:24:56 Error: [PDOException] SQLSTATE[HY000] [1045] Access denied for user 'test2'@'localhost' (using password: YES)
Stack Trace:
C:\Bitnami\wampstack-5.4.40-0\apache2\htdocs\myjobs\vendor\cakephp\cakephp\src\Database\Driver\PDODriverTrait.php(48): PDO->__construct('mysql:host=127....', 'test2', 'computer', Array)
C:\Bitnami\wampstack-5.4.40-0\apache2\htdocs\myjobs\vendor\cakephp\cakephp\src\Database\Driver\Mysql.php(89): Cake\Database\Driver\Mysql->_connect('mysql:host=127....', Array)
C:\Bitnami\wampstack-5.4.40-0\apache2\htdocs\myjobs\vendor\cakephp\cakephp\src\Database\Schema\BaseSchema.php(46): Cake\Database\Driver\Mysql->connect()
PROBLEMA RISOLTO (UPDATE)
ho seguito Ankit e le indicazioni di Spencer.
Ho avuto un paio di problemi.
L'host del mio utente non era localhost, era un jolly%. Modificato questo, quindi mysql ha iniziato a rifiutare le connessioni.
Ho disabilitato il mio firewall e ho scoperto che la porta era diversa da 3306. Quindi ho cambiato la voce in app.php. 'Root' & password: Ora la mia domanda è al forno :)
'Accesso negato per l'utente 'test2' @ 'localhost' (usando la password: YES)' che è piuttosto ambigua. _Ha_ l'utente test2 ha accesso? Cioè funziona: 'mysql -utest2 -pomputer jobs'? – AD7six
strano, cambiare '%' in 'localhost' ha funzionato davvero per me ... Potrebbe anche creare un altro utente - eliminare quello con l'host'% ' –
Riavviare MySQL dopo tali modifiche è la ciliegina sulla torta. – dakab