MySQLデータベース(MySQL database)を使用している場合は、データベースを安全に保つために直面する課題をすでに認識しています。SQLインジェクションを使用したデータベースハッキングの試みからブルートフォース攻撃まで、特にデータベースをリモートで操作している場合は、データを安全に保つことは困難です。
リモート接続を許可するようにSQL(SQL)サーバーを構成する方法はいくつかありますが、 MySQLサーバーでリモート接続を許可すると、データベースがハッカーの標的になりやすいため、注意が必要です。MySQLデータベースへの安全なリモート接続を許可する場合は、次のことを知っておく必要があります。
あなたが始める前に(Before You Begin)
MySQLデータベースに変更を加える前に、データベースをバックアップする(backup your database)ことが重要です。特に、運用サーバー(アクティブに使用されているサーバー)で作業している場合は重要です。データベースまたはデータベースをホストしているサーバーに変更を加えると、問題が発生した場合に重大なデータ損失が発生する可能性があります。
また、サーバーの接続を変更すると、後でサーバーにアクセスできなくなる場合があります。これが発生した場合は、さらにサポートを受けるためにサーバー管理者に相談する必要がある場合があります。リモートで試す前に、ローカルで実行されているMySQLサーバーで変更を試し、変更が機能するかどうかを確認することをお勧めします。(MySQL)
また、リモートサーバーに変更を加える場合は、接続して変更を加えるための安全な方法が必要になる可能性があります。SSH(Secure Shell)は、リモートサーバーに接続できるため、これを行うための最良の方法であることがよくあります。SSHを使用(SSH)して、RaspberryPiでホストされて(hosted on a Raspberry Pi)いるサーバーなどのローカルネットワーク上のサーバーに接続することもできます。
このガイドでは、リモート接続を許可するようにMySQLを構成する手順について説明しますが、最初にMySQLサーバーをホストしているサーバーに直接またはリモートアクセスできることを確認する必要があります。
たとえば、 (Suppose)SSH経由でサーバーにリモートアクセスできないとします。その場合、ルートmySQLアカウントがすでにリモート接続を許可していない限り、リモート接続を直接許可するようにMySQLデータベースを構成することはできません。したがって、先に進む前に、まずこの接続を確立する必要があります。
MySQL構成ファイルの編集(Editing Your MySQL Configuration File)
リモート接続を許可するようにMySQLを構成する最初のステップは、 MySQL構成ファイルを編集することです。この段階までに、このガイドでは、mySQLデータベースをリモートでホスト しているサーバー、PC、またはMacにすでに接続しており、コンソールにアクセスできることを前提としています。(Mac)
または、 Mac(Mac)またはLinuxの場合はオープンターミナル、Windowsの場合はテキストエディタを使用して、ローカルMySQLサーバーを構成できます。
- まず、お好みのコンソールテキストエディタを使用して、MySQLデータベースファイルを編集します。Linuxでは(Linux)、ターミナルまたはSSHウィンドウに(SSH)sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf と入力して、 nanoエディターを使用してこのファイルを編集します( MySQLデータベースがデフォルトの場所にあると仮定します) 。
- Windowsを実行している場合は、ファイルエクスプローラー(File Explorer)を開き、 MySQLインストールを含むフォルダーにアクセスします(例C:/Program Files/MySQL/MySQL Server 8.0)。エントリをダブルクリックして、デフォルトのテキストエディタ(メモ帳など)を使用して(Notepad)my.iniファイルを開きます。存在しない場合は、最初にファイルを作成します(create the file first)。
- Macでは、ターミナルウィンドウを開き、sudonano/usr/local/etc/my.cnfと入力しsudo nano /usr/local/etc/my.cnf。これは、 homebrewを使用して(using homebrew)MySQLをインストールした場合のMySQLのデフォルトの構成ファイルです。
上記で参照されている場所は、MySQL構成ファイルのデフォルトの場所です。これらのコマンドが機能しない場合は、関連するファイル(my.cnf、mysqld.cnf、またはmy.ini)を手動で検索して、関連するファイルパスを見つける必要があります。
安全なバインドアドレスIP範囲の設定(Setting a Safe Bind-Address IP Range)
- サーバーのMySQL(MySQL)構成ファイルを開いたら、キーボードの矢印キーを使用して、ファイルのbind-addressセクションにアクセスします。このIP範囲は、データベースへの接続を制限します。これは通常、127.0.0.1を使用するローカルマシンまたはサーバーからの接続のみを許可するように設定されています。
- 現在のインターネット接続を使用するデバイスからの接続を許可するようにMySQLデータベースを構成する場合は、最初にパブリックIPアドレスを見つけてから、 (find your public IP address)127.0.0.1をそのIPアドレスに置き換えます。または、接続を許可するデバイスまたはサーバーのIPアドレスに置き換えます。
- 状況によっては、 MySQL(MySQL)データベースへのすべての(all)リモート接続を許可したい場合があります。これには極度のリスクが伴うため(extreme risk)、実稼働サーバーでは使用しないでください。ただし、これを許可する場合は、127.0.0.1を0.0.0.0に置き換えます。
- [基本設定](Basic Settings)セクションでポート(port )値をメモします。これは次のセクションで必要になります。表示されていない場合は、デフォルト値であるポート3306が使用されます。port = xxxxxxxxを適切なポート値に置き換えることで、独自のポートを追加できます。
- MySQL構成ファイルで(MySQL)bind-addressを構成したら、ファイルを保存します。Linuxを使用している場合は、 Ctrl + O およびCtrl + X を選択してこれを行います。Macでは、Command + O およびCommand + Xを選択します。Windowsユーザーは、[ファイル](File ) >[保存](Save)を選択して保存できます。
- 次に、LinuxおよびMacユーザーは、 mysql.server stop &&mysql.serverstartまたはmysql.serverrestartと入力してMySQLを再起動できます。sudoを使用し(using sudo)てコマンドを昇格させ(例:sudo mysql.server restart)、mysql.serverファイルへの適切なパスを使用する必要がある場合があります(例:/usr/local/bin/mysql.server)。
- 上記のコマンドが機能しない場合は、代わりにsudo servicemysqlrestartを試してください。(sudo service mysql restart )
- Windowsで(Windows)MySQLを再起動するには、 [スタート(Start)]メニューを右クリックし、 [ Windows PowerShell(管理者)(Windows PowerShell (Admin)) ]を選択して、新しいPowerShellウィンドウを開きます。PowerShellウィンドウで、netstopmysql80と(net stop mysql80 )入力してからnetstartmysql80と入力し、PC上のmysql80(mysql80)を正しい(net start mysql80)サービス名に置き換えます。
Windowsで正しいサービス名がわからない場合は、netstartと入力(net start)して検索してください。構成を再ロードできない場合は、サーバーを再起動し、代わりに手動で(必要に応じて)MySQLをリロードします。(MySQL)
ファイアウォールの構成(Configuring Your Firewalls)
この段階で、MySQLデータベースは、 (MySQL)MySQL構成ファイルで(MySQL)bind-address値として設定したIPアドレスを使用するデバイスからのリモート接続を許可する必要があります(または、この値を0.0.0.0に設定した場合はすべてのデバイスから)。ただし、接続は引き続きデバイスまたはネットワークファイアウォール(device or network firewall)によってブロックされます。
ほとんどのサーバーとPCは、特定のポートへのアクセスが許可されていない限り、ファイアウォールを使用して接続をブロックします。これを構成する手順は、 Windows(Windows)とLinuxのどちらで(Linux)MySQLを実行しているかによって異なります。Macファイアウォールはデフォルトで無効になっているため、ここで追加の手順を実行する必要はありません。
Linuxファイアウォールを構成する(Configure Linux Firewalls)
多くのLinuxサーバーは、デフォルトのファイアウォールユーティリティとしてiptablesを使用しています。(iptables)以下の手順で設定できます。
- ターミナルまたはSSH接続を開き、 sudo iptables -A INPUT -p tcp -s XXXX –dport YYYY-jACCEPTと入力します。XXXXを(X.X.X.X)MySQL接続を(from)許可するデバイスのIPアドレスに置き換え、 YYYYを(YYYY )MySQL構成ファイル(例:3306)の一致するポート値に置き換えます。
- これにより、ファイアウォールが一時的に構成されます。DebianまたはUbuntuベースのLinuxサーバーを使用している場合は、ターミナルまたはSSHウィンドウにsudonetfilter-persistentsave(sudo netfilter-persistent reload )およびsudonetfilter-persistentreloadと入力して、この変更を永続的にします。(sudo netfilter-persistent save)
iptablesがLinuxディストリビューション(Linux)のデフォルトのファイアウォールツールでない場合、詳細についてはディストリビューションのユーザーマニュアルを参照する必要があります。特定のパッケージ(netfilter-persistentなど)が利用できない場合は、ディストリビューションのソフトウェアリポジトリツールを使用してインストールします(例:sudo apt install netfilter-persistent)。
Windowsファイアウォールを構成する(Configure Windows Firewalls)
Windows PCまたはサーバーを使用してデータベースをホストしている場合は、次の手順を使用してファイアウォールを構成できます。
- (Right-click)[スタート(Start)]メニューを右クリックして、 [ファイル名を指定して実行(Run)]を選択します。
- [実行(Run)]ボックスに「wf.msc」と入力し、[ (wf.msc)OK ]を選択します。
- Windows Defenderウィンドウで、[受信ルール](Inbound Rules ) >[新しいルール(New Rule)]を選択します。
- [新しいインバウンドルールウィザード](New Inbound Rule Wizard)ウィンドウで、[ポート](Port ) >[次へ(Next)]を選択します。
- 次のメニューで、オプションからTCPを選択し、 (TCP)3306 (または(3306 )MySQL構成ファイルにリストされているポート値)と入力して、[次へ(Next)]を選択します。
- [アクション(Action)]メニューで、デフォルトのオプションを[接続を(Allow the connection)有効にする]のままにして、[次へ(Next)]を選択します。
- ルールをすべてのネットワークタイプに適用することを確認してから、[次へ](Next)を選択します。
- 提供されたポートにルールのわかりやすい名前(MySQLなど)を入力し、[(MySQL)完了(Finish)]を選択してファイアウォールルールのリストに追加します。
接続に問題がある場合は、上記の手順を繰り返し、同じ詳細(ポート3306など)を使用してファイアウォール設定で新しいアウトバウンドルールを作成してください。(outbound rule )また、データベースへのインバウンド接続とアウトバウンド接続を許可するため に必要なブロックされたポートを開く(open the necessary blocked ports)ようにローカルネットワークルーターを構成する必要がある場合もあります。
MySQLを使用したリモートサーバーへの接続(Connecting to a Remote Server Using MySQL)
リモート接続を許可するようにMySQL(MySQL)データベースを構成した後、実際にデータベースへの接続を確立する必要があります。これは、ターミナルまたはPowerShellウィンドウからmysqlコマンド(Windowsでは(Windows)mysql.exe )を使用して実行できます。
Windowsを実行している場合は、開始する前にMySQLがローカルにインストールされ(MySQL is installed locally)ていることを確認する必要があります。Macユーザーはターミナルからhomebrewを使用して(using homebrew)MySQLをインストールでき( (MySQL) brew install mysql)、Linuxユーザーはローカルアプリリポジトリ(例:sudo apt install mysql)を使用して必要なパッケージをインストールできます。
LinuxまたはMacでMySQLに接続する(Connecting to MySQL on Linux or Mac)
- MacまたはLinuxでリモートMySQLサーバーに接続するには、新しいターミナルウィンドウを開き、mysql -u username -h XXXX:XXXX-pと入力します。XXXX:XXXXをリモートサーバーのIPアドレスとポート番号(例:100.200.100.200(100.200.100.200:3306) :3306 )に置き換え、 usernameをMySQLユーザー名に置き換えます。
- プロンプトが表示されたら、パスワードを確認します。接続が成功すると、ターミナルに成功メッセージが表示されます。
WindowsでMySQLに接続する(Connecting to MySQL on Windows)
- Windows上のリモートMySQLサーバーに接続するには、 [スタート(Start)]メニューを右クリックし、 [ Windows PowerShell(管理者)(Windows PowerShell (Admin)) ]を選択して、新しいPowerShellウィンドウを開きます。
- 新しいPowerShellウィンドウで、cd “C:\Program Files\MySQL\MySQL Workbench 8.0\」と入力して正しいフォルダーに入り、このディレクトリをPC上の正しいインストールディレクトリに置き換えます。たとえば、MySQLのバージョンが8.0.1の場合は、代わりにMySQLWorkbench8.0.1フォルダーを使用します(MySQL Workbench 8.0.1)。
- そこから、.\mysql.exe -u username -h X.X.X.X:XXXX -pと入力します。XXXX:XXXXをリモートサーバーのIPアドレスとポート番号(例:100.200.100.200(100.200.100.200:3306) :3306 )に置き換え、ユーザー名(username)をリモートアクセスを許可するMySQLユーザー名( (MySQL)rootなど)に置き換えます。画面上の追加の指示に従います。(Follow)
- サインインプロセスを完了し、MySQLデータベースにリモートでアクセスするために、プロンプトが表示されたらパスワードを入力します。
これが機能しない場合は、これらの手順と-h localhost引数を使用して、 SSHを使用して(または直接アクセスして)MySQLサーバーをホストしているサーバーまたはPCに接続します。次に、以下の手順に従って、適切なユーザーアカウントを作成できます。
MySQLデータベースへのリモートユーザーアクセスの許可(Allowing Remote User Access to a MySQL Database)
この時点で、サーバーのrootユーザーアカウントまたは昇格された特権を持つ別のユーザーアカウントを使用して、 MySQLサーバーにリモートで接続できるようになります。このレベルのアクセスは安全ではないため、MySQLデータベースにアクセスするためのより制限されたアカウントを作成することをお勧めします。
このアカウントはMySQL(MySQL)サーバーへのアクセスが制限され、選択したデータベースとのみ対話できるようになります。他のデータベースデータへのアクセス、新しいユーザーアカウントの作成など、より深刻な変更を加えることはできません。
MySQLサーバーにリモートでサインインする機能が必要です。rootアカウントをリモートで使用できない場合は、リモートSSH接続を介して(SSH)mysqlコマンドを使用するか、サーバーをホストしているPCまたはサーバーに直接アクセスして、サーバーのシェルにアクセスする必要があります。
- ( mysqlツールを使用して)リモートMySQLシェルで、 CREATE USER “username”@”x.x.x.x” IDENTIFIED BY “password”; Enterを選択します。usernameを作成するユーザー名に、xxxxを接続元のIPアドレスに、passwordを適切なパスワードに置き換えます。
- 新しいアカウントに必要な権限を付与する必要があります。これを行うには、GRANT ALL ON databasename.* TO username@”x.x.x.x”; databasename、username、およびxxxx を正しい詳細に置き換えます。必要に応じて、 databasename(databasename)を*に置き換えて、すべてのデータベースへのアクセスを許可します。
アクセスが許可されたら、上記のセクションの手順を使用して、新しいアカウントを使用してサーバーにリモートで接続します(例:mysql -u username -h XXXX:XXXX -p)。
データベースデータの保護(Securing Your Database Data)
MySQLまたは別のタイプのSQLデータベースを使用しているかどうかにかかわらず、データのセキュリティを維持するために接続を安全に保つことが重要です。これを行う良い方法は、古い(そして簡単に推測できる)パスワードに頼るのではなく、サーバーへのリモートアクセス用のSSHキーを生成することです。(generate SSH keys for remote access)
データの損失が心配な場合は、データベースをオンラインで簡単にバックアップできます。(back up your database)ほとんどのデータベースはLinuxサーバーを使用して実行されます。Linuxファイルのバックアップを簡単に自動化できます(automate a Linux file backup easily)。Windowsで(Windows)MySQLを実行している場合は、Windows用に同様の自動バックアップシステムを(automatic backup system for Windows)セットアップして、緊急時にデータを復元できるようにすることができます。
How to Allow Remote Connections to MySQL
If you’rе working with a MySQL database, then you’re already aware of the challenges you face in keeping your database secure. From database hacking attempts using SQL injections to brute force attacks, it’s difficult to keep your data safe, especially if you’re working with a database remotely.
There are ways to configure an SQL server to allow remote connections, but you need to be careful, as allowing remote connections on a MySQL server can make your database an easy target for hackers. If you want to allow secure, remote connections to a MySQL database, here’s what you’ll need to know.
Before You Begin
Before you make any changes to your MySQL database, it’s important that you backup your database, especially if you’re working on a production server (a server in active use). Any changes you make to your database, or the server hosting it, could result in serious data loss if something goes wrong.
You may also find that changes to your server’s connections may prevent you from accessing it afterward. If this happens, you may need to consult with a server administrator for further support. A good idea is to trial any changes on a locally-run MySQL server to check if your changes work before trying them remotely.
It’s also likely that if you’re making changes to a remote server, you’ll need a safe way to connect and make changes. SSH (Secure Shell) is often the best way to do this, as it allows you to connect to your remote server. You can also use SSH to connect to servers on your local network, such as those hosted on a Raspberry Pi.
This guide will lead you through the steps to configuring MySQL to allow remote connections, but you’ll need to ensure you have direct or remote access to the server hosting your MySQL server first.
Suppose you don’t have remote access to your server via SSH (for example). In that case, you won’t be able to configure your MySQL database to allow remote connections directly unless your root mySQL account already allows remote connections. So, you will need to establish this connection first before you can proceed.
Editing Your MySQL Configuration File
The first step in configuring MySQL to allow remote connections is to edit your MySQL configuration file. By this stage, this guide will assume you have already connected to the server, PC, or Mac hosting your mySQL database remotely and have console access.
Alternatively, you can configure a local MySQL server using an open terminal on Mac or Linux or a text editor on Windows.
- To start, use your preferred console text editor to edit your MySQL database file. On Linux, type sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf into a terminal or SSH window to edit this file using the nano editor (assuming your MySQL database is in the default location).
- If you’re running Windows, open File Explorer and access the folder containing your MySQL installation (eg. C:/Program Files/MySQL/MySQL Server 8.0). Open the my.ini file using your default text editor (eg. Notepad) by double-clicking the entry. If it isn’t there, create the file first.
- On Mac, open a terminal window and type sudo nano /usr/local/etc/my.cnf. This is the default configuration file for MySQL if you’ve installed MySQL using homebrew.
The locations referenced above are the default locations for MySQL configuration files. If these commands don’t work, you’ll need to search for the relevant files (my.cnf, mysqld.cnf, or my.ini) manually to locate the relevant file path.
Setting a Safe Bind-Address IP Range
- Once you’ve opened the MySQL configuration file for your server, use your keyboard’s arrow key to reach the bind-address section of the file. This IP range limits the connections to your database, which is typically set to only allow connections from the local machine or server using 127.0.0.1.
- If you want to configure your MySQL database to allow connections from devices using your current internet connection, find your public IP address first, then replace 127.0.0.1 with that IP address. Alternatively, replace it with an IP address for the device or server you wish to allow connections from.
- In some circumstances, you may wish to allow all remote connections to a MySQL database. This carries extreme risk and shouldn’t be used on a production server. If you want to allow this, however, replace 127.0.0.1 with 0.0.0.0.
- Make note of the port value in the Basic Settings section. This will be required in the next section. If it isn’t visible, the default value will be used, which is port 3306. You can add your own port by typing port = xxxx on a new line, replacing xxxx with a suitable port value.
- Once you’ve configured the bind-address in your MySQL configuration file, save the file. If you’re on Linux, select Ctrl + O and Ctrl + X to do this. On Mac, select Command + O and Command + X. Windows users can save by selecting File > Save.
- Next, Linux and Mac users can restart MySQL by typing mysql.server stop && mysql.server start or mysql.server restart. You may need to elevate the command using sudo (eg. sudo mysql.server restart) and use the appropriate path to the mysql.server file (eg. /usr/local/bin/mysql.server).
- If the above command doesn’t work, try sudo service mysql restart instead.
- To restart MySQL on Windows, open a new PowerShell window by right-clicking the Start menu and selecting Windows PowerShell (Admin). In the PowerShell window, type net stop mysql80 followed by net start mysql80, replacing mysql80 with the correct service name on your PC.
If you’re unsure of the correct service name on Windows, type net start to find it. If you can’t reload your configuration, restart your server and reload MySQL manually (if necessary) instead.
Configuring Your Firewalls
At this stage, your MySQL database should allow remote connections from devices using the IP address you set as the bind-address value in your MySQL configuration file (or from all devices if you set this value to 0.0.0.0 instead). However, connections will still be blocked by your device or network firewall.
Most servers and PCs use a firewall to block connections unless access to a specific port is granted. The steps to configure this will vary, depending on whether you’re running MySQL on Windows or Linux. Mac firewalls are disabled by default, so you shouldn’t need to complete any additional steps here.
Configure Linux Firewalls
Many Linux servers use iptables as the default firewall utility. You can configure it by following the steps below.
- Open a terminal or SSH connection and type sudo iptables -A INPUT -p tcp -s X.X.X.X –dport YYYY -j ACCEPT. Replace X.X.X.X with the IP address for the device you wish to allow MySQL connections from, and replace YYYY with the matching port value from your MySQL configuration file (eg. 3306).
- This will configure the firewall temporarily. If you’re using a Debian or Ubuntu-based Linux server, make this change permanent by typing sudo netfilter-persistent save and sudo netfilter-persistent reload into the terminal or SSH window.
If iptables isn’t the default firewall tool for your Linux distribution, you’ll need to consult your distribution’s user manual for more information. If certain packages (such as netfilter-persistent) are unavailable, use your distribution’s software repository tool to install it (eg. sudo apt install netfilter-persistent).
Configure Windows Firewalls
If you’re using a Windows PC or server to host your database, you can configure your firewall using these steps:
- Right-click the Start menu and select Run.
- In the Run box, type wf.msc and select OK.
- In the Windows Defender window, select Inbound Rules > New Rule.
- In the New Inbound Rule Wizard window, select Port > Next.
- At the next menu, select TCP from the options, type 3306 (or whichever port value is listed in your MySQL configuration file), then select Next.
- At the Action menu, leave the default option to Allow the connection enabled, then select Next.
- Confirm that you want the rule to apply to all network types, then select Next.
- Type a descriptive name for the rule (eg. MySQL) in the port provided, then select Finish to add it to your list of firewall rules.
If you have trouble connecting, repeat these steps above, making sure to create a new outbound rule in your firewall settings using the same details (port 3306, etc). You may also need to configure your local network router to open the necessary blocked ports to allow inbound and outbound connections to your database.
Connecting to a Remote Server Using MySQL
After configuring your MySQL database to allow remote connections, you’ll need to actually establish a connection to it. You can do this using the mysql command (mysql.exe on Windows) from a terminal or PowerShell window.
If you’re running Windows, you will need to make sure that MySQL is installed locally before you begin. Mac users can install MySQL using homebrew from the terminal (brew install mysql), while Linux users can use their local app repository (eg. sudo apt install mysql) to install the necessary packages.
Connecting to MySQL on Linux or Mac
- To connect to your remote MySQL server on Mac or Linux, open a new terminal window and type mysql -u username -h X.X.X.X:XXXX -p. Replace X.X.X.X:XXXX with your remote server IP address and port number (eg. 100.200.100.200:3306) and username with your MySQL username.
- When prompted, confirm your password. If the connection is successful, a success message will appear in the terminal.
Connecting to MySQL on Windows
- To connect to a remote MySQL server on Windows, open a new PowerShell window by right-clicking the Start menu and selecting Windows PowerShell (Admin).
- In the new PowerShell window, type cd “C:\Program Files\MySQL\MySQL Workbench 8.0\” to enter the correct folder, replacing this directory with the correct installation directory on your PC. For example, if your version of MySQL is 8.0.1, use the MySQL Workbench 8.0.1 folder instead.
- From there, type .\mysql.exe -u username -h X.X.X.X:XXXX -p. Replace X.X.X.X:XXXX with your remote server IP address and port number (eg. 100.200.100.200:3306) and username with a MySQL username that allows remote access (such as root). Follow any additional on-screen instructions.
- Provide your password, when prompted, to complete the sign-in process and access your MySQL database remotely.
If this doesn’t work, connect to the server or PC hosting your MySQL server using SSH (or access it directly) using these steps and using the -h localhost argument. You can then create a suitable user account by following the steps below.
Allowing Remote User Access to a MySQL Database
By this point, you should be able to connect to your MySQL server remotely using your server’s root user account or another user account with elevated privileges. As this level of access is unsafe, you may prefer to create a more restricted account for accessing your MySQL database.
This account will have limited access to your MySQL server, allowing it to interact with only selected databases. It won’t be able to make more serious changes, such as accessing other database data, creating new user accounts, etc.
You’ll need to have the ability to sign into your MySQL server remotely. If you can’t use your root account remotely, you’ll need to access your server’s shell using the mysql command via a remote SSH connection or by directly accessing the PC or server hosting the server.
- In your remote MySQL shell (using the mysql tool), type CREATE USER “username”@”x.x.x.x” IDENTIFIED BY “password”; and select Enter. Replace username with the username you wish to create, x.x.x.x with the IP address you wish to connect from, and password with a suitable password.
- You’ll need to grant your new account with the necessary permissions. To do this, type GRANT ALL ON databasename.* TO username@”x.x.x.x”; and replace databasename, username, and x.x.x.x with the correct details. If you wish to, replace databasename with * to grant it access to all databases.
With access granted, use the steps in the section above to connect to your server remotely using your new account (eg. mysql -u username -h X.X.X.X:XXXX -p).
Securing Your Database Data
Whether you’re working with MySQL or another type of SQL database, it’s important to keep your connections secure to maintain your data security. A good way to do this is to generate SSH keys for remote access to your server, rather than relying on outdated (and easily guessable) passwords.
If you’re worried about data loss, you can easily back up your database online. Most databases are run using Linux servers—you can automate a Linux file backup easily. If you’re running MySQL on Windows, you can set up a similar automatic backup system for Windows, allowing you to restore your data in an emergency.