У меня странная ошибка. Я зарегистрирован в локальном Mysql как root через командную строку. После создания базы данных:
create database some_db;
Затем предоставление прав некоторым пользователям:
grant all privileges on some_db.* to [email protected]'localhost' identified by 'password';
Это дает ошибку:
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'some_db'
Разрешения для root (show grants;) показывают:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*8919C53DC7A4DFBF3F8584382E96463583EB7FDA'
Я также убедился, что я зарегистрирован как root:
select current_user();
И это подтверждает, что я зарегистрирован как "root" @ "localhost"
Я создал базу данных и назначил пользователя несколько раз и никогда не имел проблемы. Почему я не могу назначить пользователя базе данных, созданной root, во время входа в систему под именем root?
p.s. от других сообщений, я думаю, что проблема может быть вызвана некоторыми странными пользователями.
select host, user from mysql.user;
Некоторые пользователи, которых я еще не добавил, но не отображаются:
MY_COMPuTER_name.local | ''
MY_COMPuTER_name.local | root
Я попытался удалить этих пользователей
drop user 'root'@'MY_COMPuTER_name.local';
drop user ''@'MY_COMPuTER_name.local';
Однако, пока он заявляет, что запрос выполняется успешно, пользователи не отбрасываются даже после привилегий flush. Почему я не могу удалить пользователей? Любая помощь очень удобна