###前提・実現したいこと
Node.jsでmysqlを使い接続しようとしたところ、下記のエラーが出て接続することができませんでした。該当ユーザにパスワードは現在設定していません。なにかMySQL側でやるべき設定を忘れているようなので、どなたか心当たりありましたらご教示いただけると幸いです。
###発生している問題・エラーメッセージ
Error: ER_DBACCESS_DENIED_ERROR: Access denied for user ''@'localhost' to database 'xxxx'
###該当のソースコード
var mysql = require("mysql"); var connection = mysql.createConnection({ host: 'localhost', user: 'xxxxx', password: '', port: 3306, database: 'xxxx' }); connection.connect(function(err) { if (err) { console.error("error mysql connection"); console.error(err.stack); } else { console.log("connected mysql:" + connection.threadId); } });
権限のチェック
mysql> SHOW GRANTS for 'xxxxx'@'%'; +-------------------------------------------------+ | Grants for xxxxx@% | +-------------------------------------------------+ | GRANT USAGE ON *.* TO 'xxxxx'@'%' | | GRANT ALL PRIVILEGES ON `%`.* TO 'xxxxx'@'%' | +-------------------------------------------------+
###試したこと
- createConnectionのパラメータをrootユーザ(パス付き)に設定を変えたところ動作しました。
- xxxxxユーザはMySQL側でxxxxデータベースへのアクセス権は付与しています。
- xxxxxユーザのLimit to Hosts Matchingは今は%でワイルドカード指定にしています。
###補足情報(言語/FW/ツール等のバージョンなど)
Windows 8.1
Node.js v6.2.1
MySQL(Node.js) 2.10.2
MySQL(XAMPP) 5.6.28-76.1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。