项目中需要使用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表中的数据,代码如下:
- varmysql=require(‘db-mysql’);
- newmysql.Database({
- hostname:‘localhost’,
- user:‘root’,
- password:‘password’,
- database:‘test’
- }).connect(function(error){
- if(error){
- returnconsole.log(‘CONNECTIONerror:‘+error);
- }//phpfensi.com
- this.query().
- select(‘*’).
- from(‘user’).
- execute(function(error,rows,cols){
- if(error){
- console.log(‘ERROR:‘+error);
- return;
- }
- for(vari=0;i<rows.length;i++){
- console.log(rows[i].name);
- }
- });
- });
很简单,然后我用行这个js,但是出现了问题:
- throwe;//process.nextTickerror,or‘error’eventonfirsttick
- ^
- Error:Unabletoloadsharedlibrary/Users/wanzhang/WebstormProjects/ReadMysql/node_modules/db-
- --代码如下
- mysql/build/Release/mysql_bindings.node
- atObject..node(module.js:472:11)
- atModule.load(module.js:348:31)
- atFunction._load(module.js:308:12)
- atModule.require(module.js:354:17)
- atrequire(module.js:370:17)
- atObject.<anonymous>(/Users/wanzhang/WebstormProjects/ReadMysql/node_modules/db-mysql/db-mysql.js:18:15)
- atModule._compile(module.js:441:26)
- atObject..js(module.js:459:10)
- atModule.load(module.js:348:31)
- atFunction._load(module.js:308:12)
解决方法:
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
然后再运行这个js文件,ok,会打印出表中数据,上面就是nodejs访问mysql一个简单例子.