• This forum has a zero tolerance policy regarding spam. If you register here to publish advertising, your user account will be deleted without further questions.

MySQL verhält sich komisch (root@localhost@localhost ???! )

DarkTrinity

Member
Hallo liebe Community,

mir ist mein sql- Problem erst durch eine NextCloud Installation aufgefallen, die von vorne bis hinten nicht klappen möchte. Hier bekomme ich zB folgende Fehlermeldung:
Error while trying to create admin user: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [1045] Access denied for user 'DB-NEXTCLOUD'@'127.0.0.1' (using password: YES)
Dazu gibts zwar einen Thread im entsprechenden Forum, aber das Problem auf diesen produktiv genutzten und sich online befindlichen Webserver ist leider drastischer als ich dachte und geht wohl über Nextcloud hinaus. Ich denke es ist ein generelles SQL Problem :oops:

Server:
OS Ubuntu 20.04
Apache, MariaDB
PHP (FPM) 7.4, 8.0, 8.1, 8.2 (PHP 7.4 global, die anderen PHP Versionen nur für einzelne Domains)
Software: Einiges (z.B.: ISP Config, Horde, dokuwiki, Gitea (docker), Egroupware (docker), Rocketchat (docker), jitsi (docker), Joomla und was weiss ich sonst noch)

Hintergrund:
Die Probleme fingen an seit ich versuchte Nextcloud 25 zu installieren. Hier habe ich entsprechend Anleitung zwar einige PHP Module nachinstalliert, aber das dürfte ja mySQL kaum beeinflussen. Jedenfalls fing der Ärger damit an...

Zum Problem:
Irgendwie können sich die DB-User nicht immer anmelden (Ich habe den Server auch schon mal neu gestartet - brachte natürlich nichts...) :

Verhalten auf der konsole
Bei folgenden Beispiel- LogIns wird mir der Zugriff verweigert
Code:
mysql -u root@localhost -p
mysql -u root@127.0.0.1 -p
mysql -u root@127.0.1.1 -p

Fehlercode
ERROR 1045 (28000): Access denied for user 'root@localhost'@'localhost' (using password: YES)


Problemlos anmelden kann ich mich aber zB über folgenden:
Code:
mysql -u root -p

Schlussfolgerung:
Irgendwie kommt immer einmal @localhost zusätzlich dazu :oops:

Status Dienst --> systemctl status mysql
Der Status des DIenstes sieht schon mal merkwürdig aus, mir fiel folgendes auf:
Code:
Dez 06 15:59:34 SERVER mysqld[26392]: 2022-12-06 15:59:34 12471 [Warning] Access denied for user 'NEXTCLOUD'@'127.0.0.1' (using password: YES)
Dez 06 15:59:55 SERVER mysqld[26392]: 2022-12-06 15:59:55 12474 [Warning] Access denied for user 'NEXTCLOUD'@'127.0.0.1' (using password: YES)
Dez 06 16:03:24 SERVER mysqld[26392]: 2022-12-06 16:03:24 12511 [Warning] Access denied for user 'NEXTCLOUD'@'localhost' (using password: YES)
Dez 06 16:03:37 SERVER mysqld[26392]: 2022-12-06 16:03:37 12513 [Warning] Access denied for user 'ispconfiguser'@'127.0.0.1' (using password: YES)
Dez 06 16:03:37 SERVER mysqld[26392]: 2022-12-06 16:03:37 12514 [Warning] Access denied for user 'ispconfiguser'@'127.0.0.1' (using password: YES)
Dez 06 16:03:37 SERVER mysqld[26392]: 2022-12-06 16:03:37 12515 [Warning] Access denied for user 'ispconfiguser'@'127.0.0.1' (using password: YES)
Dez 06 16:04:22 SERVER mysqld[26392]: 2022-12-06 16:04:22 12525 [Warning] Access denied for user 'NEXTCLOUD@127.0.0.1'@'localhost' (using password: YES)
Trotz der Fehlermeldung konnte ich mich problemlos in ISPConfig anmelden ..... Komisch ..... Wenn ich mariaDB dann neu starte sieht der Status wenig später dann zb wieder so aus:
Code:
● mariadb.service - MariaDB 10.3.37 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/mysql.service.d
             └─limits.conf
     Active: active (running) since Tue 2022-12-06 16:13:36 UTC; 18min ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 411156 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
    Process: 411158 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 411171 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
    Process: 411213 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 411214 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
   Main PID: 411181 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 50 (limit: 28751)
     Memory: 122.9M
     CGroup: /system.slice/mariadb.service
             └─411181 /usr/sbin/mysqld

Dez 06 16:13:36 server mysqld[411181]: 2022-12-06 16:13:36 0 [Note] Reading of all Master_info entries succeeded
Dez 06 16:13:36 server mysqld[411181]: 2022-12-06 16:13:36 0 [Note] Added new Master_info '' to hash table
Dez 06 16:13:36 server mysqld[411181]: 2022-12-06 16:13:36 0 [Note] /usr/sbin/mysqld: ready for connections.
Dez 06 16:13:36 server mysqld[411181]: Version: '10.3.37-MariaDB-0ubuntu0.20.04.1'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  Ubuntu 20.04
Dez 06 16:13:36 server systemd[1]: Started MariaDB 10.3.37 database server.
Dez 06 16:13:36 server mysqld[411181]: 2022-12-06 16:13:36 8 [Warning] Access denied for user 'root'@'localhost' (using password: YES)
Dez 06 16:13:37 server mysqld[411181]: 2022-12-06 16:13:37 9 [Warning] Access denied for user 'root'@'localhost' (using password: YES)
Dez 06 16:13:37 server debian-start[411228]: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Dez 06 16:13:37 server mysqld[411181]: 2022-12-06 16:13:37 0 [Note] InnoDB: Buffer pool(s) load completed at 221206 16:13:37
Dez 06 16:13:43 server mysqld[411181]: 2022-12-06 16:13:43 12 [Warning] IP address '172.X.X.X' could not be resolved: Name or service not known

Anmerkung:
In der letzten Zeile zB ist die IP eines Docker-Containers (Gitea) der wunderbar funktioniert und auch pingbar ist...

Logs
Die error.log sowie error.log.1 sind beide leer... :oops: Eine slow.log, ebenfalls in /var/log/mysql , die mir zuvor nie begegnete, dokumentiert lediglich was ich gestern in phpmyadmin gemacht habe.
cat slow.log
Code:
/usr/sbin/mysqld, Version: 10.3.37-MariaDB-0ubuntu0.20.04.1-log (Ubuntu 20.04). started with:
Tcp port: 0  Unix socket: (null)
Time                Id Command  Argument
/usr/sbin/mysqld, Version: 10.3.37-MariaDB-0ubuntu0.20.04.1-log (Ubuntu 20.04). started with:
Tcp port: 0  Unix socket: (null)
Time                Id Command  Argument
/usr/sbin/mysqld, Version: 10.3.37-MariaDB-0ubuntu0.20.04.1-log (Ubuntu 20.04). started with:
Tcp port: 0  Unix socket: (null)
Time                Id Command  Argument
/usr/sbin/mysqld, Version: 10.3.37-MariaDB-0ubuntu0.20.04.1-log (Ubuntu 20.04). started with:
Tcp port: 0  Unix socket: (null)
Time                Id Command  Argument
# Time: 221205 19:18:57
# User@Host: root[root] @ localhost []
# Thread_id: 349  Schema: DB-NEXTCLOUD  QC_hit: No
# Query_time: 1.163153  Lock_time: 0.004497  Rows_sent: 0  Rows_examined: 0
# Rows_affected: 0  Bytes_sent: 11
use db2nxtcld;
SET timestamp=1670267937;
DROP TABLE `oc_accounts`, `oc_accounts_data`, `oc_activity`, `oc_activity_mq`, `oc_addressbookchanges`, `oc_addressbooks`, `oc_appconfig`, `oc_authorized_groups`, `oc_authtoken`, `oc_bruteforce_attempts`, `oc_calendarchanges`, `oc_calendarobjects`, `oc_calendarobjects_props`, `oc_calendars`, `oc_calendarsubscriptions`, `oc_calendar_invitations`, `oc_calendar_reminders`, `oc_calendar_resources`, `oc_calendar_resources_md`, `oc_calendar_rooms`, `oc_calendar_rooms_md`, `oc_cards`, `oc_cards_properties`, `oc_circles_circle`, `oc_circles_event`, `oc_circles_member`, `oc_circles_membership`, `oc_circles_mount`, `oc_circles_mountpoint`, `oc_circles_remote`, `oc_circles_share_lock`, `oc_circles_token`, `oc_collres_accesscache`, `oc_collres_collections`, `oc_collres_resources`, `oc_comments`, `oc_comments_read_markers`, `oc_dav_cal_proxy`, `oc_dav_shares`, `oc_directlink`, `oc_direct_edit`, `oc_federated_reshares`, `oc_filecache`, `oc_filecache_extended`, `oc_files_trash`, `oc_file_locks`, `oc_file_metadata`, `oc_flow_checks`, `oc_flow_operations`, `oc_flow_operations_scope`, `oc_groups`, `oc_group_admin`, `oc_group_user`, `oc_jobs`, `oc_known_users`, `oc_login_flow_v2`, `oc_migrations`, `oc_mimetypes`, `oc_mounts`, `oc_notifications`, `oc_notifications_pushhash`, `oc_notifications_settings`, `oc_oauth2_access_tokens`, `oc_oauth2_clients`, `oc_open_local_editor`, `oc_photos_albums`, `oc_photos_albums_files`, `oc_photos_collaborators`, `oc_preferences`, `oc_privacy_admins`, `oc_profile_config`, `oc_properties`, `oc_ratelimit_entries`, `oc_reactions`, `oc_recent_contact`, `oc_schedulingobjects`, `oc_share`, `oc_share_external`, `oc_storages`, `oc_storages_credentials`, `oc_systemtag`, `oc_systemtag_group`, `oc_systemtag_object_mapping`, `oc_text_documents`, `oc_text_sessions`, `oc_text_steps`, `oc_trusted_servers`, `oc_twofactor_backupcodes`, `oc_twofactor_providers`, `oc_users`, `oc_user_status`, `oc_user_transfer_owner`, `oc_vcategory`, `oc_vcategory_to_object`, `oc_webauthn`, `oc_whats_new`;



Ich bin gerade ziemlich planlos....
 
Last edited:
mysql -u root@localhost -p

Wenn im Log steht "Access denied for user 'NEXTCLOUD'@'127.0.0.1'" dann bedeutet das nicht, das der Benutzername hier 'NEXTCLOUD'@'127.0.0.1' ist, sondern dass der Benutzer mit dem Namen "NEXTCLOUD" sich vom System mit der Adresse 127.0.0.1 versucht hat anzumelden und dass dieser mittels "Access Denied" abgelehnt wurde; d. h. der Benutzer NEXTCLOUD hat keine Rechte, sich vom System mit der IP 127.0.0.1 anzumelden. Das ist zugegebenermassen nicht vollkommen intuitiv selbsterklärend.

Die Angabe der IP-Adresse beim GRANT des MySQL dient nur dazu dass der Server den User bzw. Client prüft. Das muss nur beim GRANT so angegeben werden. Nicht beim Login.

Desweiteren würde ich für MySQL-Benutzernamen nur aus den Zeichen aus dem Zeichenvorrat "a-z","A-Z", "0-9" und evtl. ein "_"(=Unterstrich) zu zusammensetzen. Also keinen "-" (Bindestrich). Lege einen neuen Benutzer an, gibt Ihm die Rechte und dann sollte das tun.

Hier ist ein Tutorial dazu:
https://www.running-cool.de/mysql/user-anlegen-und-rechte-zuweisen.html
 
Last edited:
Danke :)
Der Username war umgeschrieben, der echte enthält keine Sonderzeichen.
Und die User-Daten und Rechte stimmen eigentlich, sprich User NETXTCLOUD sollte sich durchaus mit Passwortabfrage über den Localhost anmelden können. Das kann ich ja in phpmyadmin schnell ablesen. Und daß die PW stimmen sehe ich in der Konsole...
 
Back
Top