MySQL error 1045 means the database server rejected the credentials and connection origin presented by phpMyAdmin. The message names both values because 'guide_operator'@'localhost' and 'guide_operator'@'198.51.100.20' are separate database accounts even though they share a username.
This repair targets phpMyAdmin cookie authentication when a read-only account exists only for localhost but phpMyAdmin connects from another host or container. If the account row already matches the source shown in error 1045, the password, account lock, or authentication plugin is the more likely cause.
The exact-host account receives a new credential and only SELECT on the application database. The old password must not remain in the phpMyAdmin login form; a successful session must identify the new account origin, reject the mysql system database, and return data from the permitted application database.

$ mariadb --user=root --password
Password-based administrator login is shown. Servers configured for Unix-socket administrator authentication commonly provide the equivalent local administrative session through sudo mariadb.
MariaDB [(none)]> SELECT User, Host FROM mysql.user WHERE User = 'guide_operator'; +----------------+-----------+ | User | Host | +----------------+-----------+ | guide_operator | localhost | +----------------+-----------+
The missing 198.51.100.20 row matches the phpMyAdmin source named in error 1045. The address is a documentation example; the reported source from the failing login is the required host value.
MariaDB [(none)]> SHOW GRANTS FOR 'guide_operator'@'localhost'; ##### snipped ##### GRANT SELECT ON `inventory_app`.* TO `guide_operator`@`localhost`
The displayed database-level line defines the scope reproduced for the exact-host account. Global, administrative, or write privileges require their own least-privilege decision.
MariaDB [(none)]> CREATE USER 'guide_operator'@'198.51.100.20' IDENTIFIED BY '<new-strong-password>';
The password token represents the unique credential entered later in phpMyAdmin. A % host would admit clients beyond the recorded phpMyAdmin source.
MariaDB [(none)]> GRANT SELECT ON inventory_app.* TO 'guide_operator'@'198.51.100.20';
MariaDB [(none)]> exit Bye





SELECT COUNT(*) FROM mysql.user;



SELECT CURRENT_USER(), DATABASE(), COUNT(*) AS visible_devices FROM devices;
