iT邦幫忙

0

[已解決] QNAP php無法連到SQL

  • 分享至 

  • xImage

大家好,
由於公司新買了QNAP的系統,想試試看用資料庫系統。
目前可以用/phpmyadmin/index.php進入管理頁面
但如果與Nas系統非同IP的電腦開啟網頁執行php程式後都會顯示下方錯誤提示。
Access denied for user 'root'@'localhost' (using password: YES)

QNAP型號: QuTS TS-h686
韌體版本: h5.0.0.2022
SQL伺服器: MariaDB 10.5.8
phpMyAdmin: V4.9.10.0

php內碼如下:

<?php
$host = 'localhost';
$dbuser = 'root';
$dbpw = '1234';
$dbname = 'my_db';

$_SESSION['link'] = mysqli_connect($host, $dbuser, $dbpw, $dbname);

if ($_SESSION['link'])
{
  mysqli_query($_SESSION['link'], "SET NAMES utf8");
  echo "已正確連線";
}
else
{
  echo '無法連線mysql資料庫 :<br/>' . mysqli_connect_error();
}
?>

不知道這要怎麼修改,讓網頁可以連到SQL抓資料,希望有人有經驗的話可以幫忙解答,謝謝~

看更多先前的討論...收起先前的討論...
網頁伺服器跟NAS(資料庫)不同IP? 試試看把localhost改成NAS(資料庫)的IP
感謝您的回答,php檔案有放在Nas的Web資料夾,然後把localhost改成Nas IP後還是顯示Access denied for user 'root'@'localhost' (using password: YES) Orz...
打雜工 iT邦研究生 1 級 ‧ 2022-06-09 09:01:23 檢舉
建議你先把DB的root存取權先改*測試(不做任何限制),先確認是否是這個原因,然後再馬上改回來(我不知你是否有對外,但此舉是有風險,測完儘快復原),確定原因後就好處理了。
感謝打雜工給的方向,目前php已經順利可以連到Sql(mariaDB10)了。 下面是我的方法(不知道正不正統):

在phpMyAdmin管理頁面中的使用者帳號增加:
使用者名稱 :mariadb.sys
主機名稱 : Nas IP
密碼 : (使用者自訂)
並給予全域權限 : ALL PRIVILEGES
及允許授權(Grant) : 是

然後就可以連了....

我在猜測有可能因為Qnap一開始裝好MariaDB與phpMyAdmin後會自動創好幾個使用者帳號,因此互相衝突導致沒辦法連上,總之這個問題解決了,謝謝各位大神熱心的幫忙~
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
echochio
iT邦高手 1 級 ‧ 2022-06-08 17:49:10
最佳解答

Nas系統非同IP的電腦
也就是: 非同IP的電腦連去連 Nas系統 資料庫 MariaDB
PHP是在非同IP的電腦內是嗎?
寫 localhost 那是連本機的 ....
應該不是 localhost 應該是 "Nas系統 資料庫 MariaDB" 可連線IP.....
還有 MariaDB 的 設定要有設定 讓 "非同IP的電腦" 設定root可遠端連線
MariaDB 那台的防火牆要記得開可讓 MariaDB client 遠端連線

感謝大大的回答,
Php檔案是放在Nas的Web資料夾中,然後用不同IP的電腦去連php檔案後顯示錯誤,後來有把原先的localhost改成Nas的IP還是相同錯誤。

『還有 MariaDB 的 設定要有設定 讓 "非同IP的電腦" 設定root可遠端連線MariaDB 那台的防火牆要記得開可讓 MariaDB client 遠端連線』
抱歉,我對Linux與Nas都不太熟悉,MariaDB的防火牆我再來查查看如何修改,先謝謝大大提供的資訊與方向~~ 衷心感謝您!

如果大大有修改Nas MariaDB防火牆的資訊可以分享一下嗎 謝謝~

我要發表回答

立即登入回答