#mariadb
#мариадб
Вопрос:
Я пытаюсь создать пользователя sql, который выполняет единственную роль при выполнении процедуры входа в систему, но я продолжаю получать одну и ту же ошибку: Access denied for user 'login'@'localhost' (using password: YES)
Я создал пользователя следующим образом:
CREATE USER IF NOT EXISTS 'user'@'%' IDENTIFIED BY 'password';
GRANT EXECUTE ON procedure `table`.`login` TO 'user'@'%';
Если я пытаюсь войти в систему через терминал или mysql workbench или использовать mysql_real_connect()
функцию в моем C-клиенте, я всегда получаю одну и ту же ошибку.
Комментарии:
1. Убедитесь, что вы тоже бежите
FLUSH PRIVILEGES
; после этого.2. Я создаю базу данных из модели mysql-workbench (.mwb), используя функцию «forward engineer». Но я также попытался вручную создать пользователя, используя ПРИВИЛЕГИИ FLUSH; тоже. Я продолжаю получать ошибку.
3. Я предположил, что вы изменили имя функции и имя пользователя, но на всякий случай вы этого не сделали: вы создаете пользователя «user», но доступ запрещен для пользователя «login», вы перепутали имя пользователя и имя процедуры? Также на основе dba.stackexchange.com/questions/97719 /… это имя вашей базы
table
данных? В этом месте должно быть имя базы данных.
Ответ №1:
Я решил это, переустановив mariadb и используя следующие команды:
mysql_upgrade -u root -p
chown mysql:mysql /var/lib/mysql -R
systemctl enable mysqld
systemctl start mysqld
Моя система — arch linux, это также может быть полезно для лучшего управления установкой mysql или mariadb: https://wiki .archlinux.org/index.php/MySQL