В MariaDB в Windows я создаю пользователя и базу данных со следующими
flush privileges;
CREATE USER 'test-one'@'%' IDENTIFIED BY 'test-one';
GRANT USAGE ON *.* TO 'test-one'@'%' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE DATABASE IF NOT EXISTS `test-one`;
GRANT ALL PRIVILEGES ON `test-one`.* TO 'test-one'@'%';
После этого я не могу подключиться к базе данных
.\mysql.exe -u "test-one" -p
Enter password: ********
ERROR 1045 (28000): Access denied for user 'test-one'@'localhost' (using password: YES)
Аналогичное поведение для
.\mysql.exe -u "test-one" -p -h 127.0.0.1
Что работает (замените фактическим именем хоста). \ Mysql.exe -u "test-one" -p -h
Это задумано? Подстановочный знак имени хоста "%" не включает ни localhost, ни 127.0.0.1.
Это верно до тех пор, пока анонимные пользователи существуют в базе данных. Когда вы удаляете этих пользователей, localhost
и 127.0.0.1
начать сопоставление подстановочных знаков.
Обратите внимание, что учетные данные, добавленные при создании пользователя с подстановочным знаком «%», не будут предоставлять доступ во всех случаях. Например, некоторые системы поставляются с анонимным пользователем localhost, и при подключении с localhost это будет иметь приоритет.
Этих анонимных пользователей также можно удалить, когда mysql_secure_installation
скрипт запускается:
По умолчанию установка MariaDB имеет анонимного пользователя, что позволяет любому входить в MariaDB без необходимости создания учетной записи пользователя. Это предназначено только для тестирования и для более плавной установки. Вы должны удалить их перед переходом в производственную среду.
Удалить анонимных пользователей? [Да / Нет]