项目中需要使用mysql数据库,下面就介绍下怎么访问mysql,这里我使用的mac进行开发的,首先需要下载mysql,地址:http://dev.mysql.com/downloads/mysql/,参考这篇安装http://dev.mysql.com/doc/refman/5.0/en/macosx-installation.html
安装完成后可以在偏好设置里面看到mysql,通过这个可以启动关闭mysql,默认安装完成后,数据库的root用户是没有密码的,为了方便操作,这里我又安装了一个mysql的图形化操作工具sequelpro.
下载地址:http://www.sequelpro.com/download/
以root登录后可以给root用户加上密码,
上面是对mysql安装进行了简单的介绍,下面介绍下怎样使用nodejs访问mysql.
创建express项目,这里我使用的db-mysql
官方网址:http://nodejsdb.org/db-mysql/
根据它上面的介绍,在这之前需要在命令行中运行下面这个命令:
export MYSQL_CONFIG=/usr/local/mysql/bin/mysql_config
然后安装db-mysql,代码如下:
npm install db-mysql
然后编写一个js文件,这里我参考官方例子,自己写了一个读取mysql中的test数据库中user表中的数据,代码如下:
- var mysql = require(‘db-mysql’);
- new mysql.Database({
- hostname: ‘localhost’,
- user: ‘root’,
- password: ‘password’,
- database: ‘test’
- }).connect(function(error) {
- if (error) {
- return console.log(‘CONNECTION error: ‘ + error);
- }
- this.query().
- select(‘*’).
- from(‘user’).
- execute(function(error, rows, cols) {
- if (error) {
- console.log(‘ERROR: ‘ + error);
- return;
- }
- for(var i=0;i<rows.length;i++){
- console.log(rows[i].name );
- }
- });
- });
很简单,然后我用行这个js,但是出现了问题:
- throw e; // process.nextTick error, or ‘error’ event on first tick
-
- ^
- Error: Unable to load shared library /Users/wanzhang/WebstormProjects/ReadMysql/node_modules/db-
-
- mysql/build/Release/mysql_bindings.node
- at Object..node (module.js:472:11)
- at Module.load (module.js:348:31)
- at Function._load (module.js:308:12)
- at Module.require (module.js:354:17)
- at require (module.js:370:17)
- at Object.<anonymous> (/Users/wanzhang/WebstormProjects/ReadMysql/node_modules/db-mysql/db-mysql.js:18:15)
- at Module._compile (module.js:441:26)
- at Object..js (module.js:459:10)
- at Module.load (module.js:348:31)
- at Function._load (module.js:308:12)
解决方法:
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
然后再运行这个js文件,ok,会打印出表中数据,上面就是nodejs访问mysql一个简单例子. |