【问题标题】:how to connecting between socket.io and xampp phpmyadmin sql table如何在socket.io和xampp phpmyadmin sql表之间连接
【发布时间】:2017-07-25 17:32:07
【问题描述】:

我的 socket.io 项目位于 xampp 上的 htdocs 文件中,我在 server.js 文件中定义了数据库,并从命令行检查了我的数据库表是否存在

/opt/lampp/bin/mysql -u root
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| users              |
| fbstatus           |
| information_schema |
| mysql              |
| performance_schema |
| phpmyadmin         |
| test               |
+--------------------+

但是当我在终端中运行node server 时出现此错误

Error: ER_DBACCESS_DENIED_ERROR: Access denied for user ''@'localhost' to database 'users'

我的 package.json 文件

{
  "name": "iochat",
  "version": "1.0.0",
  "description": "Simple chat app",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "shar",
  "license": "ISC",
  "dependencies":{
  "socket.io":"*",
  "express":"*"

  }
}

my server.js file 


var express = require('express');
var app = express();
var  server = require('http').createServer(app);
var io = require('socket.io').listen(server);
var mysql = require('mysql');
var connection = mysql.createConnection({
      host: 'localhost'
    , database: 'users'
    , username: 'root'
    , password: ''
    });
connection.connect();
users = [];
connections = [];

server.listen(process.env.PORT || 3000);
console.log('Server running...');
app.get('/', function(req, res){
    res.sendFile(__dirname + '/index.html');

});

io.sockets.on('connection', function(socket){
    //con
    connections.push(socket);
    console.log('connected: %s socket connected', connections.length);
    connection.query("UPDATE users SET onoff= '8' WHERE UserName='shakoo'");
    //discon
socket.on('disconnect',function(data){
    users.splice(users.indexOf(socket.username),1);
    updateUsernames();
    connections.splice(connections.indexOf(socket), 1);
    console.log('Disconnected: %s sockets connected', connections.length);

  });

  //send message
  socket.on('send message', function(data){
      io.sockets.emit('new message', {msg: data, user: socket.username});

    });

  //new user
  socket.on('new user', function(data, callback){
      callback(true);
      socket.username = data;
      users.push(socket.username);
      updateUsernames();


  });
  function updateUsernames(){
     io.sockets.emit('get users', users);  

  }

});

【问题讨论】:

    标签: php mysql sql xampp


    【解决方案1】:

    问题在这里

    , username: 'root'
    

    应该是这样的

      user: 'root',
    

    我忘记将 mysql 定义添加到 package.json 文件中

      "dependencies":{
      "socket.io":"*",
      "express":"*",
      "mysql": "2.13.0"
    
    
      }
    

    【讨论】:

      猜你喜欢
      • 2015-12-22
      • 2016-01-08
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-09
      • 2020-03-12
      相关资源
      最近更新 更多