Я пытаюсь запустить приложение на удаленном сервере, а затем подключить это веб-приложение через браузер моего компьютера.При подключении к базе данных возникла ошибка.
Сообщение об ошибке: CDbConnection failed to open the DB connection: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)
.
Я нашел много решений для ее решения и пробовал, но ничего не помогает.
Текущая версия - Ubuntu 18.04, версия nginx nginx/1.14.0 (Ubuntu)
, версия php 5.6.40
, версия mysql 5.7.24
и используемая версия yii 1.1.19
.Весь этот стек установлен на удаленном сервере.
То, что я пробовал до сих пор;Я проверил, что пользователь существует.SELECT user, host FROM mysql.user;
| user | host |
+-------------------+---------------+
| root | 127.0.0.1 |
| root | localhost |
+-------------------+---------------+
и все в порядке.
Я проверил запущенный порт mysql.
mysql> SHOW GLOBAL VARIABLES LIKE 'PORT';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+-------+
Я проверил грантпривилегии;
mysql> SHOW GRANTS For root@localhost;
+----------------------------------------------------------------+
| Grants for root@localhost
|
+----------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
| GRANT SELECT ON `root`.* TO 'root'@'localhost'
|GRANT ALL PRIVILEGES ON `xxxx`.* TO 'root'@'localhost'
| GRANT SELECT ON `xxxx`.* TO 'root'@'localhost'
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+------------------------------------------------------------------+
mysql> SHOW GRANTS FOR CURRENT_USER();
+-----------------------------------------------------------------+
| Grants for root@127.0.0.1 |
+-----------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION
|
| GRANT ALL PRIVILEGES ON `xxxx`.* TO
'root'@'127.0.0.1' |
+----------------------------------------------------------------------+
На стороне php некоторые файлы разделены средой.Например: development.php, test.php.
У меня есть триггер для запуска development.php, и он содержит строку подключения:
db' => array(
'connectionString' => 'mysql:host=127.0.0.1;dbname=xxxx',
'enableParamLogging' => $profiling,
'enableProfiling' => $profiling,
'schemaCachingDuration' => 0,
),
имя пользователя и пароль, загруженные другим файлом phpвот так:
'db' => array(
'class' => 'DbConnection',
'emulatePrepare' => true,
'username' => 'root',
'password' => 'xxxx',
'charset' => 'utf8',
'schemaCachingDuration' => 7200,
),
Все кажется нормальным.Я также могу подключить терминал mysql для этого пользователя и пароль следующим образом: mysql -u root -p -h 127.0.0.1
Но когда я набираю URL в браузере, он выдает: CDbConnection failed to open the DB connection: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)
ошибку, и я не смог найти способ решитьэто.