mirror of
https://github.com/pterodactyl/documentation.git
synced 2025-12-12 09:21:59 -06:00
66 lines
20 KiB
HTML
66 lines
20 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-US">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>Setting up MySQL | Pterodactyl</title>
|
|
<meta name="description" content="The open-source server management solution.">
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png">
|
|
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
|
|
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
|
|
<link rel="mask-icon" href="/favicons/safari-pinned-tab.svg" color="#0e4688">
|
|
<link rel="manifest" href="/favicons/manifest.json">
|
|
<link rel="shortcut icon" href="/favicons/favicon.ico">
|
|
<meta name="msapplication-config" content="/favicons/browserconfig.xml">
|
|
<meta name="theme-color" content="#0e4688">
|
|
|
|
<link rel="preload" href="/assets/css/0.styles.55a8b33d.css" as="style"><link rel="preload" href="/assets/js/app.8e8e42dc.js" as="script"><link rel="preload" href="/assets/js/49.eeac0293.js" as="script"><link rel="prefetch" href="/assets/js/2.246d7148.js"><link rel="prefetch" href="/assets/js/3.9f7c152a.js"><link rel="prefetch" href="/assets/js/4.c77d3519.js"><link rel="prefetch" href="/assets/js/5.c1484b54.js"><link rel="prefetch" href="/assets/js/6.46512893.js"><link rel="prefetch" href="/assets/js/7.cb7ac953.js"><link rel="prefetch" href="/assets/js/8.b77b5e9f.js"><link rel="prefetch" href="/assets/js/9.11ff24f5.js"><link rel="prefetch" href="/assets/js/10.fc0e3859.js"><link rel="prefetch" href="/assets/js/11.7a2275fc.js"><link rel="prefetch" href="/assets/js/12.4e3316e1.js"><link rel="prefetch" href="/assets/js/13.ea7b9dae.js"><link rel="prefetch" href="/assets/js/14.a8602317.js"><link rel="prefetch" href="/assets/js/15.11bef37b.js"><link rel="prefetch" href="/assets/js/16.ed492d11.js"><link rel="prefetch" href="/assets/js/17.39b7711c.js"><link rel="prefetch" href="/assets/js/18.02120422.js"><link rel="prefetch" href="/assets/js/19.8353394f.js"><link rel="prefetch" href="/assets/js/20.fe9ea952.js"><link rel="prefetch" href="/assets/js/21.601886ac.js"><link rel="prefetch" href="/assets/js/22.ff19391b.js"><link rel="prefetch" href="/assets/js/23.c3070e00.js"><link rel="prefetch" href="/assets/js/24.40ed644e.js"><link rel="prefetch" href="/assets/js/25.26a8a4e9.js"><link rel="prefetch" href="/assets/js/26.5b2971f2.js"><link rel="prefetch" href="/assets/js/27.d57d3226.js"><link rel="prefetch" href="/assets/js/28.a668c12e.js"><link rel="prefetch" href="/assets/js/29.1a50e21b.js"><link rel="prefetch" href="/assets/js/30.8c290954.js"><link rel="prefetch" href="/assets/js/31.3380c08b.js"><link rel="prefetch" href="/assets/js/32.d827cd5e.js"><link rel="prefetch" href="/assets/js/33.2572d233.js"><link rel="prefetch" href="/assets/js/34.06a2f761.js"><link rel="prefetch" href="/assets/js/35.575d3104.js"><link rel="prefetch" href="/assets/js/36.a5190b64.js"><link rel="prefetch" href="/assets/js/37.0856cbe3.js"><link rel="prefetch" href="/assets/js/38.2e71e0c0.js"><link rel="prefetch" href="/assets/js/39.c212fa23.js"><link rel="prefetch" href="/assets/js/40.7fc67e59.js"><link rel="prefetch" href="/assets/js/41.4fc5d55c.js"><link rel="prefetch" href="/assets/js/42.be105b38.js"><link rel="prefetch" href="/assets/js/43.ca13b49e.js"><link rel="prefetch" href="/assets/js/44.b573964e.js"><link rel="prefetch" href="/assets/js/45.49114d63.js"><link rel="prefetch" href="/assets/js/46.d84a855b.js"><link rel="prefetch" href="/assets/js/47.d08eccbf.js"><link rel="prefetch" href="/assets/js/48.a341c150.js"><link rel="prefetch" href="/assets/js/50.821f7427.js">
|
|
<link rel="stylesheet" href="/assets/css/0.styles.55a8b33d.css">
|
|
</head>
|
|
<body>
|
|
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="nav"><div class="sidebar-button block md:hidden flex-no-shrink"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <div class="logo-container"><a href="/" class="home-link router-link-active"><img src="/pterodactyl-flat.png" class="logo"> <span class="site-name hidden md:inline can-hide">
|
|
Pterodactyl
|
|
</span></a></div> <div class="w-full"><div class="flex"><div class="search-box"><input aria-label="Search" placeholder="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links flex-no-shrink hidden md:flex"><div class="nav-item"><a href="/project/introduction.html" class="nav-link">Documentation
|
|
</a></div><div class="nav-item"><a href="/community/about.html" class="nav-link">Community Guides
|
|
</a></div><div class="nav-item"><a href="https://pterodactyl.io/discord" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Get Help
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <div class="nav-item"><a href="https://github.com/pterodactyl/panel" target="_blank" rel="noopener noreferrer" class="nav-link">
|
|
Contribute
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></nav></div></div></header> <div class="sidebar-mask"></div> <div class="sidebar"><nav class="nav-links flex-no-shrink block md:hidden"><div class="nav-item"><a href="/project/introduction.html" class="nav-link">Documentation
|
|
</a></div><div class="nav-item"><a href="/community/about.html" class="nav-link">Community Guides
|
|
</a></div><div class="nav-item"><a href="https://pterodactyl.io/discord" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Get Help
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <div class="nav-item"><a href="https://github.com/pterodactyl/panel" target="_blank" rel="noopener noreferrer" class="nav-link">
|
|
Contribute
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></nav> <ul class="sidebar-links"><li><div class="sidebar-group first"><p class="sidebar-heading"><span>Project Information</span> <!----></p> <ul class="sidebar-group-items"><li><a href="/project/introduction.html" class="sidebar-link">Introduction</a></li><li><a href="/project/about.html" class="sidebar-link">About</a></li><li><a href="/project/terms.html" class="sidebar-link">Terminology</a></li><li><a href="/project/community.html" class="sidebar-link">Community Standards</a></li></ul></div></li><li><div class="sidebar-group"><p class="sidebar-heading"><span>Panel</span> <!----></p> <ul class="sidebar-group-items"><li><a href="/panel/getting_started.html" class="sidebar-link">Getting Started</a></li><li><a href="/panel/webserver_configuration.html" class="sidebar-link">Webserver Configuration</a></li><li><a href="/panel/upgrading.html" class="sidebar-link">Upgrading</a></li><li><a href="/panel/configuration.html" class="sidebar-link">Environment Configuration</a></li><li><a href="/panel/troubleshooting.html" class="sidebar-link">Troubleshooting</a></li></ul></div></li><li><div class="sidebar-group"><p class="sidebar-heading"><span>Daemon</span> <!----></p> <ul class="sidebar-group-items"><li><a href="/daemon/installing.html" class="sidebar-link">Installation</a></li><li><a href="/daemon/upgrading.html" class="sidebar-link">Upgrading</a></li><li><a href="/daemon/configuration.html" class="sidebar-link">Additional Configuration</a></li><li><a href="/daemon/kernel_modifications.html" class="sidebar-link">Kernel Modifications</a></li><li><a href="/daemon/debian_8_docker.html" class="sidebar-link">Docker on Debian 8</a></li><li><a href="/daemon/standalone_sftp.html" class="sidebar-link">Standalone SFTP Server</a></li></ul></div></li><li><div class="sidebar-group"><p class="sidebar-heading open"><span>Tutorials</span> <!----></p> <ul class="sidebar-group-items"><li><a href="/tutorials/mysql_setup.html" class="active sidebar-link">Setting up MySQL</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/tutorials/mysql_setup.html#creating-a-database-for-pterodactyl" class="sidebar-link">Creating a database for Pterodactyl</a></li><li class="sidebar-sub-header"><a href="/tutorials/mysql_setup.html#creating-a-database-host-for-nodes" class="sidebar-link">Creating a Database Host for Nodes</a></li></ul></li><li><a href="/tutorials/creating_ssl_certificates.html" class="sidebar-link">Creating SSL Certificates</a></li></ul></div></li><li><div class="sidebar-group collapsable"><p class="sidebar-heading"><span>Development & Ops</span> <span class="arrow right"></span></p> <!----></div></li></ul> </div> <div class="page"> <div class="content"><h1 id="setting-up-mysql"><a href="#setting-up-mysql" aria-hidden="true" class="header-anchor">#</a> Setting up MySQL</h1> <p></p><div class="table-of-contents"><ul><li><a href="#creating-a-database-for-pterodactyl">Creating a database for Pterodactyl</a><ul><li><a href="#logging-in">Logging In</a></li><li><a href="#creating-a-user">Creating a user</a></li><li><a href="#create-a-database">Create a database</a></li><li><a href="#assigning-permissions">Assigning permissions</a></li></ul></li><li><a href="#creating-a-database-host-for-nodes">Creating a Database Host for Nodes</a><ul><li><a href="#creating-a-user">Creating a user</a></li><li><a href="#assigning-permissions">Assigning permissions</a></li><li><a href="#allowing-external-database-access">Allowing external database access</a></li></ul></li></ul></div><p></p> <h2 id="creating-a-database-for-pterodactyl"><a href="#creating-a-database-for-pterodactyl" aria-hidden="true" class="header-anchor">#</a> Creating a database for Pterodactyl</h2> <p>MySQL is a core component of Pterodactyl Panel but it can be confusing to setup and use if you've never done so before.
|
|
This is a very basic tutorial that skims just enough of the surface to set MySQL up and running with the panel.
|
|
If you're interested in learning more, there are some great tutorials available on the Internet.</p> <h3 id="logging-in"><a href="#logging-in" aria-hidden="true" class="header-anchor">#</a> Logging In</h3> <p>The first step in this process is to login to the MySQL command line where we will be executing some statements to get
|
|
things setup. To do so, simply run the command below and provide the Root MySQL account's password that you setup when
|
|
installing MySQL. If you do not remember doing this, chances are you can just hit enter as no password is set.</p> <div class="language-bash extra-class"><pre class="language-bash"><code>mysql -u root -p
|
|
</code></pre></div><h3 id="creating-a-user"><a href="#creating-a-user" aria-hidden="true" class="header-anchor">#</a> Creating a user</h3> <p>For security sake, and due to changes in MySQL 5.7, you'll need to create a new user for the panel. To do so, we want
|
|
to first tell MySQL to use the mysql database, which stores such information.</p> <p>Next, we will create a user called <code>pterodactyl</code> and allow logins from localhost which prevents any external connections
|
|
to our database. You can also use <code>%</code> as a wildcard or enter a numeric IP. We will also set the account password
|
|
to <code>somePassword</code>.</p> <div class="language-sql extra-class"><pre class="language-sql"><code><span class="token keyword">USE</span> mysql<span class="token punctuation">;</span>
|
|
|
|
<span class="token comment"># Remember to change 'somePassword' below to be a unique password specific to this account.</span>
|
|
<span class="token keyword">CREATE</span> <span class="token keyword">USER</span> <span class="token string">'pterodactyl'</span>@'<span class="token number">127.0</span><span class="token number">.0</span><span class="token number">.1</span><span class="token string">' IDENTIFIED BY '</span>somePassword'<span class="token punctuation">;</span>
|
|
</code></pre></div><h3 id="create-a-database"><a href="#create-a-database" aria-hidden="true" class="header-anchor">#</a> Create a database</h3> <p>Next, we need to create a database for the panel. In this tutorial we will be naming the database <code>panel</code>, but you can
|
|
substitute that for whatever name you wish.</p> <div class="language-sql extra-class"><pre class="language-sql"><code><span class="token keyword">CREATE</span> <span class="token keyword">DATABASE</span> panel<span class="token punctuation">;</span>
|
|
</code></pre></div><h3 id="assigning-permissions"><a href="#assigning-permissions" aria-hidden="true" class="header-anchor">#</a> Assigning permissions</h3> <p>Finally, we need to tell MySQL that our pterodactyl user should have access to the panel database. To do this, simply
|
|
run the command below. If you plan on also using this MySQL instance as a database host on the Panel you'll want to
|
|
include the <code>WITH GRANT OPTION</code> (which we are doing here). If you won't be using this user as part of the host setup
|
|
you can remove that.</p> <div class="language-sql extra-class"><pre class="language-sql"><code><span class="token keyword">GRANT</span> <span class="token keyword">ALL</span> <span class="token keyword">PRIVILEGES</span> <span class="token keyword">ON</span> panel<span class="token punctuation">.</span><span class="token operator">*</span> <span class="token keyword">TO</span> <span class="token string">'pterodactyl'</span><span class="token variable">@'127.0.0.1'</span> <span class="token keyword">WITH</span> <span class="token keyword">GRANT</span> <span class="token keyword">OPTION</span><span class="token punctuation">;</span>
|
|
FLUSH <span class="token keyword">PRIVILEGES</span><span class="token punctuation">;</span>
|
|
</code></pre></div><h2 id="creating-a-database-host-for-nodes"><a href="#creating-a-database-host-for-nodes" aria-hidden="true" class="header-anchor">#</a> Creating a Database Host for Nodes</h2> <div class="tip custom-block"><p class="custom-block-title">TIP</p> <p>This section covers creating a MySQL user that has permission to create and modify users. This allows the Panel to create per-server databases on the given host.</p></div> <h3 id="creating-a-user-2"><a href="#creating-a-user-2" aria-hidden="true" class="header-anchor">#</a> Creating a user</h3> <p>If your database is on a different host than the one where your Panel or Daemon is installed make sure to use the IP address of the machine the Panel is running on. If you use <code>127.0.0.1</code> and try to connect externally, you will receive a connection refused error.</p> <div class="language-sql extra-class"><pre class="language-sql"><code><span class="token keyword">USE</span> mysql<span class="token punctuation">;</span>
|
|
|
|
<span class="token comment"># You should change the username and password below to something unique.</span>
|
|
<span class="token keyword">CREATE</span> <span class="token keyword">USER</span> <span class="token string">'pterodactyluser'</span>@'<span class="token number">127.0</span><span class="token number">.0</span><span class="token number">.1</span><span class="token string">' IDENTIFIED BY '</span>somepassword'<span class="token punctuation">;</span>
|
|
</code></pre></div><h3 id="assigning-permissions-2"><a href="#assigning-permissions-2" aria-hidden="true" class="header-anchor">#</a> Assigning permissions</h3> <p>The command below will give your newly created user the ability to create additional users, as well as create and destroy databases. As above, ensure <code>127.0.0.1</code> matches the IP address you used in the previous command.</p> <div class="language-sql extra-class"><pre class="language-sql"><code><span class="token keyword">GRANT</span> <span class="token keyword">ALL</span> <span class="token keyword">PRIVILEGES</span> <span class="token keyword">ON</span> <span class="token operator">*</span><span class="token punctuation">.</span><span class="token operator">*</span> <span class="token keyword">TO</span> <span class="token string">'pterodactyluser'</span><span class="token variable">@'127.0.0.1'</span> <span class="token keyword">WITH</span> <span class="token keyword">GRANT</span> <span class="token keyword">OPTION</span><span class="token punctuation">;</span>
|
|
FLUSH <span class="token keyword">PRIVILEGES</span><span class="token punctuation">;</span>
|
|
</code></pre></div><h3 id="allowing-external-database-access"><a href="#allowing-external-database-access" aria-hidden="true" class="header-anchor">#</a> Allowing external database access</h3> <p>Chances are you'll need to allow external access to this MySQL instance in order to allow servers to connect to it. To do this, open <code>my.cnf</code>, which varies in location depending on your OS and how MySQL was installed.</p> <p>Once opened, you'll want to change <code>bind-address=</code> to be <code>bind-address=0.0.0.0</code> which will allow connections on all interfaces, and thus, external connections.</p> <p>If your Node and Daemon are on the same machine, and you won't be needing external access, you can also use the <code>docker0</code> interface IP address, rather than <code>127.0.0.1</code>. This IP address can be found by running <code>ip addr | grep docker0</code>, and it likely looks something like <code>172.x.x.x</code>.</p></div> <div class="page-edit"><div class="edit-link"><a href="https://github.com/pterodactyl/documentation/edit/master/tutorials/mysql_setup.md" target="_blank" rel="noopener noreferrer">Help us improve this page.</a> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></div> <!----></div> <div class="page-nav"><p class="inner"></p> <div class="prev"><span>
|
|
← <a href="/daemon/standalone_sftp.html">Standalone SFTP Server</a></span></div> <div class="next"><span><a href="/tutorials/creating_ssl_certificates.html">Creating SSL Certificates</a> →
|
|
</span></div></div> </div></div></div>
|
|
<script src="/assets/js/49.eeac0293.js" defer></script><script src="/assets/js/app.8e8e42dc.js" defer></script>
|
|
</body>
|
|
</html>
|