web-dev-qa-db-fra.com

Comment puis-je me connecter à un serveur mysql à partir d'une page php en utilisant Synology?

J'ai un appareil Synology plus ancien (DSM v5.2-5967 Update 4, phpmyadmin v4.4.7-0103) qui contient des sites Web locaux avec des pages php actives. Je souhaite migrer ceci vers mon nouveau périphérique Synology (DSM V6.1.3-15152 Update 1, phpmyadmin v4.6.6-0172). Lors de l'installation de la nouvelle version de phpmyadmin à partir du Centre de paquets, je dois également télécharger Maria DB et PHP 5.6, alors que cela n'est pas obligatoire dans DSM 5. De plus, DSM 6 prend désormais en charge les options de Web Station. , où je peux configurer le serveur dorsal http et la version PHP. Je l'ai mis à 5.6, celui installé à côté de phpmyadmin.

Voici le code qui fonctionnait pour moi dans l'ancien 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");
?>

Ce code retourne maintenant "Impossible d'établir la connexion". Les autres sites qui ne gèrent pas cela renvoient une erreur de serveur 500. J'ai essayé de remplacer localhost par le nom de l'appareil Synology, mais en vain. Les fichiers PHP fonctionnent bien, mais je ne parviens pas à me connecter à une base de données. Je ne vois nulle part le panneau de commande de Maria DB, donc je ne sais pas s'il me manque des paramètres. Ceci est un nouveau périphérique, avec une nouvelle installation de paquets, je n'ai donc même pas encore changé le mot de passe root.

J'ai même essayé d'installer Apache 2.4 à partir du Centre de paquets, de le configurer en tant que serveur principal dans les nouveaux paramètres de Web Station et de redémarrer le NAS. Mais phpyadmin affiche toujours "nginx/1.11.10" en tant que serveur Web. Pour référence, mon ancien NAS affiche Apache sous un serveur Web, mais le package Apache n'est pas installé.

Je suis à perte. Quelqu'un a-t-il essayé de se connecter à une base de données mysql à l'aide de Synology DSM 6 et a vécu pour raconter l'histoire?

4
Freakishly

J'utilise DSM6 avec DS716 + et le code suivant est un travail pour moi. Il y a trop de causes pour atteindre le problème de la connexion. Tels que l'extension n'active pas, etc. S'il vous plaît utilisez phpinfo () pour vérifier avant toute autre étape. Essayez d'utiliser extension mysqli au lieu de mysql, attachez un exemple de code pour vous:

<?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: S'il vous plaît laissez un commentaire pour qui me donner un downvote

2
Allen Chak

mysql-server est en cours d'exécution? #service mysql statusou #mysql sur la ligne de commande. Vous pouvez également utiliser #mysql -u USERNAME -p ou #mysql -u USERNAME -h localhost -p pour vérifier la connexion. Voir mysql man

1
Andreas Rex

vous devez ajouter un port.

J'utilise PDO mais vous pouvez utiliser mysql_connect

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

Pour savoir quel port vous avez besoin, allez à maria db Si im right ce paquet est installé automatiquement lorsque vous installez phpmyadmin 

1
Scorpion Code