mirror of
https://github.com/coturn/coturn.git
synced 2025-04-20 11:51:58 +08:00
This is not a long term documentation works - this is a temp proposal to modernize existing documentation - Create docs folder - Move existing documentation files into docs - Split one massive INSTALL files into smaller files (no text editing was done except small markdown header formatting) - Rename files to be markdowns for nicer rendering - Bad md rendering is expected in many places
87 lines
3.2 KiB
Markdown
87 lines
3.2 KiB
Markdown
# MySQL (MariaDB) setup
|
|
|
|
The MySQL setup is similar to PostgreSQL (the same idea), and is well documented
|
|
on their site http://www.mysql.org. The TURN Server database schema is the
|
|
same as for PostgreSQL and you can find it in turndb/schema.sql file, or
|
|
in the system's PREFIX/share/turnserver/schema.sql file after the turnserver
|
|
installation.
|
|
|
|
The general setup is similar to PostgreSQL setup procedure:
|
|
|
|
1) Check that the mysql server access is OK. Immediately after the MySQL server
|
|
installation, it must be accessible, at the very minimum, at the localhost with
|
|
the root account.
|
|
|
|
2) Login into mysql console from root account:
|
|
|
|
$ sudo bash
|
|
# mysql mysql
|
|
|
|
(or mysql -p mysql if mysql account password set)
|
|
|
|
3) Add 'turn' user with 'turn' password (for example):
|
|
|
|
> create user 'turn'@'localhost' identified by 'turn';
|
|
|
|
4) Create database 'coturn' (for example) and grant privileges to user 'turn':
|
|
|
|
> create database coturn character set latin1;
|
|
> grant all on coturn.* to 'turn'@'localhost';
|
|
> flush privileges;
|
|
Ctrl-D
|
|
|
|
5) Create database schema:
|
|
|
|
$ mysql -p -u turn coturn < turndb/schema.sql
|
|
Enter password: turn
|
|
$
|
|
|
|
Fill in test database data, if this is a test database
|
|
(not a production database):
|
|
|
|
$ mysql -p -u turn coturn < turndb/testsqldbsetup.sql
|
|
|
|
6) Fill in users, for example:
|
|
|
|
Shared secret for the TURN REST API (realm north.gov):
|
|
|
|
$ bin/turnadmin -s logen -r north.gov -M "host=localhost dbname=coturn user=turn password=turn"
|
|
|
|
Long-term credentials mechanism:
|
|
|
|
$ bin/turnadmin -a -M "host=localhost dbname=coturn user=turn password=turn" -u gorst -r north.gov -p hero
|
|
$ bin/turnadmin -a -M "host=localhost dbname=coturn user=turn password=turn" -u ninefingers -r north.gov -p youhavetoberealistic
|
|
|
|
Admin users:
|
|
|
|
$ bin/turnadmin -A -M "host=localhost dbname=coturn user=turn password=turn" -u gorst -p hero
|
|
$ bin/turnadmin -A -M "host=localhost dbname=coturn user=turn password=turn" -u ninefingers -p youhavetoberealistic -r north.gov
|
|
|
|
7) Now we can use mysql in the turnserver.
|
|
|
|
If the TURN server was compiled with MySQL support, then we can use the
|
|
TURN server database parameter --mysql-userdb. The value of this parameter
|
|
is a connection string for the MySQL database. As "native" MySQL does not
|
|
have such a feature as "connection string", the TURN server parses the
|
|
connection string and converts it into MySQL database connection parameter.
|
|
The format of the MySQL connection string is:
|
|
|
|
"host=<host> dbname=<database-name> user=<database-user> password=<database-user-password> port=<port> connect_timeout=<seconds> read_timeout=<seconds>"
|
|
|
|
(all parameters are optional)
|
|
|
|
So, an example of the MySQL database parameter in the TURN server command
|
|
line would be:
|
|
|
|
--mysql-userdb="host=localhost dbname=coturn user=turn password=turn connect_timeout=30 read_timeout=30"
|
|
|
|
Or in the turnserver.conf file:
|
|
|
|
mysql-userdb="host=localhost dbname=coturn user=turn password=turn connect_timeout=30 read_timeout=30"
|
|
|
|
If you have to use a secure MySQL connection (SSL) then you have to use also
|
|
the optional connection string parameters for the secure communications:
|
|
ca, capath, cert, key, cipher (see
|
|
http://dev.mysql.com/doc/refman/5.1/en/ssl-options.html for the
|
|
command options description).
|