web-dev-qa-db-ja.com

Synologyを使用してphpページからmysqlサーバーに接続するにはどうすればよいですか?

古いSynologyデバイス(DSM v5.2-5967 Update 4、phpmyadmin v4.4.7-0103)があり、phpページが機能するローカルWebサイトがいくつかあります。これを新しいSynologyデバイス(DSM V6.1.3-15152 Update 1、phpmyadmin v4.6.6-0172)に移行したいと思います。パッケージセンターから新しいバージョンのphpmyadminをインストールする場合、MariaDBとPHP 5.6もダウンロードする必要がありますが、これはDSM 5の要件ではありません。さらに、DSM6はオプションをサポートするようになりましたWeb Stationで、httpバックエンドサーバーとPHPバージョンを構成できます。これを5.6に設定し、phpmyadminと一緒にインストールします。

これは、古いDSMで私のために機能していたコードです。

<?php
define ("DB_Host", "localhost"); // Your database Host name
define ("DB_USER", "root"); // Your database user
define ("DB_PASS", ""); // Your database password
define ("DB_NAME", "groceries"); // Your database name

$link = mysql_connect(DB_Host, DB_USER, DB_PASS) or die("Couldn't make connection.");
$db = mysql_select_db(DB_NAME, $link) or die("Couldn't select database");
?>

このコードは「接続できませんでした」を返すようになりました。これを処理しない他のサイトは、500サーバーエラーを返します。 localhostをSynologyデバイスの名前に置き換えてみましたが、役に立ちませんでした。 PHPファイル自体は正常に動作しますが、データベースに接続できません。MariaDBのコントロールパネルがどこにも表示されないため、設定が不足しているかどうかわかりません。これはパッケージが新しくインストールされた新しいデバイスなので、rootパスワードもまだ変更していません。

PackageCenterからApache2.4をインストールし、それを新しいWeb Station設定でバックエンドサーバーとして設定し、NASを再起動してみました。ただし、phpyadminは引き続き「nginx /1.11.10」をWebサーバーとして表示します。参考までに、私の古いNASはWebサーバーの下にApacheを表示していますが、Apacheパッケージがインストールされていません。

私は途方に暮れています。 Synology DSM 6を使用してmysqlデータベースに接続しようとし、生きて物語を語った人はいますか?

4
Freakishly

私はDS716 +でDSM6を使用していますが、次のコードで問題ありません。接続の問題に到達するには原因が多すぎます。拡張機能が有効にならないなど。他の手順を実行する前に、phpinfo()を使用して確認してください。 mysqlの代わりに mysqli extension を使用してみてください。サンプルコードを添付してください。

<?php
$mysqli = new mysqli("localhost", "dbuser", "dbpassword", "dbname");

$query = "SHOW TABLES";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) {
        printf("%s <br />\n", $row[0]);
    }
    $result->close();
}

$mysqli->close();

?>

enter image description here

PS:私に反対票を投じる人にコメントを残してください

2
Allen Chak

mysql-serverは実行されていますか?コマンドラインで#service mysql statusまたは#mysql#mysql -u USERNAME -pまたは#mysql -u USERNAME -h localhost -pを使用してログインを確認することもできます。 mysql man を参照してください

1
Andreas Rex

ポートを追加する必要があります。

私はPDOを使用していますが、mysql_connectを使用できます

  try
  {
     $pdo = new PDO("mysql:Host=servernameport=3307;dbname=database", "username", "password");
  }
  catch(PDOException $e)
  {
     echo $e->getMessage();
  }
      return $pdo;

必要なポートを見つけるには、maria dbに移動します。正しい場合は、phpmyadminをインストールするとこのパッケージが自動的にインストールされます。

1
Scorpion Code