remoteMysql
##关于腾讯云平台免费mysql实例建立和nodejs如何连接腾讯云mysql数据库
*所有源码地址均在我的github上,地址(https://github.com/TimLiu1/remoteMysql.git) ,大家记得去的时候给我点赞了,毕竟也是小认真了一把 可以在上面提任何问题,我会及时解答 @TimLiu 注,大家运行的时候一定要把数据库配置改成自己的
一、申请数据库实例
-
首先是登陆腾讯云,@腾讯云链接 ,点进区之后点登陆,登陆之后可以领取新手礼包,如图
-
进入云产品->数据库->CDB for MYSQL->立即选购,选购最低配的可用礼包抵扣使用一个月,购买完成
-
主页->右上角产品管理->使用中的数据库,这时我们会看见一个实例,首先我们进入管理页面对实例进行一些基本的设置
实例名可以随意更改,外网地址必须开启,否则我们就不能在自己的项目中和本地访问云数据库。进入账号管理页面修改自己的root密码,然后点击右上角的登录数据库 -
登陆完成之后如下图 这个和本地客户端操作基本相同,我就不详细阐述了
二、使用一个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)
兄弟, 不错 但是你把你数据库信息传上去了… 我连上去了
十分感谢,已修复,希望没多少人download,辛亏没重要信息,否则就流汗了
@TimLiu1 Commit 记录还有, 你要不把这个repo删了重新传一次吧
好的好的
搞定了,两颗star又没了,心情不美丽了,真的灰常感谢你大神@wssgcg1213
关于配置文件, 你可以引用 用两份配置, 一份默认, 一份覆盖 gitignore掉覆盖的那一份, 做好容错, 就可以了
下次把变动的文件全部往配置文件里面去 更模块化一些
我关心的是免费。。。 永久免费?