node学习(五)——连接数据库(mysql)

本文详细介绍MySQL数据库的安装步骤,包括配置文件修改、服务安装与启动,以及通过Node.js进行数据库操作的方法。同时,提供了初始化密码获取及图形化工具Navicat的使用建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:mysql相关

1.首先安装mysql数据库  参照教程

http://www.runoob.com/mysql/mysql-install.html

2.配置文件修改在安装根目录添加my.ini文件(有些版本是my.cnf 而且直接就有啦 ,我这个版本没有  就自己新建的my.ini文件 这里mysql读取配置文件的顺序是my.ini      my.cnf,所以我就自己加了个my.ini文件)

my.ini

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\\down\\mysql-8.0.13-winx64   
# 设置mysql数据库的数据的存放目录
datadir=D:\\down\\mysql-8.0.13-winx64\\Data  
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

2.进入安装目录初始化    mysqld --initialize --console

这里关键的一句是密码要记住  !!!!!!!!  

2019-01-10T08:43:46.597720Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: fcymwg&M%8r_(密码就是最后localhost后面的:fcymwg&M%8r_)

3.安装服务   mysqld  --install

4.启动服务  net start mysql   (停止服务是:net stop mysql)

5.现在就可以登陆啦 mysql -u root -p (mysql -u 用户名  -p)   输入密码(密码在初始化命令的时候会有)

这里如果密码错误无法进入  可以重置密码 参考http://www.cnblogs.com/reid21/p/9314376.html   (ps : 我没试过, 我都是用的初始密码 )

输入密码就能登陆进去啦,然后就是命令行操作数据库啦    我用的是图形化的navicat软件 

二:node相关

1.安装mysql模块

npm install mysql

2.使用conenction的各种方法主要是query方法(这里主要就是通用的sql语句啦),最后记得用connection.end() 方法来关闭连接 

const mysql = require('mysql');

let connection = mysql.createConnection({
    host:'localhost',
    port: '3306',
    user:'root',
    password:'fcymwg&M%8r_',
    database:'test'
});
connection.connect();
let sql = 'SELECT * FROM info';
connection.query(sql,function (err,result) {
   if(err){
       console.log('查询错误',err);
       return  false;
       
   } 
   console.log('----------result-------');
   console.log(result);
});


connection.end();
### 使用 Node.js 对 MySQL 数据库执行 CRUD 操作 #### 创建连接 为了能够使用 Node.js 执行 CRUD 操作,首先需要建立到 MySQL 数据库连接。这可以通过 `mysql` 库来完成。 ```javascript const mysql = require('mysql'); var connection = mysql.createConnection({ host: 'localhost', user: 'USERNAME_HERE', password: 'PASSWORD_HERE', database: 'DATABASE_NAME_HERE' }); connection.connect(function(error){ if (!!error) { console.log(error); } else { console.log('Connected..!'); } }); module.exports = connection; ``` 这段代码展示了如何配置并测试与本地 MySQL 实例之间的连接[^2]。 #### 增加记录 (Create) 要向表中插入新数据,可以定义 SQL 插入语句并通过 `query()` 方法执行: ```javascript let addSql = "INSERT INTO student(s_name,s_age) VALUES(?,?)"; let addSqlParams = ["Tom", 18]; // 增加一个学生的信息 connection.query(addSql,addSqlParams,function (err, result) { if(err){ console.log('[INSERT ERROR] - ',err.message); return; } console.log('增加成功'); }); ``` 此部分说明了怎样利用参数化查询防止SQL注入攻击的同时添加一条新的学生记录[^5]。 #### 查询记录 (Read) 读取数据库中的现有条目通常涉及 SELECT 语句的应用: ```javascript let selectSql = "SELECT * FROM student WHERE s_id=?"; let queryParam = [id]; // id 是你想查找的学生ID connection.query(selectSql, queryParam ,function (err, result) { if(err){ console.log('[QUERY ERROR] - ',err.message); return; } console.log(result); }); ``` 上述脚本用于检索特定 ID 的学生详情,并打印出来。 #### 更新记录 (Update) 当需要修改已有的数据时,则会用 UPDATE 来更新指定条件下的行: ```javascript let updateSql = "UPDATE student SET s_name=?,s_age=? WHERE s_id=?"; let updateSqlParams = ['Jack', 20, 4]; connection.query(updateSql,updateSqlParams,function (err, result) { if(err){ console.log('[UPDATE ERROR] - ',err.message); return; } console.log('更新受影响的行数:',result.affectedRows); }); ``` 这里演示了一个例子——更改某位学生的姓名年龄。 #### 删除记录 (Delete) 最后,在想要移除某些不再需要的数据项的时候,DELETE 就派上了用场: ```javascript let deleteSql = "DELETE FROM student WHERE s_id=?"; let delSqlParams = [4]; connection.query(deleteSql,delSqlParams,function (err, result) { if(err){ console.log('[DELETE ERROR] - ',err.message); return; } console.log('删除成功:',result.affectedRows); }); connection.end(); ``` 该片段显示了删除具有给定 ID 的学生的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值