66566384e310d8a2872d14388968776e1bf40e8e
[sip-router] / src / modules / db_mysql / README
1 mysql Module
2
3 Daniel-Constantin Mierla
4
5    <miconda@gmail.com>
6
7 Edited by
8
9 Daniel-Constantin Mierla
10
11    <miconda@gmail.com>
12
13    Copyright © 2006 Voice Sistem SRL
14      __________________________________________________________________
15
16    Table of Contents
17
18    1. Admin Guide
19
20         1. Overview
21         2. Dependencies
22
23               2.1. Kamailio Modules
24               2.2. External Libraries or Applications
25
26         3. Parameters
27
28               3.1. ping_interval (integer)
29               3.2. timeout_interval (integer)
30               3.3. auto_reconnect (integer)
31               3.4. insert_delayed (integer)
32               3.5. update_affected_found (integer)
33
34         4. Functions
35         5. Installation
36         6. Reading configuration from my.cnf
37
38    List of Examples
39
40    1.1. Set ping_interval parameter
41    1.2. Set timeout_interval parameter
42    1.3. Set auto_reconnect parameter
43    1.4. Set insert_delayed parameter
44    1.5. Set update_affected_found parameter
45    1.6. Set a my.cnf group in db_url parameter
46    1.7. Adding a kamailio group to my.cnf
47    1.8. Using [client] and specific group
48
49 Chapter 1. Admin Guide
50
51    Table of Contents
52
53    1. Overview
54    2. Dependencies
55
56         2.1. Kamailio Modules
57         2.2. External Libraries or Applications
58
59    3. Parameters
60
61         3.1. ping_interval (integer)
62         3.2. timeout_interval (integer)
63         3.3. auto_reconnect (integer)
64         3.4. insert_delayed (integer)
65         3.5. update_affected_found (integer)
66
67    4. Functions
68    5. Installation
69    6. Reading configuration from my.cnf
70
71 1. Overview
72
73    This is a module which provides MySQL connectivity for Kamailio. It
74    implements the DB API defined in Kamailio.
75
76 2. Dependencies
77
78    2.1. Kamailio Modules
79    2.2. External Libraries or Applications
80
81 2.1. Kamailio Modules
82
83    The following modules must be loaded before this module:
84      * No dependencies on other Kamailio modules.
85
86 2.2. External Libraries or Applications
87
88    The following libraries or applications must be installed before
89    running Kamailio with this module loaded:
90      * mysql - the development libraries forthe Mysql database. In some
91        Linux distributions named "libmysqlclient-dev".
92
93 3. Parameters
94
95    3.1. ping_interval (integer)
96    3.2. timeout_interval (integer)
97    3.3. auto_reconnect (integer)
98    3.4. insert_delayed (integer)
99    3.5. update_affected_found (integer)
100
101 3.1. ping_interval (integer)
102
103    Time interval in seconds to send ping messages to MySQL server in order
104    to keep the connection open.
105
106    Default value is 300 (5 min).
107
108    Example 1.1. Set ping_interval parameter
109 ...
110 modparam("db_mysql", "ping_interval", 600)
111 ...
112
113 3.2. timeout_interval (integer)
114
115    Time interval (in seconds) after that an connection attempt, read or
116    write request is aborted. The value counts three times, as several
117    retries are done from the driver before it gives up.
118
119    The read timeout parameter is ignored on MySQL driver versions prior to
120    “5.1.12”, “5.0.25” and “4.1.22”. The write timeout parameter is ignored
121    on versions prior to “5.1.12” and “5.0.25”, the “4.1” release don't
122    support it at all.
123
124    Default value is 2 (6 sec).
125
126    Example 1.2. Set timeout_interval parameter
127 ...
128 modparam("db_mysql", "timeout_interval", 2)
129 ...
130
131 3.3. auto_reconnect (integer)
132
133    Configure whether the module should automatically reconnect to MySQL
134    server if the connection was lost.
135
136    Default value is 1 (1 - on / 0 - off).
137
138    Example 1.3. Set auto_reconnect parameter
139 ...
140 modparam("db_mysql", "auto_reconnect", 0)
141 ...
142
143 3.4. insert_delayed (integer)
144
145    If set to 1, all INSERT SQL queries will be sent to MySQL server as
146    INSERT DELAYED.
147
148    Default value is 0 (1 - on / 0 - off).
149
150    Example 1.4. Set insert_delayed parameter
151 ...
152 modparam("db_mysql", "insert_delayed", 1)
153 ...
154
155 3.5. update_affected_found (integer)
156
157    If set to 1, all UPDATE SQL queries will return the number of matched
158    rows instead of the number of "updated" rows.
159
160    Default value is 0 (1 - on / 0 - off).
161
162    Example 1.5. Set update_affected_found parameter
163 ...
164 modparam("db_mysql", "update_affected_found", 1)
165 ...
166
167 4. Functions
168
169    No function exported to be used from configuration file.
170
171 5. Installation
172
173    Because it dependes on an external library, the mysql module is not
174    compiled and installed by default. You can use one of these options.
175      * - edit the "Makefile" and remove "db_mysql" from "excluded_modules"
176        list. Then follow the standard procedure to install Kamailio: "make
177        all; make install".
178      * - from command line use: 'make all include_modules="db_mysql"; make
179        install include_modules="db_mysql"'.
180
181 6. Reading configuration from my.cnf
182
183    In order to take into account specific mysql client options, a my.cnf
184    config group can be passed using the db_url module parameter. This is
185    done by setting [group] in front of or instead of the host part. The
186    following examples are valid db_url definitions, which include a my.cnf
187    group:
188      * mysql://user:pass@[group]host:port/db
189      * mysql://user:pass@[group]:port/db
190      * mysql://user:pass@[group]/db
191      * mysql://[group]/db
192
193    Example 1.6. Set a my.cnf group in db_url parameter
194 ...
195 modparam("usrloc", "db_url", "mysql://[kamailio]/kamailio)
196 ...
197
198    Example 1.7. Adding a kamailio group to my.cnf
199 ...
200 [kamailio]
201 socket = /path/to/mysql.sock
202 user = kamailiouser
203 password = kamailiopass
204 default-character-set = utf8
205 ...
206
207    In addition to the given group, also the [client] section is read, in
208    the order given in my.cnf. So if you for example specify a socket in
209    both your specific group and the client group, then the value is taken
210    from the last one.
211
212    Example 1.8. Using [client] and specific group
213 ...
214 [client]
215 socket = /var/run/mysql/mysqld.sock
216
217 [kamailio]
218 socket = /path/to/mysqld.sock
219 user = kamailiouser
220 password = kamailiopass
221 default-character-set = utf8
222 ...
223
224    In the example given above, the socket /path/to/mysqld.sock is used by
225    Kamailio because both [kamailio] and [client] define this option, and
226    the latter overwrites the first.