[英]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重置密碼。
我知道該用戶的密碼是正確的,因為我可以使用 mysql -u user -p pass 通過終端使用密碼登錄,然后我獲得 MariaDB 服務器,然后我可以輸入 USE Emoncms並且提示顯示我是連接到Emoncms 。
應用程序創建的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 未知腳本錯誤
我已經檢查了 SO 中關於此用戶密碼的大部分帖子:沒有問題,它們都與 root 相關,而我不是。 我正在使用另一個名為 marskoko 的用戶。
我無法停止或啟動服務器,我試過 service mysql stop 並且我得到:
重定向到 /bin/systemctl stop mysql.service
無法停止 mysql.service:未加載單元 mysql.service。
4.a) 最近有人建議我嘗試:
service mysqld restart
但我收到類似的錯誤:
重定向到 /bin/systemctl restart mysqld.service
無法重新啟動 mysqld.service:未找到單元。
但我知道它正在運行,否則我將無法查看我的其他數據庫。
我創建了這個 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 訪問它。
我試過這個建議:
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
我只是嘗試使用用戶/密碼登錄數據庫,並嘗試獲取用戶表,但得到了這個:
MariaDB [emoncms]> select * from user; ERROR 1146 (42S02): Table 'emoncms.user' doesn't exist
然后我再次檢查了我的所有數據庫,並且其中沒有用戶表。 他們有我添加和使用的其他表,但沒有用戶表。 也許 phpmyadmin 隱藏了這一點,我不知道。
我不知道還有什么可以嘗試的。
我認為您可以通過以下步驟解決此問題
使用 service mysqld start/stop/restart 代替 service mysql start/stop/restart 來啟動/停止 mysql
確保您獲得了正確的 mysql 用戶密碼 - root,如果沒有,請按照第 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';
刷新權限;
就是這樣,請檢查一下
好吧,我想通了。 在 php 周圍挖掘我嘗試在 emoncms 的 index.php 中記錄 $password 變量,它記錄空白,而用戶名、數據庫或其他變量記錄正確。 我最終在 mysqli 行中將 $password 替換為實際密碼,現在可以使用了。 然后我只是將 $password "" 替換為 '' 並且它現在可以工作了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.