MySQL + WPKG_WEB - error 1064

Chr0n

Lieutenant
Registriert
Jan. 2007
Beiträge
528
Ok also erstmals, ich habe noch nie vorher mit MySQL gearbeitet, deswegen halte ich mich genau an die Anweisungen von WPKG WEB (klick)

Es funktioniert auch alles soweit, bloß bei dieser Zeile: mysql -p < db/schema.sql

bekomme ich folgenden Fehler:

Code:
C:\Programme\MySQL\MySQL Server 5.0\bin>mysql -u root -p < "C:\Dokumente und Einstellungen\admin\Desktop\wpkg_web-1.1.0\db/schema.sql"
Enter password: ******
ERROR 1064 (42000) at line 125: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-

create table pack_checks (
  id        int unsigned not null auto_increment' at line 1

Die dazu passende Zeile in der schema.sql:
Code:
-- Check definition:
--  ()chklevel   - Current Level #
--  ()prnlevel   - NULL
--  ()chklog_id  - NULL
--  ()chktype_id - ID from pack_chktype
--  ()chkcond_id - ID from pack_chkconditions
--  ()path       - Path for the check ( type of path depends on chktype )
--- ()value      - Value for check ( if check type is not 'exists' )

create table pack_checks (  -- Checks for packages to determin need of installation
  id        int unsigned not null auto_increment,
  pack_id   int unsigned not null default 0,  -- Package for which this check applies
  primary key ( id,pack_id ),
  chklevel  int unsigned not null default 0,  -- For nested checking support
  prnlevel  int default NULL,        -- Parent Check Level !=NULL means this is a level definition.
  chklog_id int unsigned default NULL,        -- Logic type - !=NULL means this is a level definition.
  chktype_id int unsigned default NULL,       -- Check Type ID (pack_chktype table)
  chkcond_id int unsigned default NULL,       -- Check Condition ID (pack_chkconditions table)
  path      varchar(200) default NULL,        -- Path for check ( type of path depends on chktype )
  value     varchar(200) default NULL         -- Value ( for File & Registry Checks )
) TYPE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;

Was ist daran falsch? Vielleicht schwirrt hier ja jemand rum, der mehr Ahnung von MySQL hat als ich.

TIA
 
Zuletzt bearbeitet:
Guten Morgen,

da ist nen Fehler in einem Kommentar in der SQL-Datei. Habe den mal behoben und Dir das geänderte Script hochgeladen.

Dort steht im Original:
Code:
--- ()value      - Value for check ( if check type is not 'exists' )

create table pack_checks

habe es nun wie folgt geändert:
Code:
--  ()value      - Value for check ( if check type is not 'exists' )

create table pack_checks

Ist nen synktaktischer Fehler. MySQL erkennt den Kommentar nicht als solchen und versucht die Zeile als Anweisung zu verarbeiten. Habe die Änderung jetzt nicht überprüft, sollte so aber funktionieren.


Ciao
 

Anhänge

oO das ist mir gar nicht aufgefallen - ist wohl so ähnlich wie mit dem OF, wo der Mensch das F nicht lesen kann ^^.

Dankeschön!


EDIT: So installieren etc. hat nun alles geklappt (habs wie in diesem Tutorial beschrieben gemacht. Dann die INSTALL Anweisungen von oben befolgt - alles funktioniert wunderbar.
Meine Dateien liegen im Apache unter httdocs. Ich versuche mich darauf zu verbinden:
Code:
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10061) in C:\Web\WebServer\htdocs\connect.php on line 17
Cannot connect : Can't connect to MySQL server on 'localhost' (10061)

Die PHPInfo.php funktioniert einwandfrei, es scheint nur bei den Dateien so zu sein, die sich mit MYSQL verbinden wollen.

Die entsprechende connect.php: (//LINE 17 steht nicht drin, habe ich hier nur als Kommentar angefügt, damit man sieht wo der Fehler liegen soll)
Code:
<?php
if (!file_exists("config.php")) {
  print "Please copy the config-dist.php file to config.php and edit to suit your site.<br />";
  exit;
}
include "config.php";

if(isset($_SERVER['PHP_AUTH_USER']) && isset($wpkg_user) && $_SERVER['PHP_AUTH_USER'] == $wpkg_user) {
  $path_data=split("/", $_SERVER['PHP_SELF']);
  $script=array_pop($path_data);
  if(!preg_match('/_xml_out\.php/',$script)) {
    print "You are only allowed to export XML from wpkg_web.";
    exit;
  }
}

$db = mysql_connect($dbhost, $dbuser, $dbpass) or die($vocab['errmsg-connect'] . ": " . mysql_error());    // LINE 17

if(!$db)
  die($vocab['errmsg-nodb']);
if(!mysql_select_db($dbname,$db))
  die($vocab['errmsg-nodb']);

include "upcheck.php";

function quote_smart($value) {
  if (get_magic_quotes_gpc()) {
    $value = stripslashes($value);
  }
  $value = "'" . mysql_real_escape_string($value) . "'";
  return $value;
}
?>

dbhost etc. sind folgendes:
Code:
<?php
$wpkg_user="wpkg";     ## Configure this to be the username that will be used by wpkg.js to retrieve XML
                       ## This is ONLY needed if using some sort of authentication to access the
                       ## *_xml_out.php files.

$language='en-US';     ## Change to be your preferred language.
                       ## Language pack must exist in includes

$icons='default';      ## Icon pack must exist in icons

$dbname="ibdata1";  ## Change to match your Database Name
$dbhost="localhost";   ## Change to match your Database Host
$dbuser="root";  ## Change to match your Database Username
$dbpass="******";      ## Change to match your Database Password

...


Keine Ahnung mehr, was falsch sein kann. Google spuckt zwar vieles dazu aus, allerdings hat mir nichts wirklich weitergeholfen.
Apache und MYSQL laufen selbstverständlich - daran kann es also nicht liegen.


EDIT 2: Ok in der my.ini war noch der Eintrag skip-networking drin. Allerdings hab ich jetzt ein neues Problem, wenn ich mich drauf verbinde:
Code:
Your system is in need of an update... Cannot select pack_id,count(pack_id) as cnt from pack_checks group by pack_id --- Table 'ibdata1.pack_checks' doesn't exist
 
Zuletzt bearbeitet:
Hallo hier mal die Referenz direkt von MySQL zu deinem Problem:
http://dev.mysql.com/doc/refman/5.0/en/can-not-connect-to-server.html

... The error (2003) Can't connect to MySQL server on 'server' (10061) indicates that the network connection has been refused. You should check that there is a MySQL server running, that it has network connections enabled, the network port you specified is the one configured on the server, and that the TCP/IP port you are using has not been blocked by a firewall or port blocking service...

Klingt für mich danach, dass die Netzwerkverbindung zum MySQL-Server scheitert. Prüfe am besten mal mittels netstat -a (Windows) bzw. netstat -tulpe (Linux), ob der der MySQL-Server auf Port 3306 lauscht. Wenn nicht, musst du zunächst mal deine my.ini bzw. my.cnf finden. Dort kann man definieren, ob der MySQL-Deamon auf dem Netzwerkport lauscht.


Ciao
 
Hey,

nein, nach langem rumspielen bin ich mehr oder weniger durch Zufall auf den "skip_networking" Eintrag in der my.ini gestoßen, allerdings gibt es nun ein neues Problem - wie oben in EDIT 2: geschrieben, kommt, wenn ich mich per Browser auf den Server verbinde, folgende Meldung:

Code:
Your system is in need of an update... Cannot select pack_id,count(pack_id) as cnt from pack_checks group by pack_id --- Table 'ibdata1.pack_checks' doesn't exist

Beides, der Apache und der MySQL Server sind online und funktionieren.
kA woran das wieder liegen kann bzw. wie ich oben genannte tbls bekomme...

Danke für deine Mühe!

EDIT: Habe hier übrigens WIN XP SP2.

EDIT 2: Hab jetzt MySQL 5 deinstalliert und es mit 4.1 versucht, der Fehler lautet nun:
Code:
Warning: mysql_query() [function.mysql-query]: Unable to save result set in C:\Web\WebServer\htdocs\upcheck.php on line 3
Cannot: show tables like 'wpkg_web' --- Can't read dir of '.\ibdata1\' (Errcode: 22)

upcheck.php:
Code:
<?php
$sql="show tables like 'wpkg_web'";
$sql_h=mysql_query($sql) or die("Cannot: $sql --- " . mysql_error());
list($table)=mysql_fetch_array($sql_h);
if(isset($table)) {
  $sql="select * from wpkg_web order by uptime desc limit 0,1";
  $sql_h=mysql_query($sql) or die("Cannot: $sql --- " . mysql_error());
  $version_data=mysql_fetch_array($sql_h);

  list($file_version)=file('VERSION');
  if($version_data['version']<rtrim($file_version)) {
    include "update.php";
  }
} else {
  include "update.php";
}
?>

OS error code 22: Invalid argument

Schlauer werde ich daraus leider auch nicht.

EDIT 3: Ah er importiert mir in MySQL 4.1 die DB nicht. Bei 5.0 ist obiger Fehler (you system needs update..) jedoch immer noch vorhanden. Schon sehr komisch...

EDIT 4: Jup lag daran, dass ich die DB nicht importieren konnte.
Unter MySQL 5.1:
Code:
Your system is in need of an update... Cannot select pack_id,count(pack_id) as cnt from pack_checks group by pack_id --- Table 'ibdata1.pack_checks' doesn't exist




EDIT 5: So ich denke, ich habe den Fehler gefunden. Ider Install stehen als Requirements 3 Perl Scripts drin, die für Perl Import benötigt werden:

For Perl package import scripts:
Perl Module: XML::DOM
Perl Module: DBI
Perl Module: DBD-mysql

Da ich allerdings kein Perl an sich verwende dachte ich mir, ich kann diese 3 auslassen. Ich denke hier liegt der Fehler begraben.
Jetzt bleibt eigentlich nur noch die Frage, wo ich die Scripts herbekomme und wie kann ich sie installiere ^^.
 
Zuletzt bearbeitet:
Hallo,

hab das ganze jetzt mal durchgespielt. Liegt nicht an den MySQL Versionen sondern an deiner dbhost.etc.

Tausche mal den Eintrag:
Code:
$dbname="ibdata1";  ## Change to match your Database Name

durch diesen hier aus:
Code:
$dbname="unattended";  ## Change to match your Database Name


Ciao
 
ICH LIEBE DICH !!

Sitze hier seit gestern, installiere MySQL an die 20 mal. Gehe diverse Blogs durch und dann liegt es an einem Fehler in der Installationsbeschreibung :P

Falls du mir noch sagen kannst wo ich die 3 Perl Packages bekomme und wie ich die installiere, bin ich fertig ^^.
Ansonsten importiere ich die Packages von Hand.

Jedenfalls funktioniert jetzt alles.

EDIT: NVM habs gefunden.

Danke für eure bzw. deine Hilfe!
 
Zuletzt bearbeitet:
Zurück
Oben