mirror of
https://github.com/VinylDNS/vinyldns
synced 2025-09-05 16:55:16 +00:00
32 lines
7.7 KiB
HTML
32 lines
7.7 KiB
HTML
<html><head><title>VinylDNS: Setup MySQL</title><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="author" content="VinylDNS" /><meta name="description" content="DNS Management Platform" /><meta name="og:image" content="/img/poster.png" /><meta name="og:title" content="VinylDNS: Setup MySQL" /><meta name="og:site_name" content="VinylDNS" /><meta name="og:url" content="http://vinyldns.io" /><meta name="og:type" content="website" /><meta name="og:description" content="DNS Management Platform" /><link rel="icon" type="image/png" href="/img/favicon.png" /><meta name="twitter:title" content="VinylDNS: Setup MySQL" /><meta name="twitter:image" content="http://vinyldns.ioimg/poster.png" /><meta name="twitter:description" content="DNS Management Platform" /><meta name="twitter:card" content="summary_large_image" /><link rel="icon" type="image/png" sizes="16x16" href="/img/favicon16x16.png" /><link rel="icon" type="image/png" sizes="24x24" href="/img/favicon24x24.png" /><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon32x32.png" /><link rel="icon" type="image/png" sizes="48x48" href="/img/favicon48x48.png" /><link rel="icon" type="image/png" sizes="57x57" href="/img/favicon57x57.png" /><link rel="icon" type="image/png" sizes="60x60" href="/img/favicon60x60.png" /><link rel="icon" type="image/png" sizes="64x64" href="/img/favicon64x64.png" /><link rel="icon" type="image/png" sizes="70x70" href="/img/favicon70x70.png" /><link rel="icon" type="image/png" sizes="72x72" href="/img/favicon72x72.png" /><link rel="icon" type="image/png" sizes="76x76" href="/img/favicon76x76.png" /><link rel="icon" type="image/png" sizes="96x96" href="/img/favicon96x96.png" /><link rel="icon" type="image/png" sizes="114x114" href="/img/favicon114x114.png" /><link rel="icon" type="image/png" sizes="120x120" href="/img/favicon120x120.png" /><link rel="icon" type="image/png" sizes="128x128" href="/img/favicon128x128.png" /><link rel="icon" type="image/png" sizes="144x144" href="/img/favicon144x144.png" /><link rel="icon" type="image/png" sizes="150x150" href="/img/favicon150x150.png" /><link rel="icon" type="image/png" sizes="152x152" href="/img/favicon152x152.png" /><link rel="icon" type="image/png" sizes="196x196" href="/img/favicon196x196.png" /><link rel="icon" type="image/png" sizes="310x310" href="/img/favicon310x310.png" /><link rel="icon" type="image/png" sizes="310x150" href="/img/favicon310x150.png" /><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" /><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" /><link rel="stylesheet" href="/highlight/styles/default.css" /><link rel="stylesheet" href="/css/style.css" /><link rel="stylesheet" href="/css/palette.css" /><link rel="stylesheet" href="/css/codemirror.css" /><link rel="stylesheet" href="/css/custom.css" /></head><body class="docs"><div id="wrapper"><div id="sidebar-wrapper"><ul id="sidebar" class="sidebar-nav"><li class="sidebar-brand"><a href="/" class="brand"><div class="brand-wrapper"><span>VinylDNS</span></div></a></li> <li><a href="/operator/index.html" class="">Operator Guide</a></li> <li><a href="/operator/pre" class="">Pre-requisites</a> <ul class="sub_section"> <li><a href="/operator/setup-dynamodb" class="">Setup AWS DynamoDB</a></li> <li><a href="/operator/setup-mysql" class=" active ">Setup MySQL</a></li> <li><a href="/operator/setup-sqs" class="">Setup AWS SQS</a></li> <li><a href="/operator/setup-ldap" class="">Setup LDAP</a></li></ul></li> <li><a href="/operator/setup-api" class="">Setup API Server</a> <ul class="sub_section"> <li><a href="/operator/config-api" class="">API Configuration Guide</a></li></ul></li> <li><a href="/operator/setup-portal" class="">Setup the Portal Server</a> <ul class="sub_section"> <li><a href="/operator/config-portal" class="">Portal Configuration Guide</a></li></ul></li> </ul></div><div id="page-content-wrapper"><div class="nav"><div class="container-fluid"><div class="row"><div class="col-lg-12"><div class="action-menu pull-left clearfix"><a href="#menu-toggle" id="menu-toggle"><i class="fa fa-bars" aria-hidden="true"></i></a></div><ul class="pull-right"><li id="gh-eyes-item" class="hidden-xs"><a href="https://github.com/VinylDNS/vinyldns"><i class="fa fa-eye"></i><span>WATCH<span id="eyes" class="label label-default">--</span></span></a></li><li id="gh-stars-item" class="hidden-xs"><a href="https://github.com/VinylDNS/vinyldns"><i class="fa fa-star-o"></i><span>STARS<span id="stars" class="label label-default">--</span></span></a></li></ul></div></div></div></div><div id="content" data-github-owner="VinylDNS" data-github-repo="vinyldns"><div class="content-wrapper"><section><h1 id="setup-mysql">Setup MySQL</h1>
|
|
<p>Our instance of VinylDNS currently stores some tables in MySQL, though all tables and a queue implementation are available in MySQL. Note
|
|
that the <code class="highlighter-rouge">batch_change</code> and <code class="highlighter-rouge">zone</code> tables are <em>only</em> available in MySQL.</p>
|
|
|
|
<p>The motivation to split databases was due to the query limitations available in AWS DynamoDB. Currently, the following tables are present in
|
|
our instance:</p>
|
|
|
|
<ul>
|
|
<li><code class="highlighter-rouge">zone</code> - holds zones</li>
|
|
<li><code class="highlighter-rouge">zone_access</code> - holds user or group identifiers that have access to zones</li>
|
|
<li><code class="highlighter-rouge">batch_change</code> - holds batch changes (multiple changes across zones in a single batch)</li>
|
|
<li><code class="highlighter-rouge">single_change</code> - holds individual changes within a <code class="highlighter-rouge">batch_change</code></li>
|
|
<li><code class="highlighter-rouge">user</code> - holds user information, including access keys and secrets</li>
|
|
<li><code class="highlighter-rouge">record-set</code> - holds record data</li>
|
|
</ul>
|
|
|
|
<h2 id="setting-up-the-database">Setting up the database</h2>
|
|
<p>VinylDNS uses <a href="https://flywaydb.org/">Flyway</a> to manage SQL migrations. This means that any database changes, including
|
|
creating the database, adding tables, etc. are all <em>automatically applied</em> when VinylDNS starts up. You do not need
|
|
to do anything other than giving access to VinylDNS API from your MySQL server instance. You can view the database
|
|
schema and migrations in the <code class="highlighter-rouge">mysql</code> module <a href="https://github.com/vinyldns/vinyldns/tree/master/modules/mysql/src/main/resources/db/migration">db/migration folder</a></p>
|
|
|
|
<p>VinylDNS uses <a href="https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby">HikariCP</a> for a high-speed connection
|
|
pool.</p>
|
|
|
|
<h2 id="configuring-mysql">Configuring MySQL</h2>
|
|
<p>Before you can configure MySQL, make note of the host, username, and password that you will be using.
|
|
Follow the <a href="config-api#database-configuration">API Database Configuration</a> to complete the setup.</p>
|
|
</section><div class="edit-button"><a href="https://github.com/VinylDNS/vinyldns/edit/master/modules/docs/src/main/tut/operator/setup-mysql.md" class="btn-sm btn-info">Improve this page</a></div></div></div></div></div><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script><script src="/highlight/highlight.pack.js"></script><script>hljs.configure({languages:['scala','java','bash']});
|
|
hljs.initHighlighting();
|
|
</script><script>((window.gitter = {}).chat = {}).options = {
|
|
room: 'vinyldns/Lobby'};</script><script src="https://sidecar.gitter.im/dist/sidecar.v1.js"></script><script src="/js/main.js"></script></body></html> |