簡體   English   中英

MySQL Emoncms PHP 錯誤:用戶密碼:否

[英]MySQL Emoncms PHP Error: User Password:NO

我正在嘗試讓Emoncms在共享托管 MediaTemple Web 服務器上工作,並具有經過驗證的先決條件,例如 mod_rewrite 和 LAMP 服務器。 我已經使用用戶名和密碼創建了數據庫,並盡我所能配置了settings.php

/ - this is root
/emoncmsdata - Its 777 for data folders /phpfina & /phpfiwa & /phptimeseries
/httpdocs - this is my public folder
/httpdocs/emoncms - this is where the settings.php is and where modules are

但是當我訪問santiapps.com/emoncms/我得到:

無法連接到數據庫,請在 settings.php 中驗證憑據/配置

錯誤消息:用戶“marskoko”@“localhost”的訪問被拒絕(使用密碼:否)。

我已經將數據庫、用戶和密碼放在腳本中。 我已經檢查過並通過他們的plesk重置密碼。

  1. 我知道該用戶的密碼是正確的,因為我可以使用 mysql -u user -p pass 通過終端使用密碼登錄,然后我獲得 MariaDB 服務器,然后我可以輸入 USE Emoncms並且提示顯示我是連接到Emoncms

  2. 應用程序創建的emoncms.log文件是空的。 我在 web 服務器的 error.log 中發現了一堆這些:

    [Fri Sep 28 20:53:23.620729 2018] [proxy_fcgi:error] [pid 8219:tid 140039956670208] [client 83.139.179.122:35214] AH01071 未知腳本錯誤

  3. 我已經檢查了 SO 中關於此用戶密碼的大部分帖子:沒有問題,它們都與 root 相關,而我不是。 我正在使用另一個名為 marskoko 的用戶。

    用戶 'root'@'localhost' 訪問被拒絕(使用密碼:NO)?無法驗證 php/Mysql?

  4. 我無法停止或啟動服務器,我試過 service mysql stop 並且我得到:

    重定向到 /bin/systemctl stop mysql.service

    無法停止 mysql.service:未加載單元 mysql.service。

    4.a) 最近有人建議我嘗試:

     service mysqld restart

    但我收到類似的錯誤:

    重定向到 /bin/systemctl restart mysqld.service

    無法重新啟動 mysqld.service:未找到單元。

    但我知道它正在運行,否則我將無法查看我的其他數據庫。

  5. 我創建了這個 php 文件:

     <?php $db = mysqli_connect("localhost","marskoko","myPasshasAdollarSign") or die("Failed to open connection to MySQL server."); mysqli_select_db($db, "emoncms") or die("Unable to select database"); \\>

    並運行它,我得到了這個:

    無法打開與 MySQL 服務器的連接。

    5.a) 當我使用mysqli_connect_error()我得到:

    用戶 'emonuser'@'localhost' 訪問被拒絕(使用密碼:NO)

    注意:用戶不同,因為我想確保數據庫或用戶沒有問題,所以我刪除了數據庫並重新創建它並更改了用戶名。 數據庫仍然存在,我仍然可以使用 mysql 命令和相同的密碼通過 MariaDB 訪問它。

  6. 我試過這個建議:

    ps aux | grep mysql

    我明白了:

     mysql 7766 0.0 0.0 113200 1588 ? Ss Sep28 0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr mysql 8286 0.7 5.4 1906888 457400 ? Sl Sep28 5:12 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/lib/mysql/activacorp.net.err --pid-file=activacorp.net.pid --socket=/var/lib/mysql/mysql.sock --port=3306 root 15702 0.0 0.0 112600 1068 pts/0 S+ 09:17 0:00 grep --color=auto mysql
  7. 我只是嘗試使用用戶/密碼登錄數據庫,並嘗試獲取用戶表,但得到了這個:

     MariaDB [emoncms]> select * from user; ERROR 1146 (42S02): Table 'emoncms.user' doesn't exist

然后我再次檢查了我的所有數據庫,並且其中沒有用戶表。 他們有我添加和使用的其他表,但沒有用戶表。 也許 phpmyadmin 隱藏了這一點,我不知道。

我不知道還有什么可以嘗試的。

我認為您可以通過以下步驟解決此問題

  1. 使用 service mysqld start/stop/restart 代替 service mysql start/stop/restart 來啟動/停止 mysql

  2. 確保您獲得了正確的 mysql 用戶密碼 - root,如果沒有,請按照第 3 步重置密碼,否則請跳過第 3 步

  3. 編輯mysql配置文件,通常是/etc/my.cny ,在[mysqld]下添加skip-grant-tables ,然后重啟mysql,現在可以不用密碼進入mysql,然后使用重置密碼

    更新 mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';

    刷新權限;

  4. 就是這樣,請檢查一下

好吧,我想通了。 在 php 周圍挖掘我嘗試在 emoncms 的 index.php 中記錄 $password 變量,它記錄空白,而用戶名、數據庫或其他變量記錄正確。 我最終在 mysqli 行中將 $password 替換為實際密碼,現在可以使用了。 然后我只是將 $password "" 替換為 '' 並且它現在可以工作了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM