simov / express-admin

MySQL, MariaDB, PostgreSQL, SQLite admin for Node.js
MIT License
1.17k stars 223 forks source link

EADDRINUSE #64

Closed oocar closed 10 years ago

oocar commented 10 years ago

My configuration:

My config.json: { "mysql": { "database": "xxxxx", "user": "xxxxx", "password": "xxxxx" }, "server": { "port": 3306 }, "app": { "layouts": true, "themes": true, "languages": true } }

The error: connect.multipart() will be removed in connect 3.0 visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives connect.limit() will be removed in connect 3.0

events.js:72 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoException (net.js:904:11) at Server._listen2 (net.js:1042:14) at listen (net.js:1064:10) at Server.listen (net.js:1138:5) at Function.app.listen (/home/xxxxxx/node_modules/express-admin/node_modules/express/lib/application.js:533:24)

simov commented 10 years ago

The error says that port 3306 is in use by another process. So you can try with another port. I think port 3306 is used by the mysql database server itself. Express admin on the other hand is application server, and you can't have two applications listening to the same port at the same time.

oocar commented 10 years ago

I though the port was the MySQL port (in my case). So how do you manage MySQL DB which is not on port 3306? for instance, MAMP (on mac) runs on 8889? In a nodeJS environment, natively multi nodes, it would be nice to support multiple instances => multiple hosts/ports. Thanks

simov commented 10 years ago

From the docs you can see that the mysql key can contain any of the connection options provided by the node-mysql module (which includes setting up the port)

oocar commented 10 years ago

Thanks, great.

Our db uses MyISAM tables. Shall we use InnoDB format in order to make express-admin working?

Thanks for you help.

simov commented 10 years ago

I haven't tested with MyISAM, but I don't think there would be any problems with it, because express-admin doesn't rely on actual foreign key constraints. In other words what you configure as relationships in settings.json is purely an application abstraction.

There are no warnings for example if some of your records are going to be deleted by foreign key constraint or left out orphaned. On the other hand if constraint fails you'll receive an error message.

simov commented 10 years ago

Actually what I said about the relationships is not entirely correct. Express Admin will try to remove any inline records when removing their parent record. Also many-to-many records inside the link table are being removed as well.

In any case if the constraint fails, the actual database error is shown inside the listview.

oocar commented 10 years ago

Thanks Simov. Unfortunately we'll do our own db admin web but I keep an eye on your great tool for future projects. Best.