2016-08-22 3 views
1

エラーは1045です。しかし、私のユーザ名とパスワードは正しいです。MySQLサーバに接続するときに1045

私はrootアカウントでのphpMyAdminにログインしているとき、私は

を受ける

マイusersテーブル

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

(192.168.0.240:3306に)192.168.0.18からfcapdiとして接続しています

#1045 - ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワード:YESを使用)

しかし、私のアカウントdbaは正常にログインできます。何が起こっている?

また、私はMySQLインスタンスが2つのNICを持ち、2(内部)ネットワーク上に座っているサーバーに座っていることに注意してください。 1つはローカルドメイン192.168.0/24で、もう1つはより大きなドメイン10.228./16です。

10.228./16ネットワークからfcapdiアカウントでログインできます。しかし、192.168.0./24ネットワークからではありません。

+0

:代わりにauthentication_string

クリーンアップに対してそれを行います。すべてのパスワードを同じものにリセットする – Drew

+0

'ユーザ、ホスト、パスワードをmysql.user'から選択するか、' select user、host、authentication_string from 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

複数のホストからこのDBに接続する必要があります。 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という名前の列です。あなたが持っているどのように多くのルートユーザを決定

drop user 'joe1'@'%'; 
drop user 'joe1'@'127.0.0.1'; 
drop user 'joe1'@'localhost'; 
関連する問題