2016-08-22 3 views
1

Ошибка 1045. Но мое имя пользователя и пароль верны.1045 при подключении к серверу MySQL

я подключаю в fcapdi от 192.168.0.18 (до 192.168.0.240:3306) стола

Моих пользователей

MariaDB [(none)]> SELECT User,Host FROM mysql.user; 
+--------+-----------+ 
| User | Host  | 
+--------+-----------+ 
| dba | %   | 
| fcapdi | %   | 
| root | 127.0.0.1 | 
| root | ::1  | 
|  | localhost | 
| root | localhost | 
|  | tester | 
| root | tester | 
+--------+-----------+ 

Когда я Войти с PhpMyAdmin с root счетом я получаю

# 1045 - Доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: ДА)

Но моя учетная запись dba может войти в систему. Что происходит?

Также я думаю, что экземпляр MySQL сидит на сервере, который имеет 2 сетевых адаптера и находится на 2 (внутренних) сетях. Один из них - это локальный домен 192.168.0/24, другой - более крупный домен 10.228./16.

Я могу войти через учетную запись fcapdi из сети 10.228./16. Но не от сети 192.168.0./24.

+0

определить, сколько пользователей корневой у вас есть. Сбросьте все свои пароли на одну и ту же вещь – Drew

+0

'выберите пользователя, хост, пароль от mysql.user' или' выберите пользователя, хост, authentication_string из mysql.user' ... eyeball the hashes – Drew

+0

Хорошо, быстро вопрос. Когда у меня есть несколько пользователей root, которые находятся на одном хосте, как мне изменить их пароли? В настоящее время у меня есть 'root @ localhost',' root @ 127.0.1.7', 'root @ :: 1' и' root @ tester', но потом у меня есть 'root @ localhost, tester, 127.0.0.1' – Valarauca

ответ

1

Execute:

GRANT ALL ON 
    your_database_schema_name.* to 
    'fcapdi'@'192.168.0.18' IDENTIFIED BY 'your_connection_password'; 

как пользователь с правами ГРАНТ на сервере и попробуйте подключиться.

+0

Казалось бы, он хочет% – Drew

+0

, если%, он позволяет с любого IP-адреса, с которого вы подключаетесь. Это для безопасности указать конкретный IP-адрес. –

+0

Мне нужно подключиться от нескольких хостов к этой БД. fcapdi - это учетная запись только для вставки. Это будет на десятках рабочих станций. Также символ '%' должен разрешать несколько IP-адресов правильно? Кроме того, это не объясняет, почему «root @ localhost» будет отклонено логин. – Valarauca

1
As an aside question under comments 

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newPass123^'); 
SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newPass123^'); 
SET PASSWORD FOR 'root'@'etc_etc' = PASSWORD('newPass123^'); 

you can also do it in a single update statement but it depends on your mysql version 

create user 'joe1'@'localhost' identified by 'blah'; 
create user 'joe1'@'127.0.0.1' identified by 'afadfafsdblah2'; 
create user 'joe1'@'%' identified by 'djdjdjjdjdd';; 


select user,host,password from mysql.user where user='joe1'; 
+------+-----------+-------------------------------------------+ 
| user | host  | password         | 
+------+-----------+-------------------------------------------+ 
| joe1 | localhost | *0380BEA27363E56C37F0BFDA438F429080848051 | 
| joe1 | %   | *7BEAF25E9BDFBDEF5A9B9E4A37023721B668FA51 | 
| joe1 | 127.0.0.1 | *5CD978E569B31B1558E5C1D0972E6E02516893BF | 
+------+-----------+-------------------------------------------+ 

update mysql.user set password=PASSWORD('nEW_COMMon_password762') where user='joe1'; 
-- 3 rows updated 

select user,host,password from mysql.user where user='joe1'; 
+------+-----------+-------------------------------------------+ 
| user | host  | password         | 
+------+-----------+-------------------------------------------+ 
| joe1 | localhost | *A248B352CE5BF750A11AA9BA253B5F191C721D1A | 
| joe1 | %   | *A248B352CE5BF750A11AA9BA253B5F191C721D1A | 
| joe1 | 127.0.0.1 | *A248B352CE5BF750A11AA9BA253B5F191C721D1A | 
+------+-----------+-------------------------------------------+ 

Для Mysql 5.7 это не столбец с именем password. Вместо этого делать против authentication_string

субботника:

drop user 'joe1'@'%'; 
drop user 'joe1'@'127.0.0.1'; 
drop user 'joe1'@'localhost'; 
Смежные вопросы