当前位置: 首页 > news >正文

nodejs remote链接mysql数据库总结

nodejs链接远端mysql,这个折腾了一个上午才搞定。本以为,直接使用就OK了,但是发现不行,后来查阅各种资料后,终于找到了方法。

nodejs链接远端数据库主要分为几个步骤:

1)安装node-mysql驱动包

2)配置mysql数据库

3)设置系统防火墙

一 安装node-mysql安装包,或许这个是比较简单的,直接采用npm安装工具安装就可以了,npm install mysql --save

二 配置mysql数据库

 mysql服务器端配置远端访问数据库的用户名和密码,这个可以通过直接修改mysql数据库下的user表,增加自己的用户名和密码,或者通过grant 授权的方式给要访问数据的用户名和设置访问权限,起主要的语句为:

  grant select,insert ,update on 数据库.表 to username@'hostname' identified by 'password' 

     flush privileges;

    同时要注意的是: 

   (1)flush privileges 一定要执行,修改完mysql配置之后,需要重启,我用的是ubuntu12.04 server 所以我的重启命令是 /etc/init.d/mysql restart;

   (2) 还要注意mysql的配置文件的配置: /etc/mysql/my.cnf  其中,如果要进行remote access 的话,那么需要把bind-address:地址改为0.0.0.0.

   (3)注意myqls.user表中的,用户名对应的host,如果仅是特定的地址或域名,那么一定要指定,如果是任意的地址,那么改为%即可。

三 防火墙的设置
    我的访问数据库服务器的策略是通过windows下的web站点(nodejs)访问远端linux下的mysql ,所以首先需要ping通网络,如果网络ping的时候,没有问题,那么就需要通过     telnet工具访问远端借口是否可以访问。如telnet ip port,如果访问有问题的话,那么说明linux下的防火墙配置有问题,需要放开3306端口的流量进入。

    配置防火墙,需要修改或则增加iptables的规则,在unbuntu12.04 server, 下可以通过iptables -L 查看防火墙的配置。
    然后通过 ,iptables命令去修改防火墙配置。由于我的目标主要是想放开3306端口,所以我就采用了如下的命令设置防火墙。

           iptables -A INPUT -p tcp -i eth0 --dport 3306 -j ACCEPT    

    防火墙设置之后,需要保存 iptables -save.
    想要防火墙下次启动时仍然有效,需要把规则保存到独立的文件中,下次启动的时候随着系统的启动,防火墙自动进行配置。假设防火墙配置规则保存到iptable.rules文件中,       那么在保存的时候,需要使用
     iptable-save >> iptables.rules
    然后设置开机启动自动配置,修改/etc/network/interfaces文件,在对应的网卡下增加:

     pre-up iptables-restore < /etc/iptables-rules. 保存即可。

    从而完成了防火墙的配置。

 

    比较简单,但是折腾了很久,记录一下。

    





 

转载于:https://www.cnblogs.com/freshcoder/p/5610261.html

相关文章:

  • 网站日志分析工具:WebLog Expert Lite
  • 微信查询高考分数已支持20个城市
  • ubuntu图形界面调出命令行
  • bootstrap常用类
  • Activity的生命周期【翻译】
  • 在web.xml中classpath和classpath*的区别
  • Python day two
  • ubuntu下搭建主/备RabbitMQ集群
  • JSP错误页面的处理和exception对象
  • AVL树相关操作
  • Linux有问必答:Linux上如何查看某个进程的线程
  • C#动态调用WCF
  • ora_01810:格式代码出现两次
  • 前段
  • 用Redis存储Tomcat集群的Session
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  •  D - 粉碎叛乱F - 其他起义
  • es6--symbol
  • JavaScript服务器推送技术之 WebSocket
  • javascript数组去重/查找/插入/删除
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Joomla 2.x, 3.x useful code cheatsheet
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • tensorflow学习笔记3——MNIST应用篇
  • Zsh 开发指南(第十四篇 文件读写)
  • 初探 Vue 生命周期和钩子函数
  • 对JS继承的一点思考
  • 简单数学运算程序(不定期更新)
  • 那些年我们用过的显示性能指标
  • 如何使用 JavaScript 解析 URL
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 进程与线程(三)——进程/线程间通信
  • ​MySQL主从复制一致性检测
  • #### go map 底层结构 ####
  • #FPGA(基础知识)
  • #vue3 实现前端下载excel文件模板功能
  • #考研#计算机文化知识1(局域网及网络互联)
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (+4)2.2UML建模图
  • (1)(1.13) SiK无线电高级配置(五)
  • (4.10~4.16)
  • (MATLAB)第五章-矩阵运算
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .Mobi域名介绍
  • .mysql secret在哪_MySQL如何使用索引
  • .NET delegate 委托 、 Event 事件,接口回调
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET Standard 的管理策略
  • .net反混淆脱壳工具de4dot的使用
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042