diff options
author | sjaz <sjaz@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-01-01 12:00:20 +0000 |
---|---|---|
committer | sjaz <sjaz@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-01-01 12:00:20 +0000 |
commit | c777c8d9aa7cd5c2e9a399727a7fa9985a77fb1c (patch) | |
tree | 9e996ae4a1bbb833cec036c5cd4d87a590149e85 /docs/MYSQL |
Anope Stable Branch
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@1902 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'docs/MYSQL')
-rw-r--r-- | docs/MYSQL | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/docs/MYSQL b/docs/MYSQL new file mode 100644 index 000000000..1dd10298e --- /dev/null +++ b/docs/MYSQL @@ -0,0 +1,109 @@ +Anope MySQL Support +------------------- + +1) Introduction + + Anope 1.6 onwards supports MySQL databases. On Anope 1.6.0 only PHASE 1 + has been implemented. Since the next phases require major changes in the + core, we decided to save it for 2.0. However, having your db's easily + accessible on your website is still a great feature. + + PHASE 1:Anope will be able to save all it's databases to MySQL. It will + happen in conjunction with the current FFF databases. This first step is + nothing more than a MySQL dump of the databases (i.e. read-only), since + Anope will not (for now) read from Mysql. (COMPLETED) + + PHASE 2:The next step is load the databases from MySQL, being able to + replace the FFF completely as an archive method (since all changes to + the MySQL db would be lost on the next Services save). All, while keeping + FFF intact. This is still not the final goal, but it's a milestone. + (COMPLETED) + + UPDATE: Anope 1.7.0 (Revision 11 and above) finally supports phase 2! + A new config directive called 'UseRDB' has been added. + If you enable this, anope will automatically try to load its + data from MySQL (if configured and compiled with). + + PHASE 3:The next step, and most convoluted of all (since we'll need to + modify pretty much all the source) is to load/save (SELECT/INSERT) data + in realtime. That way the MySQL db could be modified externally (web?). + Again, the FFF will be kept intact. + +2) Requirements + + 1. MySQL server version 3.23.32 or greater + 2. MySQL libs and development files (usually called mysql-dev). + 3. A MySQL user account + 4. A MySQL database + +3) Installation + + 1. The ./Config script automatically detects if your system is capable + of running Anope with MySQL support. There is no need anymore to + answer yes when asked. + + Note: You might need to run "make distclean" prior to running ./Config + + 2. Compile Anope as usual. The (g)make process will now compile MySQL + support into Anope. + + 3. Install Anope as usual. + +4) Configuration + + 1. Go to your "services bin directory" (eg: /home/someuser/services/) and run mydbgen + to help on the schema creation and adjustments. + + 2. Edit services.conf and add your MySQL data to the MySQL configuration + block. + + 3. Start or restart services to make use of the new Anope executable. + +5) Security + + To add a layer of security you have the option of encrypting or encoding + all passwords for nicks and chans. Use the "MysqlSecure" directive on your + services.conf file to enable it. The available storage methods are: + + #MysqlSecure "" + + or + + MysqlSecure "" + + Disables security. All passwords will be saved on the MySQL database + as clear text, with no encryption or encoding. FASTEST + + MysqlSecure "des" + + Encrypts all passwords using a UNIX DES encryption. This is a one way + encryption algorithm. You can only validate it against another DES + encrypted string, using the same "salt" (the first two characters of + the encrypted string). FAST + + MysqlSecure "md5" + + Calculates an MD5 128-bit checksum for the password. The value is + returned as a 32-digit hex number that may be used as a hash key. + This is a one way encryption algorithm. SLOW + + MysqlSecure "sha" + + Calculates an SHA 160-bit checksum for the password. The value is + returned as a 40-digit hex number. This is a one way encryption + algorithm. SLOWEST + + MysqlSecure "mykey" + + Encodes the passwords using "mykey" as the encryption password. It + produces a binary string and can be decoded using the MySQL built in + function DECODE(crypt_str,mykey). VARIABLE + + Caveat: Keep in mind that this if you use any method other than clear + text, services will need to encrypt/encode every single password on + every database save. On large networks, it may impact responsiveness + during the saves. + + Caveat: If you enable MysqlSecure you can not longer use the UseRDB directive + as all the password types are encrypted with a one way encryption method for + older MySQL servers. |