2
0
mirror of https://github.com/VinylDNS/vinyldns synced 2025-09-05 16:55:16 +00:00
Files
vinyldns/operator/setup-mysql.html
2020-03-09 11:05:32 -04:00

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>