2012-05-04 104 views
1

我试图获取使用mysql工作的node.js应用程序。我执行sudo节点app.js和我得到这个错误:获取错误:使用mysql拒绝Node.js的访问

Express server listening on port 80 in development mode 

events.js:48 
     throw arguments[1]; // Unhandled 'error' event 
        ^
Error: Access denied for user 'root'@'localhost' (using password: YES) 
    at cmd.process_packet (/Users/.../Documents/Code/.../node_modules/mysql-native/lib/mysql-native/command.js:35:15) 
    at SocketClient.dispatch_packet (/Users/.../Documents/Code/.../node_modules/mysql-native/lib/mysql-native/socketclient.js:105:32) 
    at Socket.<anonymous> (/Users/.../Documents/Code/.../node_modules/mysql-native/lib/mysql-native/socketclient.js:59:18) 
    at Socket.emit (events.js:67:17) 
    at TCP.onread (net.js:362:31) 

我设置了mysql的安全用户名和密码,但它不要求我输入密码,除了一个sudo的。我是一个有node.js和尤其是mysql的初学者,所以任何帮助将不胜感激。

+0

你的应用程序是否附带了一个配置文件,你必须编辑它以授予它的权限?你是否以'root'身份运行应用程序? – sarnold

+0

我在哪里可以找到配置文件?我不确定根究竟是什么,对不起。 – Anoel

+0

推测你必须配置_something_来告诉应用程序使用哪个服务器和端口或套接字来连接到MySQL;该配置还将包含用户名和密码。 'root'是超级用户帐户,其中uid为'0'。你是否在启动应用程序时以'root'的身份运行? – sarnold

回答

1

所以我联系了一位曾经做过这件事的人,他帮助过我。基本上我用mysql -u root -p连接mysql,输入我的密码,创建数据库并使用该数据库并输入所有数据库信息。然后在db.auth下的api.js中,在括号中,我将数据库名称,我的用户名和密码分别作为由逗号分隔的字符串。在一个单独的终端选项卡中,我运行了node.js应用程序并运行。