2016-08-22 90 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'的访问(使用密码:YES)

但我的帐户dba可以正常登录。到底是怎么回事?

另外我想我应该注意到MySQL实例坐在一个有2个NIC并位于2(内部)网络的服务器上。一个是本地域192.168.0/24另一个是较大域10.228./16

我可以通过10.228./16网络的fcapdi帐户登录。但不是来自192.168.0./24网络。

+0

确定你有多少根用户拥有。将所有密码重置为相同的东西 – Drew

+0

'从mysql.user'选择用户,主机,密码或'从mysql.user'选择用户,主机,身份验证字符串......眼球哈希 – Drew

+0

好的快速问题。当我有多个在同一主机上的root用户时,如何更改他们的密码?我目前有'root @ localhost','root @ 127.0.1.7','root @ :: 1'和'root @ tester',但是我有一个'root @ localhost,tester,127.0.0.1' – Valarauca

回答

1

执行:

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

与服务器上的GRANT权限的用户,并尝试连接。

+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';