cannot lock con_sequence - has it been created?

Gesperrt
bruderbarnabas
Beiträge: 43
Registriert: Do 15. Jan 2004, 22:04
Wohnort: München
Kontaktdaten:

cannot lock con_sequence - has it been created?

Beitrag von bruderbarnabas » Mo 18. Jul 2005, 20:53

Hi Leute,

habe gerade Contenido 4.4.5 installiert.
Läuft alles, aber er gibt mit in den Templates keine Auswahl für die Container.

Im Errorlog steht:
[18-Jul-2005 21:06:09] MySQL error 1062: Duplicate entry '0' for key 1
INSERT INTO
con_actionlog
SET
idlog = 0,
user_id = '21232f297a57a5a743894a0e4a801fc3',
idclient = 1,
idlang = 1,
idaction = 23,
idcatart = '0',
logtimestamp = '2005-07-18 21:06:09'
[18-Jul-2005 21:06:09] MySQL error 1044: Access denied for user 'friederich'@'localhost' to database 'cms'
lock tables con_sequence write
[18-Jul-2005 21:06:09] lock() failed.
[18-Jul-2005 21:06:09] cannot lock con_sequence - has it been created?
[18-Jul-2005 21:06:09] MySQL error 1044: Access denied for user 'friederich'@'localhost' to database 'cms'
lock tables con_sequence write
[18-Jul-2005 21:06:09] lock() failed.
[18-Jul-2005 21:06:09] cannot lock con_sequence - has it been created?
[18-Jul-2005 21:06:09] MySQL error 1062: Duplicate entry '0' for key 1
INSERT INTO con_template_conf
(idtplcfg, idtpl, author) VALUES
('0', '0', 'admin')
[18-Jul-2005 21:06:09] MySQL error 1062: Duplicate entry '0' for key 1
INSERT INTO con_template
(idtpl, idtplcfg, name, description, deletable, idlay, idclient, author, created, lastmodified) VALUES
('0', '0', 'Standard', '', '1', '0', '1', 'admin', '2005-07-18 21:06:09', '2005-07-18 21:06:09')
Der Provider ist Keyweb.

Savemode ist aus und im Adminbereich habe ich dem DB-User alle Rechte (Select, Insert, Update, Delete, Create, Drop, Index, Alter, Tmp-Tbl., Lock-Tbl. ) gegeben.

Könnt ihr mir weiterhelfen?

Dankeschön

Bye
Basti
/:::::::::::::::::::::::\
| www.danruffs.de |
\:::::::::::::::::::::::/

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mo 18. Jul 2005, 21:10

bruderbarnabas hat geschrieben:Könnt ihr mir weiterhelfen?
Sicher doch. Die Suche im Forum haette dir allerdings auch weitergeholfen:

http://www.thilo-sommer.de/PHPMyFAQ/ind ... =5&lang=de

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mo 18. Jul 2005, 21:11

ach ja, lock tables wirst du ihm kaum gegeben haben, sonst haettest du nicht die Fehlermeldung bekommen. :P

bruderbarnabas
Beiträge: 43
Registriert: Do 15. Jan 2004, 22:04
Wohnort: München
Kontaktdaten:

Beitrag von bruderbarnabas » Mo 18. Jul 2005, 21:19

Also das dachte ich auch das es an dem Hakerl liegt, aber das ist definitiv angeklickt ;)

Hmmmmm


Hab das grade ausprobiert mit dem "Locking umgehen"

/* public: table locking */
function lock($table, $mode = "write") {
return true; // wg. STRATO

$query = "lock tables ";
if (is_array($table)) {
while (list($key,$value) = each($table)) {
if (!is_int($key)) {
// texts key are "read", "read local", "write", "low priority write"
$query .= "$value $key, ";
} else {
$query .= "$value $mode, ";
}
}
$query = substr($query,0,-2);
} else {
$query .= "$table $mode";
}
$res = $this->query($query);
if (!$res) {
$this->halt("lock() failed.");
return 0;
}
return $res;
}
function unlock() {
return true; // wg. STRATO
$res = $this->query("unlock tables");
if (!$res) {
$this->halt("unlock() failed.");
}
return $res;
}
aber es hilft nix.

templates gehen immer no net.
/:::::::::::::::::::::::\
| www.danruffs.de |
\:::::::::::::::::::::::/

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mo 18. Jul 2005, 21:32

bruderbarnabas hat geschrieben:Also das dachte ich auch das es an dem Hakerl liegt, aber das ist definitiv angeklickt ;)
Vielleicht beim falschen user. :P

Beim Umgehen ... steht immer noch das gleiche im errorlog?

bruderbarnabas
Beiträge: 43
Registriert: Do 15. Jan 2004, 22:04
Wohnort: München
Kontaktdaten:

Beitrag von bruderbarnabas » Mi 20. Jul 2005, 20:44

Na ganz so dumm war ich auch nicht ;)

Hab jetzt seid dem Umgehen nix neues mehr im errorlog.
Trotzdem funktioniert das mit den Templates nicht.

Wer sich das mal anschauen möchte:
http://www.optik-friederich.de/contenido/

ich denke die Zugangsdaten kennt ihr ;)

Es ist noch nix drauf ausser einem Test-Layout.

Wäre super wenn mir da jemand helfen kann.

Vielen Dank

Bye
Basti
/:::::::::::::::::::::::\
| www.danruffs.de |
\:::::::::::::::::::::::/

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mi 20. Jul 2005, 20:58

keine Ahnung woran das liegt, man kann nicht mal ein zweites Layout anlegen! Hat die errorlog.txt entsprechende Rechte?
In der config.php ist noch ein falscher Pfad (deswegen ist das unter Administration->System rot!), da fehlt ein www.

bruderbarnabas
Beiträge: 43
Registriert: Do 15. Jan 2004, 22:04
Wohnort: München
Kontaktdaten:

Beitrag von bruderbarnabas » Mi 20. Jul 2005, 21:10

Hmmmm hab jetzt bei allen pfaden das www. davor gesetzt.

geht immer no nix.
das is total scheisse ;(

warum konnte ich überhaupt dann das eine Layout anlegen?
(hatte ja Setup ohne Beispiele)

die errorlog hatte ich geleert, um zu sehen, ob er was neues reinschreibt...aber das war wohl net so die hammer-idee...
Rechte sind da...es stand ja gestern scho was drin.

in der db_mysql.inc steht bei mir:
<?php
/*
* Session Management for PHP3
*
* Copyright (c) 1998-2000 NetUSE AG
* Boris Erdmann, Kristian Koehntopp
*
* $Id: db_mysql.inc,v 1.1.1.1 2002/07/21 08:35:41 root Exp $
*
*/

class DB_Sql {

/* public: connection parameters */
var $Host = "";
var $Database = "";
var $User = "";
var $Password = "";

/* public: configuration parameters */
var $Auto_Free = 0; ## Set to 1 for automatic mysql_free_result()
var $Debug = 0; ## Set to 1 for debugging messages.
var $Halt_On_Error = "yes"; ## "yes" (halt with message), "no" (ignore errors quietly), "report" (ignore errror, but spit a warning)
var $Seq_Table = "";

/* public: result array and current row number */
var $Record = array();
var $Row;

/* public: current error number and error text */
var $Errno = 0;
var $Error = "";

/* public: this is an api revision, not a CVS revision. */
var $type = "mysql";
var $revision = "1.2";

/* private: link and query handles */
var $Link_ID = 0;
var $Query_ID = 0;



/* public: constructor */
function DB_Sql($query = "") {
global $cfg;
$this->Seq_Table = $cfg["tab"]["sequence"];
$this->query($query);

}

/* public: some trivial reporting */
function link_id() {
return $this->Link_ID;
}

function query_id() {
return $this->Query_ID;
}

/* public: connection management */
function connect($Database = "", $Host = "", $User = "", $Password = "") {
/* Handle defaults */
if ("" == $Database)
$Database = $this->Database;
if ("" == $Host)
$Host = $this->Host;
if ("" == $User)
$User = $this->User;
if ("" == $Password)
$Password = $this->Password;

/* establish connection, select database */
if ( 0 == $this->Link_ID ) {

$this->Link_ID=mysql_connect($Host, $User, $Password);
if (!$this->Link_ID) {
$this->halt("connect($Host, $User, \$Password) failed.");
return 0;
}

if (!@mysql_select_db($Database,$this->Link_ID)) {
$this->halt("cannot use database ".$Database);
return 0;
}
}

return $this->Link_ID;
}

/* public: discard the query result */
function free() {
@mysql_free_result($this->Query_ID);
$this->Query_ID = 0;
}

/* public: perform a query */
function query($Query_String) {
/* No empty queries, please, since PHP4 chokes on them. */
if ($Query_String == "")
/* The empty query string is passed on from the constructor,
* when calling the class without a query, e.g. in situations
* like these: '$db = new DB_Sql_Subclass;'
*/
return 0;

if (!$this->connect()) {
return 0; /* we already complained in connect() about that. */
};

# New query, discard previous result.
if ($this->Query_ID) {
$this->free();
}

if ($this->Debug)
printf("Debug: query = %s<br>\n", $Query_String);

$this->Query_ID = @mysql_query($Query_String,$this->Link_ID);
$this->Row = 0;
$this->Errno = mysql_errno();
$this->Error = mysql_error();
if (!$this->Query_ID) {
$this->halt(implode(array("MySQL error ",
$this->Errno,
": ",
$this->Error,
"\n",
$Query_String)));
}

# Will return nada if it fails. That's fine.
return $this->Query_ID;
}

/* public: walk result set */
function next_record() {
if (!$this->Query_ID) {
$this->halt("next_record called with no query pending.");
return 0;
}

$this->Record = @mysql_fetch_array($this->Query_ID);
$this->Row += 1;
$this->Errno = mysql_errno();
$this->Error = mysql_error();

$stat = is_array($this->Record);
if (!$stat && $this->Auto_Free) {
$this->free();
}
return $stat;
}

/* public: position in result set */
function seek($pos = 0) {
$status = @mysql_data_seek($this->Query_ID, $pos);
if ($status)
$this->Row = $pos;
else {
$this->halt("seek($pos) failed: result has ".$this->num_rows()." rows.");

/* half assed attempt to save the day,
* but do not consider this documented or even
* desireable behaviour.
*/
@mysql_data_seek($this->Query_ID, $this->num_rows());
$this->Row = $this->num_rows();
return 0;
}

return 1;
}

/* public: table locking */
function lock($table, $mode = "write") {
return true; // wg. STRATO

$query = "lock tables ";
if (is_array($table)) {
while (list($key,$value) = each($table)) {
if (!is_int($key)) {
// texts key are "read", "read local", "write", "low priority write"
$query .= "$value $key, ";
} else {
$query .= "$value $mode, ";
}
}
$query = substr($query,0,-2);
} else {
$query .= "$table $mode";
}
$res = $this->query($query);
if (!$res) {
$this->halt("lock() failed.");
return 0;
}
return $res;
}
function unlock() {
return true; // wg. STRATO
$res = $this->query("unlock tables");
if (!$res) {
$this->halt("unlock() failed.");
}
return $res;
}

/* public: evaluate the result (size, width) */
function affected_rows() {
return @mysql_affected_rows($this->Link_ID);
}

function num_rows() {
return @mysql_num_rows($this->Query_ID);
}

function num_fields() {
return @mysql_num_fields($this->Query_ID);
}

/* public: shorthand notation */
function nf() {
return $this->num_rows();
}

function np() {
print $this->num_rows();
}

function f($Name) {
if (isset($this->Record[$Name])) {
return $this->Record[$Name];
}
}

function p($Name) {
if (isset($this->Record[$Name])) {
print $this->Record[$Name];
}
}

/* public: sequence numbers */
function nextid($seq_name) {
global $cfg;

$this->connect();
$this->Seq_Table = $cfg["tab"]["sequence"];

if ($this->lock($this->Seq_Table)) {
/* get sequence number (locked) and increment */
$q = sprintf("select nextid from %s where seq_name = '%s'",
$this->Seq_Table,
$seq_name);
$id = @mysql_query($q, $this->Link_ID);
$res = @mysql_fetch_array($id);

/* No current value, make one */
if (!is_array($res)) {
$currentid = 0;
$q = sprintf("insert into %s values('%s', %s)",
$this->Seq_Table,
$seq_name,
$currentid);
$id = @mysql_query($q, $this->Link_ID);
} else {
$currentid = $res["nextid"];
}
$nextid = $currentid + 1;
$q = sprintf("update %s set nextid = '%s' where seq_name = '%s'",
$this->Seq_Table,
$nextid,
$seq_name);
$id = @mysql_query($q, $this->Link_ID);
$this->unlock();
} else {
$this->halt("cannot lock ".$this->Seq_Table." - has it been created?");
return 0;
}
return $nextid;
}

/* public: return table metadata */
function metadata($table = "", $full = false) {
$count = 0;
$id = 0;
$res = array();

/*
* Due to compatibility problems with Table we changed the behavior
* of metadata();
* depending on $full, metadata returns the following values:
*
* - full is false (default):
* $result[]:
* [0]["table"] table name
* [0]["name"] field name
* [0]["type"] field type
* [0]["len"] field length
* [0]["flags"] field flags
*
* - full is true
* $result[]:
* ["num_fields"] number of metadata records
* [0]["table"] table name
* [0]["name"] field name
* [0]["type"] field type
* [0]["len"] field length
* [0]["flags"] field flags
* ["meta"][field name] index of field named "field name"
* This last one could be used if you have a field name, but no index.
* Test: if (isset($result['meta']['myfield'])) { ...
*/

// if no $table specified, assume that we are working with a query
// result
if ($table) {
$this->connect();
$id = @mysql_list_fields($this->Database, $table);
if (!$id) {
$this->halt("Metadata query failed.");
return false;
}
} else {
$id = $this->Query_ID;
if (!$id) {
$this->halt("No query specified.");
return false;
}
}

$count = @mysql_num_fields($id);

// made this IF due to performance (one if is faster than $count if's)
if (!$full) {
for ($i=0; $i<$count; $i++) {
$res[$i]["table"] = @mysql_field_table ($id, $i);
$res[$i]["name"] = @mysql_field_name ($id, $i);
$res[$i]["type"] = @mysql_field_type ($id, $i);
$res[$i]["len"] = @mysql_field_len ($id, $i);
$res[$i]["flags"] = @mysql_field_flags ($id, $i);
}
} else { // full
$res["num_fields"]= $count;

for ($i=0; $i<$count; $i++) {
$res[$i]["table"] = @mysql_field_table ($id, $i);
$res[$i]["name"] = @mysql_field_name ($id, $i);
$res[$i]["type"] = @mysql_field_type ($id, $i);
$res[$i]["len"] = @mysql_field_len ($id, $i);
$res[$i]["flags"] = @mysql_field_flags ($id, $i);
$res["meta"][$res[$i]["name"]] = $i;
}
}

// free the result only if we were called on a table
if ($table) {
@mysql_free_result($id);
}
return $res;
}

/* public: find available table names */
function table_names() {
$this->connect();
$h = @mysql_query("show tables", $this->Link_ID);
$i = 0;
while ($info = @mysql_fetch_row($h)) {
$return[$i]["table_name"] = $info[0];
$return[$i]["tablespace_name"] = $this->Database;
$return[$i]["database"] = $this->Database;
$i++;
}

@mysql_free_result($h);
return $return;
}

/* private: error handling */
function halt($msg) {
$this->Error = @mysql_error($this->Link_ID);
$this->Errno = @mysql_errno($this->Link_ID);
if ($this->Halt_On_Error == "no")
return;

$this->haltmsg($msg);

if ($this->Halt_On_Error != "report")
die("Session halted.");
}

function haltmsg($msg) {
printf("</td></tr></table><b>Database error:</b> %s<br>\n", $msg);
printf("<b>MySQL Error</b>: %s (%s)<br>\n",
$this->Errno,
$this->Error);
}

}
?>
habe einfach den Code aus http://www.thilo-sommer.de/PHPMyFAQ/ind ... =5&lang=de
an die entsprechende Stelle kopiert.

Ist da vielleicht was falsch?

Danke für deine Hilfe!

Bye
Basti
/:::::::::::::::::::::::\
| www.danruffs.de |
\:::::::::::::::::::::::/

bruderbarnabas
Beiträge: 43
Registriert: Do 15. Jan 2004, 22:04
Wohnort: München
Kontaktdaten:

Beitrag von bruderbarnabas » Mi 20. Jul 2005, 21:18

Hi klappts.

Weist du was es war?

der Admin und der Sysadmin hatten quasi fast keine Rechte.
Komisch is mir auch noch nie passiert.
Hatte ja da nix geändert, aber jedenfalls kann ich jetzt wieder Templates und Layouts anlegen.

Danke dir für deine Unterstützung!

Bye
Basti
/:::::::::::::::::::::::\
| www.danruffs.de |
\:::::::::::::::::::::::/

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mi 20. Jul 2005, 21:41

na ja, damit, dass jemand in den admin- und sysadmin-Rechten rumgepfuscht hat, konnte ich nun wirklich nicht rechnen. :roll: Irgendwas musst du gemacht haben, das aendert sich nicht von alleine. Oder es haengt mit Strato zusammen, wie auch immer ...

Gesperrt