The InspIRCd Project
Home | Developers | Wiki | Forums | Bug Tracker | SVN | Download | Blog | Stats
Personal tools

Modules/mysql

From the makers of InspIRCd.

(Redirected from SQL Service Provider Module)
Jump to: navigation, search

Note: If you came to this page looking for the help on m_sql.so, this has been removed in 1.1. The single m_sql.so is now implemented by m_mysql.so and m_pgsql.so.




Description
This module is a service provider module, which means it has no real directly usable functions of its own, however it provides an essential service which is used by other modules. This module allows other modules to access SQL using a unified interface, minimizing the number of persistent connections and abstracting the actual database software from the SQL queries sent to it.
Configuration Tags
To use this module you must define one or more database connections, using tags like the one below:
<database name="mydb"
          username="myuser"
          password="mypass"
          hostname="localhost"
          port="3306"
          id="anytext">

The variables in the tag have the following meanings:

  • name - The name of the database this connection is bound to. This may be any database you have ability to access
  • username - The MySQL username with which you want to access the database
  • password - The password required to access the database
  • hostname - The hostname of the database. Most of the time you will just want localhost here
  • port - The port to connect to if you run your server on a non-standard port.
  • id - The id of the database. Dependent modules will use this ID to refer to the connection, rather than its credentials, so that the credentials are specified only in one place. Any text can be used as the database ID. In the previous version of the SQL API this was an integer, however it is now a string to allow for more descriptive IDs.

You may define as many databases as you wish, but remember it is most secure to only define ones that your modules will actually use.

Additional Modes
None
Additional Commands
None
Special Notes
MySQL databases are very resource intensive in terms of memory usage. Modules should refrain from using MySQL unless it is neccessary (for example, to interface with a website written in php or perl, or to interface with a proprietary system which also uses MySQL).
Extra ModuleThis module is an 'extra' module. This means that by default it is not compiled when you type make to build your IRCd. To enable this module follow these steps.
Dependencies
*MySQL - The MySQL Database Server