##关于腾讯云平台免费mysql实例建立和nodejs如何连接和操作腾讯云mysql数据库
发布于 10 年前 作者 TimLiu1 12378 次浏览 最后一次编辑是 9 年前 来自 分享

remoteMysql

 ##关于腾讯云平台免费mysql实例建立和nodejs如何连接腾讯云mysql数据库

*所有源码地址均在我的github上,地址(https://github.com/TimLiu1/remoteMysql.git) ,大家记得去的时候给我点赞了,毕竟也是小认真了一把 可以在上面提任何问题,我会及时解答 @TimLiu 注,大家运行的时候一定要把数据库配置改成自己的

 一、申请数据库实例
  1. 首先是登陆腾讯云,@腾讯云链接 ,点进区之后点登陆,登陆之后可以领取新手礼包,如图 one.png

  2. 进入云产品->数据库->CDB for MYSQL->立即选购,选购最低配的可用礼包抵扣使用一个月,购买完成

  3. 主页->右上角产品管理->使用中的数据库,这时我们会看见一个实例,首先我们进入管理页面对实例进行一些基本的设置
    实例名可以随意更改,外网地址必须开启,否则我们就不能在自己的项目中和本地访问云数据库。进入账号管理页面修改自己的root密码,然后点击右上角的登录数据库 two.png

  4. 登陆完成之后如下图 这个和本地客户端操作基本相同,我就不详细阐述了 three.png

     二、使用一个demo来说明如何操作云mysql数据库
    

1.在实例上上新建一个为nodejs的数据库,然后新建一个为employee的表,新建四个字段 name sex age email除了年龄为int其它的全部为varchar格式 2.新建一个TimLiu的文件夹,打开cmd,cd TimLiu, 初始化项目npm init ,按照它的提示一步一步的操作即可,安装mysql模块,npm insitall mysql, 这个模块的作用主要是连接mysql数据库。 3.新建一个model.js 文件,

 var mysql = require(‘mysql’); 
 var connection = mysql.createConnection({
 host:'',
 user:'root',
 password:'123abc',
 database:' nodejs',
 port:6445
 })
 connection.connect();

这里的host为我们在腾讯云上开通的外地址,端口号也是在外网地址里面,注意要把外网地址写分开,用户为默认的管理员用户,密码为我们在云平台上设置的密码,数据库为我们创建的nodejs数据库。 接下来我们对数据库进行增删改查操作

/**
 * 增加员工
 */
function addEmployee(){
 var employeeInsertSql = 'INSERT INTO employee(name,sex,age,email) VALUES(?,?,?,?)';
 var employeeInsertSql_Params = ['Tim','男',22,'18818216454@163.com']
 connection.query(employeeInsertSql,employeeInsertSql_Params,function(err,result){
 if(err) console.log('[INSERT ERR]-',err.message);
 console.log(result);
 }) 
}
addEmployee()
 }
/**
 * 更新员工
 */ 
 
function insertEmployee(){
 var employeeUpdateSql = "UPDATE employee SET name = ? WHERE age =?";
 var employeeUpdateSql_Params = ['Peter',22];
 connection.query(employeeUpdateSql,employeeUpdateSql_Params,function(err,result){
 if(err) console.log('[UPDATE ERR]-',err.message);
 console.log(result);
 })
}
 insertEmployee();
 
/**
 *查询员工
 */ 
function getEmployee(){
 var employeeGetSql = "SELECT * FROM employee";
 connection.query(employeeGetSql,function(err,result){
 if(err) console.log('[SELECT ERR]-',err.message);
 console.log(result);
 })
}

getEmployee();

/**
 *删除员工
 */ 
function deleteEmployee(){
 var employeeDeleteSql = "DELETE employee WHERE name = ?";
 var employeeDeleteSql_Params = 'Peter';
 connection.query(employeeDeleteSql,employeeDeleteSql_Params,function(err,result){
 if(err) console.log('[DELETE ERR]-',err.message);
 console.log(result);
 })
 
}
deleteEmployee();

这样我们就可以愉快的操作数据库了

如果大家想把项目更模块化操作,可在model下面新建一个employee_two.js,代码如下

var mysql = require('mysql');
var connection = mysql.createConnection({
 host:'',
 user:'root',
 password:'',
 database:'nodejs',
 port:
})
connection.connect();
/**
 * 增加员工
 * @param {String} employee
 * @param {Function} callback
 */
exports.addEmployee=function(employee,callback){
 var employeeInsertSql = 'INSERT INTO employee(name,sex,age,email) VALUES(?,?,?,?)';
 var employeeInsertSql_Params = [employee.name,employee.sex,employee.age,employee.email]
 connection.query(employeeInsertSql,employeeInsertSql_Params,callback)
}
/**
 * 更新员工
 * @param {String} employee
 * @param {Function} callback
 */
exports.updateEmployee = function(name,age){
 var employeeUpdateSql = "UPDATE employee SET name = ? WHERE age =?";
 var employeeUpdateSql_Params = ['Peter',22];
 connection.query(employeeUpdateSql,employeeUpdateSql_Params,function(err,result){
 if(err) console.log('[UPDATE ERR]-',err.message);
 console.log(result);
 })
}
/**
 * 查询员工
 * 
 */
exports.getEmployee = function(){
 var employeeGetSql = "SELECT * FROM employee";
 connection.query(employeeGetSql,callback)
}
/**
 * 删除员工
 * @param {String} name
 */
exports.deleteEmployee = function(name){
 var employeeDeleteSql = "DELETE employee WHERE name = ?";
 var employeeDeleteSql_Params = 'Peter';
 connection.query(employeeDeleteSql,employeeDeleteSql_Params,callback)
 
}
再在根目录下新建index.js,代码如下
var db = require('./model/employee_two');
//增加员工
var employee = {
 name:'lisa',
 age:22,
 sex:"女",
 email:'99533212@qq.com'
}
db.addEmployee(employee,function(err,result){
 if(err) console.log("[INSERT err]-",err.message)
 console.log(result);
})
//删除员工
db.deleteEmployee('Peter',function(err,result){
 if(err) console.log("[DELETE err]-",err.message)
 console.log(result);
})
//更新员工
db.updateEmployee('Tim',23,function(err,result){
 if(err) console.log("[UPDATE err]-",err.message)
 console.log(result);
})
//查询员工
db.getEmployee(function(err,result){
 if(err) console.log("[GET err]-",err.message)
 console.log(result);
})
```![one.png](//static.cnodejs.org/Fja7N44qOUfYI5NRMIFbQJ2VdfwP)![two.png](//static.cnodejs.org/FgvmO7xodwOWOqbxOyYsK_EBauW8)![three.png](//static.cnodejs.org/Fjk0axAHWOZoK83QvD9CUyPLoMGg)
8 回复

兄弟, 不错 但是你把你数据库信息传上去了... 我连上去了 QQ20160510-0.png

十分感谢,已修复,希望没多少人download,辛亏没重要信息,否则就流汗了

@TimLiu1 Commit 记录还有, 你要不把这个repo删了重新传一次吧

好的好的

搞定了,两颗star又没了,心情不美丽了,真的灰常感谢你大神@wssgcg1213

关于配置文件, 你可以引用 用两份配置, 一份默认, 一份覆盖 gitignore掉覆盖的那一份, 做好容错, 就可以了

下次把变动的文件全部往配置文件里面去 更模块化一些

我关心的是免费。。。 永久免费?

回到顶部

AltStyle によって変換されたページ (->オリジナル) /