Hello, I'm trying to configure ejabberd to store users, rosters, message archive in SQL server.
But ejabberd ignores my configuration and uses internal db (mnesia?)
First, i have executed "mssql2005.sql"
Second, i've created odbc connection to my SQL server (it is on the other machine, whatever), called it "jabber",
Next, i've installed ejabberd with Win-Installer. As a domain i set "localhost".
Next, i opened ejabberd.cfg:
-commented this line: %%{auth_method, internal}. -uncommented this line: {auth_method, odbc}. in DATABASE SETUP SECTION uncommented and editted: {odbc_server, "DSN=jabber;UID=sa;PWD=qwert"}.
%%% The parameters used in this configuration file are explained in more detail %%% in the ejabberd Installation and Operation Guide. %%% Please consult the Guide in case of doubts, it is included in %%% your copy of ejabberd, and is also available online at %%% http://www.process-one.net/en/ejabberd/docs/
%%% This configuration file contains Erlang terms. %%% In case you want to understand the syntax, here are the concepts: %%% %%% - The character to comment a line is % %%% %%% - Each term ends in a dot, for example: %%% override_global. %%% %%% - A tuple has a fixed definition, its elements are %%% enclosed in {}, and separated with commas: %%% {loglevel, 4}. %%% %%% - A list can have as many elements as you want, %%% and is enclosed in [], for example: %%% [http_poll, web_admin, tls] %%% %%% - A keyword of ejabberd is a word in lowercase. %%% The strings are enclosed in "" and can have spaces, dots... %%% {language, "en"}. %%% {ldap_rootdn, "dc=example,dc=com"}. %%% %%% - This term includes a tuple, a keyword, a list and two strings: %%% {hosts, ["jabber.example.net", "im.example.com"]}. %%%
%% %% Override the old values stored in the database. %%
%% %% Override global options (shared by all ejabberd nodes in a cluster). %% %%override_global.
%% %% Override local options (specific for this particular ejabberd node). %% %%override_local.
%% %% Remove the Access Control Lists before new ones are added. %% %%override_acls.
%%% ========= %%% DEBUGGING
%% %% loglevel: Verbosity of log files generated by ejabberd. %% 0: No ejabberd log at all (not recommended) %% 1: Critical %% 2: Error %% 3: Warning %% 4: Info %% 5: Debug %% {loglevel, 5}.
%% %% watchdog_admins: If an ejabberd process consumes too much memory, %% send live notifications to those Jabber accounts. %% %%{watchdog_admins, ["admin@MY-MACHINE-NAME"]}.
%%% ================ %%% SERVED HOSTNAMES
%% %% hosts: Domains served by ejabberd. %% You can define one or several, for example: %% {hosts, ["example.net", "example.com", "example.org"]}. %% {hosts, ["localhost"]}.
%% %% route_subdomains: Delegate subdomains to other Jabber server. %% For example, if this ejabberd serves example.org and you want %% to allow communication with a Jabber server called im.example.org. %% %%{route_subdomains, s2s}.
%%% =============== %%% LISTENING PORTS
%% %% listen: Which ports will ejabberd listen, which service handles it %% and what options to start it with. %% {listen, [
%% %% domain_certfile: Specify a different certificate for each served hostname. %% %%{domain_certfile, "example.org", "C:\\Program Files\\ejabberd-2.1.8\\conf\\example_org.pem"}. %%{domain_certfile, "example.com", "C:\\Program Files\\ejabberd-2.1.8\\conf\\example_com.pem"}.
%% %% S2S whitelist or blacklist %% %% Default s2s policy for undefined hosts. %% %%{s2s_default_policy, allow}.
%% %% Allow or deny communication with specific servers. %% %%{{s2s_host, "goodhost.org"}, allow}. %%{{s2s_host, "badhost.org"}, deny}.
%%% ============== %%% AUTHENTICATION
%% %% auth_method: Method used to authenticate the users. %% The default method is the internal. %% If you want to use a different method, %% comment this line and enable the correct ones. %% %%{auth_method, internal}.
%% %% Authentication using external script %% Make sure the script is executable by ejabberd. %% %%{auth_method, external}. %%{extauth_program, "\\path\\to\\authentication\\script"}.
%% %% Authentication using ODBC %% Remember to setup a database in the next section. %% {auth_method, odbc}.
%% %% Authentication using PAM %% %%{auth_method, pam}. %%{pam_service, "pamservicename"}.
%% %% Authentication using LDAP %% %%{auth_method, ldap}. %% %% List of LDAP servers: %%{ldap_servers, ["MY-MACHINE-NAME"]}. %% %% LDAP attribute that holds user ID: %%{ldap_uids, [{"mail", "%u@mail.example.org"}]}. %% %% Search base of LDAP directory: %%{ldap_base, "dc=example,dc=com"}. %% %% LDAP manager: %%{ldap_rootdn, "dc=example,dc=com"}. %% %% Password to LDAP manager: %%{ldap_password, "******"}.
%% %% Anonymous login support: %% auth_method: anonymous %% anonymous_protocol: sasl_anon | login_anon | both %% allow_multiple_connections: true | false %% %%{host_config, "public.example.org", [{auth_method, anonymous}, %% {allow_multiple_connections, false}, %% {anonymous_protocol, sasl_anon}]}. %% %% To use both anonymous and internal authentication: %% %%{host_config, "public.example.org", [{auth_method, [internal, anonymous]}]}.
%%% ============== %%% DATABASE SETUP
%% ejabberd uses by default the internal Mnesia database, %% so you can avoid this section. %% This section provides configuration examples in case %% you want to use other database backends. %% Please consult the ejabberd Guide for details about database creation.
%% %% MySQL server: %% %%{odbc_server, {mysql, "server", "database", "username", "password"}}. %% %% If you want to specify the port: %%{odbc_server, {mysql, "server", 1234, "database", "username", "password"}}.
%% %% PostgreSQL server: %% %%{odbc_server, {pgsql, "server", "database", "username", "password"}}. %% %% If you want to specify the port: %%{odbc_server, {pgsql, "server", 1234, "database", "username", "password"}}. %% %% If you use PostgreSQL, have a large database, and need a %% faster but inexact replacement for "select count(*) from users" %% %%{pgsql_users_number_estimate, true}.
%% %% The "normal" shaper limits traffic speed to 1.000 B/s %% {shaper, normal, {maxrate, 1000}}.
%% %% The "fast" shaper limits traffic speed to 50.000 B/s %% {shaper, fast, {maxrate, 50000}}.
%%% ==================== %%% ACCESS CONTROL LISTS
%% %% The 'admin' ACL grants administrative privileges to Jabber accounts. %% You can put as many accounts as you want. %% {acl, admin, {user, "admin", "MY-MACHINE-NAME"}}.