TestLink安裝過程中報錯DB Access Error - debug_print_backtrace() OUTPUT START

問題復現

版本信息:

  • OS版本:Ubuntu Server 16.04.6 LTS
  • TestLink版本:1.9.17
  • MySQL版本:8.0.16
  • PHP版本:7.0.33
  • Apache2版本:2.4.18

TestLink安裝過程第四步中Creating Testlink DB user `root`時報錯,錯誤信息如下:

==============================================================================

DB Access Error - debug_print_backtrace() OUTPUT START

ATTENTION: Enabling more debug info will produce path disclosure weakness (CWE-200)

Having this additional Information could be useful for reporting issue to development TEAM.

==============================================================================

排查問題

  1. 查看日誌
vim /var/www/html/testlink/logs/userlog0.log

定位到錯誤信息:

ERROR ON exec_query() - database.class.php <br />1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘IDENTIFIED BY ‘123456’’ at line 1 - GRANT SELECT, UPDATE, DELETE, INSERT ON `testlink`.* TO ‘root’@‘localhost’ IDENTIFIED BY ‘123456’<br />THE MESSAGE : GRANT SELECT, UPDATE, DELETE, INSERT ON `testlink`.* TO ‘root’@‘localhost’ IDENTIFIED BY ‘123456’
Query failed: errorcode[1064]
errormsg:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘IDENTIFIED BY ‘123456’’ at line 1

  1. 分析錯誤原因

mysql 8 版本起已經將創建賬戶和賦予權限的方式分開了,因此需要將日誌中所描述的命令改爲:

GRANT SELECT, UPDATE, DELETE, INSERT ON \`testlink\`.* TO 'root'@'localhost';
  1. 解決方案

找到並修改執行上述命令的腳本:

sudo vim /var/www/html/testlink/install/installUtils.php

將468行註釋掉,該行是給sql命令加上“IDENTIFIED BY ‘123456’”,即改爲:

//$stmt .= " IDENTIFIED BY '" .  $passwd . "'";

然後重新執行安裝過程即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章