繁体   English   中英

需要帮助使用 node.js 访问 mysql 数据库

[英]Need assistance with accessing mysql database using node.js

我正在尝试运行一个简单的节点示例来访问 mysql 数据库并收到以下错误错误:ER_ACCESS_DENIED_ERROR:用户 'root'@'ubuntu.local' 的访问被拒绝(使用密码:是)

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : '192.168.0.12',
  user     : 'root',
  password : 'password',
  database : 'app'
});

connection.connect();

connection.query('SELECT * from users', function(err, rows, fields) {
  if (err) throw err;

  console.log('The solution is: ', rows[0]);
});

connection.end();

以上是使用 node.js 访问 mysql 的代码。关于我可能做错了什么的任何建议,在此先感谢。

我有一个类似的问题,我得到了同样的错误。

我的答案最终是我使用了不同的端口。 默认情况下,mysql 期望端口为 3306,但我使用的是 MAMP,其中 MySQL 服务器端口被指定为 8889。只要我将端口定义添加到我的数据库连接,就可以了:

var connection = mysql.createConnection({
    port: 8889,
    user: 'root',
    password : 'password',
    database : 'my_database'
});

注意:这是针对使用 MAMP 的 Mac,尚未在 ubuntu 或 Windows 上尝试过。

我遇到了完全相同的问题。 我无法通过 nodejs 中的 mysql 模块连接,但能够通过终端中的 mysql 客户端连接(mysql -u root -p1111 -h localhost mydb)

结果是,mysql 模块将“localhost”转换为 127.0.0.1。 这不会通过 (mysql -u root -p1111 -h 127.0.0.1 mydb) 起作用。 参见第 734 期

所以我不得不在 MySQL 中为 127.0.0.1 设置密码,它解决了问题。

指示

通过控制台连接mysql:

mysql -u root -p mysql

并运行

SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('Add-Your_password-here');

资源

我已经解决这个问题很长时间了,在我做过的所有论坛中,一个简单的解决方案解决了我的问题。 我的密码带有一些特殊字符。 我将其更改为更简单的,如“onlyletters”,并且效果很好。 可能是nodejs mysql模块中的编码问题,我可以......希望它能帮助你们中的一些人......

我有一个类似的问题,我的 nodejs 项目。我使用 knex.js 作为查询生成器及其配置。

当主机值为127.0.0.1时会出现此问题,当我将本地主机更改为 127.0.0.1 时,问题就消失了。

var knex = require('knex')({
    client: 'mysql',
    connection: {
        **host: 'localhost',**
        user: 'userNew',
        password: 'password',
        database: 'appDb'
    }
});

用户可能没有分配任何管理角色,因此他无法访问数据库。 用户至少需要 SELECT 权限才能连接。

更多信息在这里: https ://dev.mysql.com/doc/workbench/en/wb-mysql-connections-navigator-management-users-and-privileges.html

实际上,解决方案比您想象的要容易。 将数据库连接的主机更改为 127.0.0.1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM