Мои попытки входа в систему не удаются для новой учетной записи пользователя, которую я создал, и я потратил несколько часов, изучая, как выполняется аутентификация в MySQL, но в конечном итоге я просто не до конца понимаю, как все компоненты сочетаются друг с другом в отношении MySQLЛогика аутентификации сервера.
Все на одном сервере:
MySQL 5.7
phpMyAdmin 4.9
Ubuntu 18.04
Дополнительная информация:
Нетпользователи с пустыми именами в таблице mysql.user
Пароль не имеет специальных символов
Я пробовал localhost, 127.0.0.1 и собственно имя хоста
/ var / log / mysql / error.log показывает только то же самое сообщение об ошибке
СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ
Это делается с помощью:
- phpMyAdmin GUI> вкладка SQL:
flush privileges;
create user 'testuser'@'localhost' identified by 'password!';
grant * on inventory to 'testuser'@'localhost';
flush privileges;
phpMyAdmin GUI> вкладка «Учетная запись пользователя»> «Добавить учетную запись пользователя»
ssh на сервер Ubuntu и создание пользователя из командной строки mysql (с правами root)
Независимо от того, как я это делаю, я могу успешно создать пользователя, но не могу аутентифицироваться.
АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЯ
Вот два способа, которые я попробовал:
1) Из сеанса ssh на сервере Ubuntu:
2) Запустите connect.php с другого компьютера, используя (IE / Chrome / FF):
<?php
$dbhost='localhost';
$dbuser='testuser';
$dbpass='password';
$dbname='inventory';
$conn = new mysqli($dbhost,$dbuser,$dbpass,$dbname);
if($conn->connect_error) {
die("Error: Couldn't connect: ".$conn->connect_error);
}
?>
2)В зависимости от того, использовал ли я 'testuser'@'%'
или 'testuser'@'localhost'
, я получу одну из двух ошибок:
Чтобы исключить проблему с разрешениями, я назначил пользователю все глобальные разрешения, но сообщение об ошибке не изменилось, поэтому я отменил изменение.
Работает select host,user,plugin,authentication_string,account_locked from mysql.user where user='testuser';
показывает:
хост localhost
пользователь testuser
плагин mysql_native_password
authentication_string blahblahblah
account_locked N