ユーザーを追加してパスワードも設定しているのにネットワーク接続がエラーになる。
[hoge@unko ~]$ mysql -uviewer -ppass -h192.168.1.2 testdb ERROR 1045 (28000): Access denied for user 'viewer'@'unko.localdomain' (using password: YES)
接続先がlocalhost(UNIXドメインソケット)のときは正常に接続したので ネットワークの問題だったが
原因:名前解決をしているため
対処:名前解決をさせない
次のような設定を追記して問題は解決した
/etc/my.cnf.d/skipname.cnf
[mysqld] # 名前解決をしない skip-name-resolve
これをしないと 名前解決ができてしまったときに % に引っかからずエラーになるらしい。
MariaDB5.5 で発生したが、MariaDB10.1 では発生してないので 古い仕様かバグなんだろう多分。
解決までに3時間くらいかかった
問題解決後に、裏取りをしていたところ 次のページが検索に引っかかった。
stackoverflow.com
ユーザーとパスワードは設定されている?
次のように設定し、設定されていることを確認
CREATE USER 'viewer'@'%' IDENTIFIED BY 'pass'; CREATE USER 'viewer'@'localhost' IDENTIFIED BY 'pass'; GRANT SELECT ON testdb.* TO 'viewer'@'%'; GRANT SELECT ON testdb.* TO 'viewer'@'localhost'; FLUSH PRIVILEGES;
SELECT user,host FROM mysql.user WHERE user='viewer'; +--------+-----------+ | user | host | +--------+-----------+ | viewer | % | | viewer | localhost | +--------+-----------+
ネットワーク接続を受け付けている?
ネットワークは大丈夫なことを確認
# netstat -ntpl (中略) tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 4365/mysqld
# iptables-save (中略) -A IN_public_allow -p tcp -m tcp --dport 3306 -m conntrack --ctstate NEW -j ACCEPT