Bilfe bei 1064 - You have an error in your SQL syntax; check the manuel that correspo

D

Djheiko

Grünschnabel
Hallo habe ein Kleines Problem

kann mir einer helfen so bald ich ein volle rechte geben will mach er das da er ja in EVENT und TRIGGER nichts machen kann wie bekomme ich es weg ?

Danke für Eure Hilfe




1064 - You have an error in your SQL syntax; check the manuel that corresponds to your MySQL server version for the right syntax to use near 'EVENT, TRIGGER ON *,* TO 'user3'@'localhost" at line 1




110825 20:10:34 mysqld started
Warning: World-writable config file '/var/db/mysql/my.cnf' is ignored
Warning: World-writable config file '/var/db/mysql/my.cnf' is ignored
110825 20:10:34 InnoDB: Started; log sequence number 0 44253
110825 20:10:34 [Note] /usr/local/libexec/mysqld: ready for connections.
Version: '5.0.92' socket: '/tmp/mysql.sock' port: 3306 FreeBSD port: mysql-server-5.0.92
 
bitmuncher

bitmuncher

Foren Gott
Wie ich bereits unter http://www.unixboard.de/vb3/showthread.php?48376-syntax-to-use-near-EVENT-TRIGGER-ON schrieb... es wäre hilfreich, wenn du mal posten würdest welches Statement du versuchst auszuführen und auch mein erster Satz behält hier seine Gültigkeit. Du erwartest hier, dass Leute dir kostenlose Hilfe geben. Da dürfen diese Leute doch wohl erwarten, dass du dir wenigstens ein bisschen Mühe beim Schreiben deines Beitrags gibst, so dass er wenigstens einigermaßen lesbar ist und man nicht raten muss, was du für ein Problem hast.

Naja... ich versuche es trotzdem mal mit meiner allwissenden Kristallkugel... Du versuchst also vermutlich etwas in der Art wie - GRANT EVENT, TRIGGER ON *,* TO 'user3'@'localhost' - auszuführen. Wie man in der MySQL-Referenz unter http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html nachlesen kann, benötigst du zum anlegen und absetzen von TRIGGERs die SUPER-Rechte.

In MySQL 5.0 CREATE TRIGGER requires the SUPER privilege.

D.h. also, dass es TRIGGER nicht als Privileg gibt, sondern stattdessen SUPER vergeben werden muss.

Selbiges gilt übrigens auch für das Erstellen von Events, wie man ebenfalls in der MySQL-Referenz unter http://dev.mysql.com/doc/refman/5.1/en/events-privileges.html nachlesen kann:

To enable or disable the execution of scheduled events, it is necessary to set the value of the global event_scheduler system variable. This requires the SUPER privilege.

Wenn dir das nicht weiter hilft, dann verrate uns doch bitte was du genau vorhast. Und verwende dabei bitte wenigstens ein paar Satzzeichen und lies nochmal über deinen Beitrag, bevor du ihn absendest.

Und bevor du einen weiteren Syntax-Error bekommst... es muss heissen "... ON *.* TO ..." und nicht "... ON *,* TO ..." Datenbank- und Tabellennamen werden immer mit einem Punkt verbunden und nicht mit einem Komma.
 
D

Djheiko

Grünschnabel
Hallo ok Dachte die Fehler Meldung reicht

So ich versuche nur ein User anzulegen mit Navicat
und beim Anlegen bekomme ich denn Fehler

Die Datenbank Hat 777 Rechte bekommen und auf ein anderen Server geht sie auch ohne Probleme nur auf denn Server nicht

habe ja mysql-server-5.0.92 Instal. Bei ersten mal haben das andere Gemacht und habe es hat nicht geklappt und dann habe ich es hin bekommen

bis auf die 2 Rechte kann ich ein anderen User erstellen Bloß die 2 rechte fehlen mir

also was kann das sein ???


und Sorry wegen meine Rechtschreibung Sorry


mfg

Heiko
 
bitmuncher

bitmuncher

Foren Gott
Also um das mal aufzuklären. Du hast eine Datenbank von einem anderen Server übernommen und die geht nun auf dem neuen Server nicht? Wenn das der Fall ist, und wenn du die Datenbank als Dateien übernommen hast und nicht als Dump, dann kann allein das schon eine Fehlerquelle sein.

Wenn du allerdings eine neue Datenbank angelegt hast, für die du nun Rechte für Triggers und Events vergeben willst, so musst du "GRANT SUPER ON *.* ..." verwenden.

Und ein paar Tipps zur Sicherheit geb ich dir wohl besser noch dazu.

1. Datenbank-Dateien brauchen keine 777-Rechte und aus Sicherheitsgründen haben 777-Rechte auf Servern nichts zu suchen. Es reicht aus, wenn der System-Benutzer, unter dem der MySQL-Server läuft, Lese- und Schreibrechte hat. Andere User müssen auf die Dateien nicht direkt zugreifen können und insofern ist 777 völlig übertrieben und stellt ein Sicherheitsrisiko dar. Ausführbar müssen die DB-Dateien schon gar nicht sein. Sorge also dafür, dass die Dateien dem MySQL-User und der MySQL-Gruppe gehören und dass nur User und Gruppe auf die Dateien im Datadir Lese- und Schreibrechte haben.

2. Privilegien auf *.* sollte man prinzipiell nur dem MySQL-root-Benutzer geben. Verwende also besser "GRANT ... ON datenbankname.* TO ..." anstelle von "GRANT ... ON *.* TO ...". Wenn du Rechte auf *.* vergibst, umfasst dies auch die Datenbank "mysql", in der Informationen wie Zugriffsrechte abgelegt werden, die dann entsprechend auch durch Nicht-Root-Benutzer manipuliert werden können, was man ja eigentlich vermeiden will. Aber!... es gibt eine Ausnahme... SUPER-Rechte können nur auf *.* vergeben werden.

Allgemein empfehle ich dir aber, dass du dich mal mit der MySQL-Dokumentation auseinandersetzen solltest. Die ist wirklich sehr ausführlich und erklärt auch welche Rechte wofür notwendig sind, wie du ja an den beiden Links auch sehen kannst.
 
Zuletzt bearbeitet:

Ähnliche Themen

JBidWatcher: Problem bei loading Auctions in Verbindung mit mySQL

X startet nichtmehr

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Akonadi startet nicht mehr

NagiosGrapher 1.7.1 funktioniert nicht

Oben