Cdbconnection Failed To Open The Db Connection: Sqlstate[Hy000] [2054] The Server Requested Authentication Method Unknown To The Client

Hi,

I have problem and the error is "CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client"

Can anyone tell me how to solve this problem?

hosting provide

php verison : 5.4.24

mysql :5.5.34-cll - MySQL Community Server (GPL)

main.php

<?php

// uncomment the following to define a path alias

// Yii::setPathOfAlias(‘local’,‘path/to/local-folder’);

// This is the main Web application configuration. Any writable

// CWebApplication properties can be configured here.

return array(

‘basePath’=>dirname(FILE).DIRECTORY_SEPARATOR.’…’, //where is your root project

//‘name1’=>‘Welcome’,

‘name’=>‘Big Sale Perfume’,

‘theme’=>‘purple’, //My Web Application

‘sourceLanguage’=>‘en_us’,

‘language’=>‘en’,

// preloading ‘log’ component

‘preload’=>array(‘log’),

// autoloading model and component classes

‘import’=>array( //what are the classics

‘application.models.*’,

‘application.components.*’,

),

‘modules’=>array(

// uncomment the following to enable the Gii tool

/*‘gii’=>array(

‘class’=>‘system.gii.GiiModule’,

‘password’=>‘123’,

// If removed, Gii defaults to localhost only. Edit carefully to taste.

‘ipFilters’=>array(‘127.0.0.1’,’::1’),

),*/

),

// application components

‘components’=>array(

‘user’=>array(

// enable cookie-based authentication

‘allowAutoLogin’=>true,

),

// uncomment the following to enable URLs in path-format

/*

‘urlManager’=>array(

‘urlFormat’=>‘path’,

‘rules’=>array(

‘<controller:\w+>/<id:\d+>’=>’<controller>/view’,

‘<controller:\w+>/<action:\w+>/<id:\d+>’=>’<controller>/<action>’,

‘<controller:\w+>/<action:\w+>’=>’<controller>/<action>’,

),

),

*/

//‘db’=>array(

// ‘connectionString’ => ‘sqlite:’.dirname(FILE).’/../data/testdrive.db’,

// ),

// uncomment the following to use a MySQL database

‘db’=>array(

‘class’=>‘CDbConnection’,

‘connectionString’ => ‘mysql:host=localhost;dbname=test1’,

‘emulatePrepare’ => true,

‘username’ => ‘username’,

‘password’ => ‘password’,

‘charset’ => ‘utf8’,

),

‘errorHandler’=>array(

// use ‘site/error’ action to display errors

‘errorAction’=>‘site/error’,

),

‘log’=>array(

‘class’=>‘CLogRouter’,

‘routes’=>array(

array(

‘class’=>‘CFileLogRoute’,

‘levels’=>‘error, warning’,

),

// uncomment the following to show log messages on web pages

/*

array(

‘class’=>‘CWebLogRoute’,

),

*/

),

),

),

// application-level parameters that can be accessed

// using Yii::app()->params[‘paramName’]

‘params’=>array(

// this is used in contact page

‘adminEmail’=>‘webmaster@example.com’,

),

);

error log

2014/01/21 21:14:48 [error] [exception.CDbException] exception ‘CDbException’ with message ‘CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client’ in /home/vbetechc/public_html/testing4/framework/db/CDbConnection.php:382

Stack trace:

#0 /home/vbetechc/public_html/testing4/framework/db/CDbConnection.php(330): CDbConnection->open()

#1 /home/vbetechc/public_html/testing4/framework/db/CDbConnection.php(308): CDbConnection->setActive(true)

#2 /home/vbetechc/public_html/testing4/framework/base/CModule.php(387): CDbConnection->init()

#3 /home/vbetechc/public_html/testing4/framework/base/CApplication.php(450): CModule->getComponent(‘db’)

#4 /home/vbetechc/public_html/testing4/framework/db/ar/CActiveRecord.php(634): CApplication->getDb()

#5 /home/vbetechc/public_html/testing4/framework/db/ar/CActiveRecord.php(667): CActiveRecord->getDbConnection()

#6 /home/vbetechc/public_html/testing4/framework/db/ar/CActiveRecord.php(1455): CActiveRecord->getCommandBuilder()

#7 /home/vbetechc/public_html/testing4/protected/components/UserIdentity.php(20): CActiveRecord->find(‘username=:u’, Array)

#8 /home/vbetechc/public_html/testing4/protected/models/LoginForm.php(52): UserIdentity->authenticate()

#9 /home/vbetechc/public_html/testing4/framework/validators/CInlineValidator.php(42): LoginForm->authenticate(‘password’, Array)

#10 /home/vbetechc/public_html/testing4/framework/validators/CValidator.php(213): CInlineValidator->validateAttribute(Object(LoginForm), ‘password’)

#11 /home/vbetechc/public_html/testing4/framework/base/CModel.php(159): CValidator->validate(Object(LoginForm), NULL)

#12 /home/vbetechc/public_html/testing4/protected/controllers/SiteController.php(120): CModel->validate()

#13 /home/vbetechc/public_html/testing4/framework/web/actions/CInlineAction.php(49): SiteController->actionLogin()

#14 /home/vbetechc/public_html/testing4/framework/web/CController.php(308): CInlineAction->runWithParams(Array)

#15 /home/vbetechc/public_html/testing4/framework/web/CController.php(286): CController->runAction(Object(CInlineAction))

#16 /home/vbetechc/public_html/testing4/framework/web/CController.php(265): CController->runActionWithFilters(Object(CInlineAction), Array)

#17 /home/vbetechc/public_html/testing4/framework/web/CWebApplication.php(282): CController->run(‘login’)

#18 /home/vbetechc/public_html/testing4/framework/web/CWebApplication.php(141): CWebApplication->runController(‘site/login’)

#19 /home/vbetechc/public_html/testing4/framework/base/CApplication.php(180): CWebApplication->processRequest()

#20 /home/vbetechc/public_html/testing4/index.php(14): CApplication->run()

#21 {main}

This indicates a php version incompatibility with mysql libraries installed on your webhost.

Contact server administrator to resolve the issue.

thank for reply.

But when im trying to use this code:

$mysqlConnection = mysqli_connect($server, $username, $password,$database);

if (!$mysqlConnection)

{

die('Could not connect: ' . mysql_error());

}

$query = mysql_query("select * from user");

while ($row = mysql_fetch_assoc($query)) {

echo $row[‘username’];

}

mysqli_close($mysqlConnection);

this can bring me with the result, is it cause by other problem beside php incompatibility with mysql?

i also try to use the requirement detail that is look like no problem.

Something’s wrong with PDO?..

Try this instead:


$mysqlConnection = new PDO("mysql:host=...;dbname=...", $username, $password);

hm… look like it return me another error :

PDO::__construct(): The server requested authentication method unknown to the client [mysql_old_password].

Here is the error_log in runtime

2014/01/22 15:42:13 [error] [php] PDO::__construct(): The server requested authentication method unknown to the client [mysql_old_password] (/home/vbetechc/public_html/testing4/protected/views/site/index.php:24)

Stack trace:

#0 /home/vbetechc/public_html/testing4/framework/web/CBaseController.php(95): SiteController->renderInternal()

#1 /home/vbetechc/public_html/testing4/framework/web/CController.php(869): SiteController->renderFile()

#2 /home/vbetechc/public_html/testing4/framework/web/CController.php(782): SiteController->renderPartial()

#3 /home/vbetechc/public_html/testing4/protected/controllers/SiteController.php(33): SiteController->render()

#4 /home/vbetechc/public_html/testing4/framework/web/actions/CInlineAction.php(49): SiteController->actionIndex()

#5 /home/vbetechc/public_html/testing4/framework/web/CController.php(308): CInlineAction->runWithParams()

#6 /home/vbetechc/public_html/testing4/framework/web/CController.php(286): SiteController->runAction()

#7 /home/vbetechc/public_html/testing4/framework/web/CController.php(265): SiteController->runActionWithFilters()

#8 /home/vbetechc/public_html/testing4/framework/web/CWebApplication.php(282): SiteController->run()

#9 /home/vbetechc/public_html/testing4/framework/web/CWebApplication.php(141): CWebApplication->runController()

#10 /home/vbetechc/public_html/testing4/framework/base/CApplication.php(180): CWebApplication->processRequest()

#11 /home/vbetechc/public_html/testing4/index.php(14): CWebApplication->run()

REQUEST_URI=/

in /home/vbetechc/public_html/testing4/protected/views/site/index.php (24)

in /home/vbetechc/public_html/testing4/protected/controllers/SiteController.php (33)

in /home/vbetechc/public_html/testing4/index.php (14)

Next steps depend on how much access do you have to your server.

Here’s similar thread with solutions.

thank you for your reply :)

my problem is solved by the hosting stuff