Seite 1 von 1

MySQL - Schema / Username mit _ ?

Verfasst: Sa, 20. Apr 2013 15:03
von brandelh
Hallo,

ich hatte auf meinem alten Server MySQL ein Schema HB_EDV_INFO eingerichtet.
Es gab auch einen normalen User für meine CGI Programme: HB_EDV_INFO ... also das Gleiche.

Nun habe ich den neuesten MySQL Server (5.6) installiert und versuche die DB wieder so einzurichten.
Schema hatte ich zuerst mit Restore vom SQL Backup zurückgeholt (Tabellen, Struktur, Daten).
Dann den User HB_EDV_INFO angelegt und wollte diesem normale Rechte über die Workbench auf HB_EDV_INFO zuweisen.

Hierbei wird das Schema mit Escape-Zeichen dargestellt und es erscheint ein Syntaxfehler im automatisch erzeugten Script.
MySQL-Error.png
MySQL-Error.png (17.76 KiB) 9525 mal betrachtet
Als das nicht half, habe ich das Schema neu erstellt, und versucht dem User die Rechte zuzuordnen, gleiches Resultat.

Ist es nun verboten, dass man USER und SCHEMA gleich benennt ?
Oder sind nur die '_' mittlerweile nicht mehr erlaubt ... oder ist es schlicht ein Fehler der Workbench ?

Eigentlich wollte ich lokal keinen pHpAdmin installieren ...

Re: MySQL - Schema / Username mit _ ?

Verfasst: So, 21. Apr 2013 11:06
von georg
Hallo, Hubert -


also, das funktioniert bei mir:

Code: Alles auswählen

mysql> grant all privileges on HB_EDV_INFO.* to 'HB_EDV_INFO'@'localhost' identified by 'test';
Query OK, 0 rows affected (0.00 sec)
Die eingesetzt MySQL-Version: Server version: 5.5.25 MySQL Community Server (GPL)

Unter MySQL kann man auch reservierte Begriffe als Namen verwenden, muss sie aber in Anführungsstriche setzen.


Auch sollte der Unterstrich kein Problem darstellen, Zitat:
User variables are written as @var_name, where the variable name var_name consists of alphanumeric characters, “.”, “_”, and “$”.
Hier zu finden: http://dev.mysql.com/doc/refman/5.6/en/ ... ables.html

Ich würde also stark vermuten, dass das Problem mindestens an den Escape-Zeichen liegt. Es wäre nicht verkehrt, wenn Du mal den ganzen Befehlssatz (create, grant) posten würdest, wie Du ihn ins System eingibst.

Re: MySQL - Schema / Username mit _ ?

Verfasst: So, 21. Apr 2013 18:09
von brandelh
Hi,

ich gebe ihn gar nicht ein (ich bin ja kein SQL Experte), sondern nutze die Workbench.
In den alten Versionen (irgendwas mit Query) konnte man auch zusätzlich den Code selbst eingeben und ich meine es gibt auch eine Console.
Aber wie du sicher bemerkt hast, NUTZE ich nur Schmalspur ;-)

Re: MySQL - Schema / Username mit _ ?

Verfasst: So, 21. Apr 2013 18:25
von georg
Hallo, Hubert -


wenn Du eine vollständige MySQL-Installation hast:

Code: Alles auswählen

Befehlseingabe (cmd.exe) öffnen
mysql -u root -p
Dann wirst Du nach dem root-Passwort gefragt. Anschliessend bist Du in der Konsole und kannst dort mal die Befehle versuchen.

Wie gesagt, aus meiner Sicht sind die Escapes falsch. Auch eine Workbench kann mal eine programmlogische Unschärfe oder eine programmtechnische Ungenauigkeit haben ...

Re: MySQL - Schema / Username mit _ ?

Verfasst: So, 21. Apr 2013 18:32
von brandelh
Schön dass es im Menü von MySQL die Commando Zeile :-)

Code: Alles auswählen

Enter password: ***************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.11-log MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant all privileges on hb_edv_info.* to 'HB_EDV_INFO'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql>
die Antwort verwirrt mich aber etwas ...
Query OK, 0 rows affected (0.00 sec)
hat er nun oder hat er nicht ... er hat.

Re: MySQL - Schema / Username mit _ ?

Verfasst: So, 21. Apr 2013 20:31
von georg
Hallo, Hubert -


MySQL behandelt jeden Befehl wie ein SELECT. Und bei einem SELECT wird eine Antwort erwartet, allerdings liefert der GRANT keine, also 0 rows affected.

Und siehe, es geht doch.