🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.datenbanken.mysql
9 messages
9 total messages Started by Alexander Goetze Fri, 11 Jul 2025 01:01
erste Schritte
#80025
Author: Alexander Goetze
Date: Fri, 11 Jul 2025 01:01
60 lines
2133 bytes
Hallo,
nun wollte ich erste Schritte wagen und habe mir ein, zwei Tutorials
gegriffen. Die ich gefunden habe, beziehen sich alle auf MySQL unter
Windows, was für mich unter Linux möglicherweise ein Problem ist. Denn
ich kann nicht einmal den ersten Schritt tun:

> alex@t560b:~> mariadb
> Welcome to the MariaDB monitor.  Commands end with ; or \g.
> Your MariaDB connection id is 9
> Server version: 11.8.2-MariaDB MariaDB package
>
> Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
>
> Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
>
> MariaDB [(none)]> show schemas;
> +--------------------+
> | Database           |
> +--------------------+
> | information_schema |
> | test               |
> +--------------------+
> 2 rows in set (0,001 sec)
>
> MariaDB [(none)]> create schema S;
> ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'S'

OK, wenn ich das nicht darf, dann vielleicht root?

> MariaDB [(none)]> ^DBye
> alex@t560b:~> mariadb -u root -p
> Enter password:
> ERROR 1698 (28000): Access denied for user 'root'@'localhost'
> alex@t560b:~>

Auch nicht.
Laufen tut es aber:
> alex@t560b:~> systemctl status mariadb
> ● mariadb.service - MariaDB database server
>      Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: disabled)
>      Active: active (running) since Fri 2025-07-11 00:33:55 CEST; 25min ago
>  Invocation: d2b468e1667145bc8d10ce128fe56db0
>        Docs: man:mysqld(8)
>              https://mariadb.com/kb/en/library/systemd/
>     Process: 24009 ExecStartPre=/usr/libexec/mysql/mysql-systemd-helper install (code=exited, status=0/SUCCESS)
>     Process: 24016 ExecStartPre=/usr/libexec/mysql/mysql-systemd-helper upgrade (code=exited, status=0/SUCCESS)
>    Main PID: 24095 (mysqld)
>      Status: "Taking your SQL requests now..."
>       Tasks: 8 (limit: 18853)
>         CPU: 6.796s
>      CGroup: /system.slice/mariadb.service
>              └─24095 /usr/sbin/mysqld --defaults-file=/etc/my.cnf --user=mysql --socket=/run/mysql/mysql.sock

Wo hakt es, was muss ich tun?



--
Gruß
Alex
Re: erste Schritte
#80026
Author: Marco Moock
Date: Fri, 11 Jul 2025 07:25
57 lines
1704 bytes
Am 11.07.2025 01:01 Uhr schrieb Alexander Goetzenstein:

> Hallo,
> nun wollte ich erste Schritte wagen und habe mir ein, zwei Tutorials
> gegriffen. Die ich gefunden habe, beziehen sich alle auf MySQL unter
> Windows, was für mich unter Linux möglicherweise ein Problem ist. Denn
> ich kann nicht einmal den ersten Schritt tun:
> 
> > alex@t560b:~> mariadb  
> > Welcome to the MariaDB monitor.  Commands end with ; or \g.
> > Your MariaDB connection id is 9
> > Server version: 11.8.2-MariaDB MariaDB package
> > 
> > Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
> > 
> > Type 'help;' or '\h' for help. Type '\c' to clear the current input
> > statement.
> > 
> > MariaDB [(none)]> show schemas;
> > +--------------------+
> > | Database           |
> > +--------------------+
> > | information_schema |
> > | test               |
> > +--------------------+
> > 2 rows in set (0,001 sec)
> > 
> > MariaDB [(none)]> create schema S;
> > ERROR 1044 (42000): Access denied for user ''@'localhost' to
> > database 'S'  
> 
> OK, wenn ich das nicht darf, dann vielleicht root?

sudo mysql -u root

Hintergrund: Ein normaler Nutzer darf das eben nicht.
Wenn du es als normaler User tun willst, musst du dich mit GRANT
auseinandersetzen.

> > MariaDB [(none)]> ^DBye  
> > alex@t560b:~> mariadb -u root -p  
> > Enter password: 
> > ERROR 1698 (28000): Access denied for user 'root'@'localhost'  
> > alex@t560b:~>  
> 
> Auch nicht.

Man muss das mit dem root-UNIX-User tun.
Sonst könnte jeder am System wie wild an der Datenbank doktern.

-- 
Gruß
Marco

Spam und Werbung bitte an
1752188472ichwillgesperrtwerden@nirvana.admins.ws
Re: erste Schritte
#80028
Author: Stefan+Usenet@Fr
Date: Fri, 11 Jul 2025 08:50
47 lines
1484 bytes
On Fri, 11 Jul 2025 07:25:21 Marco Moock wrote:
> Am 11.07.2025 01:01 Uhr schrieb Alexander Goetzenstein:
>> > alex@t560b:~> mariadb
[...]
>> > ERROR 1044 (42000): Access denied for user ''@'localhost' to
>> > database 'S'

>> OK, wenn ich das nicht darf, dann vielleicht root?

> sudo mysql -u root

*autsch*

> Hintergrund: Ein normaler Nutzer darf das eben nicht.  Wenn du es
> als normaler User tun willst, musst du dich mit GRANT
> auseinandersetzen.

MySQL/MariaDB ist der Unix-User vollkommen egal, ergo sollte man das
Programm gerade eben *nicht* mit der UID 0 aufrufen. Einzige
Ausnahme: Wenn die Distribution so hirnkrank ist, dass man zunächst
nur mit UID 0 hineinkommt, um sich einen anderen User anzulegen. Das
wollen wir einmal nicht hoffen.

>> > MariaDB [(none)]> ^DBye
>> > alex@t560b:~> mariadb -u root -p
>> > Enter password:
>> > ERROR 1698 (28000): Access denied for user 'root'@'localhost'
>> > alex@t560b:~>

>> Auch nicht.

Aber doch schon viel besser. Du suchst hier a) entweder das korrekte
Passwort, das die Distribution Dir irgendwo mitgeteilt hat, oder b)
den Unix-User, dem die Distribution ermöglicht, sich ohne Passwort
anzumelden.

Sobald Du das hast, legst Du Dir einen minder privilegierten
MariaDB-User an und arbeitest mit dem weiter.

Servus,
   Stefan

--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan - vertiert, gelassen in allen Nächten!
(Sloganizer)
Re: erste Schritte
#80027
Author: Jan Schmidt
Date: Fri, 11 Jul 2025 10:40
62 lines
2038 bytes
Marco Moock schrieb am 11.07.25 um 07:25:
> Am 11.07.2025 01:01 Uhr schrieb Alexander Goetzenstein:
>
>> Hallo,
>> nun wollte ich erste Schritte wagen und habe mir ein, zwei Tutorials
>> gegriffen. Die ich gefunden habe, beziehen sich alle auf MySQL unter
>> Windows, was für mich unter Linux möglicherweise ein Problem ist. Denn
>> ich kann nicht einmal den ersten Schritt tun:
>>
>>> alex@t560b:~> mariadb
>>> Welcome to the MariaDB monitor.  Commands end with ; or \g.
>>> Your MariaDB connection id is 9
>>> Server version: 11.8.2-MariaDB MariaDB package
>>>
>>> Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
>>>
>>> Type 'help;' or '\h' for help. Type '\c' to clear the current input
>>> statement.
>>>
>>> MariaDB [(none)]> show schemas;
>>> +--------------------+
>>> | Database           |
>>> +--------------------+
>>> | information_schema |
>>> | test               |
>>> +--------------------+
>>> 2 rows in set (0,001 sec)
>>>
>>> MariaDB [(none)]> create schema S;
>>> ERROR 1044 (42000): Access denied for user ''@'localhost' to
>>> database 'S'
>>
>> OK, wenn ich das nicht darf, dann vielleicht root?
>
> sudo mysql -u root
>
> Hintergrund: Ein normaler Nutzer darf das eben nicht.
> Wenn du es als normaler User tun willst, musst du dich mit GRANT
> auseinandersetzen.
>
>>> MariaDB [(none)]> ^DBye
>>> alex@t560b:~> mariadb -u root -p
>>> Enter password:
>>> ERROR 1698 (28000): Access denied for user 'root'@'localhost'
>>> alex@t560b:~>
>>
>> Auch nicht.
>
> Man muss das mit dem root-UNIX-User tun.
> Sonst könnte jeder am System wie wild an der Datenbank doktern.

echt? Ich würde mal behaupten, dass die rechte des users, der den
client ausführt nichts daran ändert, was der server erlaubt. Die
Rechte auf dem server werden ja normalerweise mit dem
Datenbankuser festgelegt.
Was hier hilft, ist einen user im mysql mit passenden Rechten
anzulegen bzw. dem root-user login rechte zu geben.

kurze Suche liefert auch eine Erklärung...

https://stackoverflow.com/a/42742610

jan
Re: erste Schritte
#80032
Author: Stefan+Usenet@Fr
Date: Fri, 11 Jul 2025 11:16
24 lines
943 bytes
On Fri, 11 Jul 2025 11:31:17 Peter J. Holzer wrote:
> On 2025-07-11 10:50, Stefan Froehlich <Stefan+Usenet@Froehlich.Priv.at> wrote:
>> Ausnahme: Wenn die Distribution so hirnkrank ist, dass man
>> zunächst nur mit UID 0 hineinkommt, um sich einen anderen User
>> anzulegen. Das wollen wir einmal nicht hoffen.

> Ist bei Debian und Ubuntu der Fall. Das Passwort für
> root@localhost ist nach der Installation invalid, aber man kann
> sich über unix_socket authentifizieren.

Huch. Dann habe ich das vor einer Ewigkeit mit meiner
Default-Konfiguration entfernt, das war mir gar nicht mehr bewusst.
root hat hier genau keine bevorzugte Behandlung bei PostgreSQL,
nur der postgres-User darf ohne Passwort als Admin hinein. Das
reicht vollkommen.

Servus,
   Stefan

--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Kompetent bleibt kompetent: Und dafür Stefan!
(Sloganizer)
Re: erste Schritte
#80029
Author: "Peter J. Holzer
Date: Fri, 11 Jul 2025 11:22
59 lines
2233 bytes
On 2025-07-11 10:40, Jan Schmidt <jan.schmidt@gmx.de> wrote:
> Marco Moock schrieb am 11.07.25 um 07:25:
>> Am 11.07.2025 01:01 Uhr schrieb Alexander Goetzenstein:
>>
>>> Hallo,
>>> nun wollte ich erste Schritte wagen und habe mir ein, zwei Tutorials
>>> gegriffen. Die ich gefunden habe, beziehen sich alle auf MySQL unter
>>> Windows, was für mich unter Linux möglicherweise ein Problem ist. Denn
>>> ich kann nicht einmal den ersten Schritt tun:
>>>
>>>> alex@t560b:~> mariadb
>>>> Welcome to the MariaDB monitor.  Commands end with ; or \g.
>>>> Your MariaDB connection id is 9
[...]
>>>> MariaDB [(none)]> create schema S;
>>>> ERROR 1044 (42000): Access denied for user ''@'localhost' to
>>>> database 'S'

Es existiert offenbar ein User ''@'localhost'. Welche Distribution ist
das, die per Default einen User mit einem so seltsamen Namen anlegt?
(Und versucht mariadb nicht normalerweise den Unix-Usernamen, wenn man
nicht explizit einen angibt? Das müsste hier dann eigentlich 'alex'
sein.)

>>>
>>> OK, wenn ich das nicht darf, dann vielleicht root?
>>
>> sudo mysql -u root
>>
>> Hintergrund: Ein normaler Nutzer darf das eben nicht.
>> Wenn du es als normaler User tun willst, musst du dich mit GRANT
>> auseinandersetzen.
>>
>>>> MariaDB [(none)]> ^DBye
>>>> alex@t560b:~> mariadb -u root -p
>>>> Enter password:
>>>> ERROR 1698 (28000): Access denied for user 'root'@'localhost'
>>>> alex@t560b:~>
>>>
>>> Auch nicht.
>>
>> Man muss das mit dem root-UNIX-User tun.
>> Sonst könnte jeder am System wie wild an der Datenbank doktern.
>
> echt? Ich würde mal behaupten, dass die rechte des users, der den
> client ausführt nichts daran ändert, was der server erlaubt.

So ist es. Aber auf manchen Distributionen (z.B. Debian, Ubuntu) kann
der Unix-User root sich ohne Passwort als Datenbank-User root anmelden.

> Was hier hilft, ist einen user im mysql mit passenden Rechten
> anzulegen

Dazu muss man sich erst einmal als privilegierter User an der Datenbank
anmelden können. Dazu braucht man entweder das Passwort des
Datenbank-Users root (sofern der eines hat) oder man muss auf andere
Weise nachweisen, dass man berechtigt ist, sich als root anzumelden
(z.B. in dem man bereits Unix-User root ist).

        hjp
Re: erste Schritte
#80030
Author: "Peter J. Holzer
Date: Fri, 11 Jul 2025 11:31
56 lines
1903 bytes
On 2025-07-11 10:50, Stefan Froehlich <Stefan+Usenet@Froehlich.Priv.at> wrote:
> On Fri, 11 Jul 2025 07:25:21 Marco Moock wrote:
>> Am 11.07.2025 01:01 Uhr schrieb Alexander Goetzenstein:
>>> > alex@t560b:~> mariadb
> [...]
>>> > ERROR 1044 (42000): Access denied for user ''@'localhost' to
>>> > database 'S'
>
>>> OK, wenn ich das nicht darf, dann vielleicht root?
>
>> sudo mysql -u root
>
> *autsch*
>
>> Hintergrund: Ein normaler Nutzer darf das eben nicht.  Wenn du es
>> als normaler User tun willst, musst du dich mit GRANT
>> auseinandersetzen.
>
> MySQL/MariaDB ist der Unix-User vollkommen egal, ergo sollte man das
> Programm gerade eben *nicht* mit der UID 0 aufrufen. Einzige
> Ausnahme: Wenn die Distribution so hirnkrank ist, dass man zunächst
> nur mit UID 0 hineinkommt, um sich einen anderen User anzulegen. Das
> wollen wir einmal nicht hoffen.

Ist bei Debian und Ubuntu der Fall. Das Passwort für root@localhost ist
nach der Installation invalid, aber man kann sich über unix_socket
authentifizieren.


>>> > MariaDB [(none)]> ^DBye
>>> > alex@t560b:~> mariadb -u root -p
>>> > Enter password:
>>> > ERROR 1698 (28000): Access denied for user 'root'@'localhost'
>>> > alex@t560b:~>
>
>>> Auch nicht.
>
> Aber doch schon viel besser. Du suchst hier a) entweder das korrekte
> Passwort, das die Distribution Dir irgendwo mitgeteilt hat,

Wenn sie das hat.

> oder b) den Unix-User, dem die Distribution ermöglicht, sich ohne
> Passwort anzumelden.

Dieser User ist bei Debian und Ubuntu root.


> Sobald Du das hast, legst Du Dir einen minder privilegierten
> MariaDB-User an und arbeitest mit dem weiter.

ACK. Wobei es hier ja schon einen solchen gibt. Er hat sich ja
erfolgreich als ''@'localhost' eingeloggt. Der hat nur nicht genug
Privilegien um eine neue Datenbank anzulegen. Er dürfte aber vermutlich
Tabellen in der Datenbank test anlegen dürfen.

        hjp
Re: erste Schritte
#80031
Author: Marco Moock
Date: Fri, 11 Jul 2025 11:32
49 lines
1727 bytes
Am 11.07.2025 10:40 Uhr schrieb Jan Schmidt:

> Marco Moock schrieb am 11.07.25 um 07:25:

> > Man muss das mit dem root-UNIX-User tun.
> > Sonst könnte jeder am System wie wild an der Datenbank doktern.  
> 
> echt? Ich würde mal behaupten, dass die rechte des users, der den 
> client ausführt nichts daran ändert, was der server erlaubt. Die 
> Rechte auf dem server werden ja normalerweise mit dem 
> Datenbankuser festgelegt.

Zumindest unter Debian funktioniert dieser Weg. Die Datenbankuser sind
getrennt von den UNIX-Usern (ob man auch die nutzen kann, weiß ich ich
nicht). Daher muss man erstmal einen Datenbanknutzer haben, der alles
darf. Das ist unter Debian so gelöst, dass der UNIX-User root diese
Rolle einnimmt, wenn man mariadb installiert hat.
Damit nicht jeder User sich als mariadb-root ohne Passwort einloggen
kann, ist das halt beschränkt.

https://mariadb.com/docs/server/mariadb-quickstart-guides/basics-guide

Warum dieser Weg (ggf. von Debian) gewählt wurde, weiß ich nicht. Eine
Möglichkeit wäre ja gewesen, einen solchen Superuser in der
Konfiguration einzurichten.

m@srv1:~$ mysql -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
m@srv1:~$ sudo mysql -u root 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 74
Server version: 10.11.11-MariaDB-0+deb12u1 Debian 12
 
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement. 
MariaDB [(none)]> quit
Bye
m@srv1:~$ 

-- 
Gruß
Marco

Spam und Werbung bitte an
1752223246ichwillgesperrtwerden@nirvana.admins.ws
Re: erste Schritte
#80033
Author: "Peter J. Holzer
Date: Fri, 11 Jul 2025 14:22
31 lines
1460 bytes
On 2025-07-11 13:16, Stefan Froehlich <Stefan+Usenet@Froehlich.Priv.at> wrote:
> On Fri, 11 Jul 2025 11:31:17 Peter J. Holzer wrote:
>> On 2025-07-11 10:50, Stefan Froehlich <Stefan+Usenet@Froehlich.Priv.at> wrote:
>>> Ausnahme: Wenn die Distribution so hirnkrank ist, dass man
>>> zunächst nur mit UID 0 hineinkommt, um sich einen anderen User
>>> anzulegen. Das wollen wir einmal nicht hoffen.
>
>> Ist bei Debian und Ubuntu der Fall. Das Passwort für
>> root@localhost ist nach der Installation invalid, aber man kann
>> sich über unix_socket authentifizieren.
>
> Huch. Dann habe ich das vor einer Ewigkeit mit meiner
> Default-Konfiguration entfernt, das war mir gar nicht mehr bewusst.

Vor Ewigkeiten war das auch nicht so (da wurde man beim Einrichten nach
einem Passwort für root gefragt), aber doch schon seit längerer Zeit
(ich bin eher Postgres- als MySQL-User, daher weiß ich nicht genau, seit
wann).

> root hat hier genau keine bevorzugte Behandlung bei PostgreSQL,
> nur der postgres-User darf ohne Passwort als Admin hinein. Das
> reicht vollkommen.

Im Prinzip das Gleiche: Der Betriebssystem-User mit dem gleichen Namen
darf sich ohne Passwort anmelden. Nur heißt halt der Root-User bei mysql
"root" und bei Postgres "postgres".

(Postgres ist da auch ziemlich flexibel: Man kann beliebige
Betriebssystemuser auf beliebige Datenbankuser mappen. Davon mache ich
auch fleißig Gebrauch. Lokal verwende ich praktisch nie Passwörter)

        hjp
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads