Table of Contents
List of Tables
List of Examples
This is a module which provides MySQL connectivity for OpenSIPS. It implements the DB API defined in OpenSIPS.
The following modules must be loaded before this module:
If a use_tls is defined, the tls_mgm module will need to be loaded as well.
If queries take longer than 'exec_query_threshold' microseconds, warning messages will be written to logging facility.
Default value is 0 - disabled.
Example 1.1. Set exec_query_threshold
parameter
... modparam("db_mysql", "exec_query_threshold", 60000) ...
Time interval after which a connection attempt (read or write request) is aborted. The value counts three times, as several retries are done from the driver before it gives up.
The read timeout parameter is ignored on driver versions prior to “5.1.12”, “5.0.25” and “4.1.22”. The write timeout parameter is ignored on version prior to “5.1.12” and “5.0.25”, the “4.1” release don't support it at all.
Default value is 2 (6 sec).
The maximum number of retries to execute a failed query due to connections problems. If this parameter is set improperly, it is set to default value.
Default value is 2.
The maximum number of database connection retries. If this parameter is set improperly, it is set to default value.
Default value is 3.
The maximum size of a column's data, when fetched using prepared statements. Particularly relevant for variable-length data, such as CHAR, BLOB, etc.
NOTE: Should a column's data exceed this limit, the value will be silently truncated to fit the buffer, without reporting any errors!
Default value is 1024 (bytes).
Setting this parameter will allow you to use TLS for MySQL connections. In order to enable TLS for a specific connection, you can use the "tls_domain=dom_name" URL parameter in the db_url of the respective OpenSIPS module. This should be placed at the end of the URL after the '?' character. Additionally, the query string may include the "tls_opts= PKEY,CERT,CA,CA_DIR,CIPHERS" CSV parameter, in order to control/limit the amount of TLS options passed to the TLS library.
When using this parameter, you must also ensure that tls_mgm is loaded and properly configured. Refer to the the module for additional info regarding TLS client domains.
Note that if you want to use this feature, the TLS domain must be provisioned in the configuration file, NOT in the database. In case you are loading TLS certificates from the database, you must at least define one domain in the configuration script, to use for the initial connection to the DB.
Also, you can NOT enable TLS for the connection to the database of the tls_mgm module itself.
Default value is 0 (not enabled)
Example 1.6. Set the use_tls
parameter
... modparam("tls_mgm", "client_domain", "dom1") modparam("tls_mgm", "certificate", "[dom1]/etc/pki/tls/certs/opensips.pem") modparam("tls_mgm", "private_key", "[dom1]/etc/pki/tls/private/opensips.key") modparam("tls_mgm", "ca_list", "[dom1]/etc/pki/tls/certs/ca.pem") ... modparam("db_mysql", "use_tls", 1) ... modparam("usrloc", "db_url", "mysql://root:1234@localhost/opensips?tls_domain=dom1") ... modparam("usrloc", "db_url", "mysql://root:1234@localhost/opensips?tls_domain=dom1&tls_opts=PKEY,CERT,CA,CA_DIR,CIPHERS") ...
Because it dependes on an external library, the mysql module is not compiled and installed by default. You can use one of the next options.
- edit the "Makefile" and remove "db_mysql" from "excluded_modules" list. Then follow the standard procedure to install OpenSIPS: "make all; make install".
- from command line use: 'make all include_modules="db_mysql"; make install include_modules="db_mysql"'.
Table 2.1. Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)
Name | DevScore | Commits | Lines ++ | Lines -- | |
---|---|---|---|---|---|
1. | Jan Janak (@janakj) | 150 | 53 | 5336 | 3190 |
2. | Bogdan-Andrei Iancu (@bogdan-iancu) | 97 | 71 | 1573 | 792 |
3. | Henning Westerholt (@henningw) | 57 | 30 | 693 | 1239 |
4. | Liviu Chircu (@liviuchircu) | 43 | 34 | 581 | 206 |
5. | Daniel-Constantin Mierla (@miconda) | 28 | 20 | 571 | 154 |
6. | Razvan Crainea (@razvancrainea) | 19 | 16 | 231 | 59 |
7. | Andrei Pelinescu-Onciul | 16 | 14 | 52 | 49 |
8. | Vlad Paiu (@vladpaiu) | 14 | 11 | 159 | 25 |
9. | Vlad Patrascu (@rvlad-patrascu) | 12 | 8 | 179 | 78 |
10. | Jiri Kuthan (@jiriatipteldotorg) | 11 | 6 | 393 | 2 |
All remaining contributors: Nils Ohlmeier, Maksym Sobolyev (@sobomax), Norman Brandinger (@NormB), Peter Lemenkov (@lemenkov), Eseanu Marius Cristian (@eseanucristian), Dan Pascu (@danpascu), Walter Doekes (@wdoekes), Ionut Ionita (@ionutrazvanionita), Ovidiu Sas (@ovidiusas), Konstantin Bokarius, Andreas Heise, Razvan Pistolea, Saúl Ibarra Corretgé (@saghul), Sergio Gutierrez, Edson Gellert Schubert, Augusto Caringi.
(1) DevScore = author_commits + author_lines_added / (project_lines_added / project_commits) + author_lines_deleted / (project_lines_deleted / project_commits)
(2) including any documentation-related commits, excluding merge commits. Regarding imported patches/code, we do our best to count the work on behalf of the proper owner, as per the "fix_authors" and "mod_renames" arrays in opensips/doc/build-contrib.sh. If you identify any patches/commits which do not get properly attributed to you, please submit a pull request which extends "fix_authors" and/or "mod_renames".
(3) ignoring whitespace edits, renamed files and auto-generated files
Table 2.2. Most recently active contributors(1) to this module
Name | Commit Activity | |
---|---|---|
1. | Liviu Chircu (@liviuchircu) | Mar 2014 - Jul 2024 |
2. | Maksym Sobolyev (@sobomax) | Feb 2023 - Feb 2023 |
3. | Vlad Paiu (@vladpaiu) | Feb 2011 - Jan 2022 |
4. | Vlad Patrascu (@rvlad-patrascu) | Apr 2017 - May 2021 |
5. | Walter Doekes (@wdoekes) | Apr 2021 - Apr 2021 |
6. | Razvan Crainea (@razvancrainea) | Oct 2011 - Jan 2021 |
7. | Bogdan-Andrei Iancu (@bogdan-iancu) | Aug 2002 - Apr 2019 |
8. | Peter Lemenkov (@lemenkov) | Nov 2017 - Jun 2018 |
9. | Augusto Caringi | Jul 2017 - Jul 2017 |
10. | Ovidiu Sas (@ovidiusas) | Mar 2017 - Mar 2017 |
All remaining contributors: Ionut Ionita (@ionutrazvanionita), Eseanu Marius Cristian (@eseanucristian), Saúl Ibarra Corretgé (@saghul), Razvan Pistolea, Norman Brandinger (@NormB), Sergio Gutierrez, Henning Westerholt (@henningw), Daniel-Constantin Mierla (@miconda), Konstantin Bokarius, Edson Gellert Schubert, Andreas Heise, Jan Janak (@janakj), Andrei Pelinescu-Onciul, Dan Pascu (@danpascu), Jiri Kuthan (@jiriatipteldotorg), Nils Ohlmeier.
(1) including any documentation-related commits, excluding merge commits
Last edited by: Liviu Chircu (@liviuchircu), Vlad Patrascu (@rvlad-patrascu), Razvan Crainea (@razvancrainea), Peter Lemenkov (@lemenkov), Eseanu Marius Cristian (@eseanucristian), Bogdan-Andrei Iancu (@bogdan-iancu), Vlad Paiu (@vladpaiu), Daniel-Constantin Mierla (@miconda), Konstantin Bokarius, Edson Gellert Schubert, Henning Westerholt (@henningw), Jan Janak (@janakj).
Documentation Copyrights:
Copyright © 2006 Voice Sistem SRL