Ubuntu サーバーで MySQL を設定し、リモート接続を実装する方法

Ubuntu サーバーで MySQL を設定し、リモート接続を実装する方法

サーバー: Ubuntu Server 16.04 LSS

クライアント: Ubuntu 16.04 LTS

サーバー構成

サーバーにmysqlをインストールする

# eric @ userver が ~ に参加しました [14:00:31] 
$ sudo apt install mysql-server をインストール mysql-client をインストール libmysqlclient-dev

成功したかどうかを確認します SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

# eric @ userver in ~ [14:10:55] 
$ sudo netstat -tap | grep mysql
tcp 0 0 localhost:mysql *:* LISTEN 5287/mysqld  

リモート接続構成ファイルを変更する

# eric @ userver in ~ [14:16:26] 
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 
#bind-address = 127.0.0.1 をコメントアウトします
#バインドアドレス = 127.0.0.1

サーバーデータベースの文字セットを utf-8 に設定する

# eric @ userver in ~ [14:16:26] 
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 
#[mysqld]に追加: character-set-server=utf8
[mysqld]
#
# * 基本設定
#
ユーザー = mysql
pid ファイル = /var/run/mysqld/mysqld.pid
ソケット = /var/run/mysqld/mysqld.sock
ポート = 3306
ベースディレクトリ = /usr
データディレクトリ = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
外部ロックをスキップ
character-set-server=utf8 #新しく追加されました#文字を表示するにはmysqlにログインしてください# eric @ userver in ~ [14:21:26]
$ mysql -u ルート -p
パスワードを入力してください: 
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは4です
サーバーバージョン: 5.7.20-0ubuntu0.16.04.1 (Ubuntu)
Copyright (c) 2000, 2017, Oracle およびその関連会社。無断複写・転載を禁じます。
OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。
ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。
mysql> '%char%' のような変数を表示します。
+--------------------------+----------------------------+
| 変数名 | 値 |
+--------------------------+----------------------------+
| 文字セットクライアント | utf8 |
| 文字セット接続 | utf8 |
| 文字セットデータベース | utf8 |
| 文字セットファイルシステム | バイナリ |
| 文字セット結果 | utf8 |
| 文字セットサーバー | utf8 |
| 文字セットシステム | utf8 |
| 文字セットディレクトリ | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
セット内の行数は 8 です (0.00 秒)

新しいリモートログインユーザーを作成し、承認する

mysql> 'lyd2017' によって識別される 'eric'@'%' というユーザーを作成します。
クエリは正常、影響を受けた行は 0 行 (0.01 秒)
mysql> grant all on *.* to 'eric'@'%';--すべての権限クエリOK、0行が影響を受けました(0.00秒)

認可について:

コマンド: GRANT 権限 ON databasename.tablename TO 'username'@'host'

注意:権限 - 選択、挿入、更新などのユーザー操作権限。所有権を付与する場合は、すべてを使用してください。

ユーザーにすべてのデータベースとテーブルを操作する権限を付与する場合は、*.* のように * を使用して指定します。

例えば:

mysql.tables に対して 'eric'@'%' に SELECT、INSERT 権限を付与します。
*.* のすべての権限を 'eric'@'%' に付与します。

ただし、これらのコマンドで承認されたユーザーは他のユーザーを承認することはできません。ユーザーに権限を与えたい場合は、

GRANT OPTION を指定して、databasename.tablename の権限を 'username'@'host' に付与します。

サーバーを再起動します

# eric @ userver in ~ [14:35:49] 
$ /etc/init.d/mysql を再起動します 
[....] mysql を再起動しています (systemctl 経由): mysql.service==== org.freedesktop.systemd1.manage-units の認証 ===
'mysql.service' を再起動するには認証が必要です。
認証者: eric,,, (eric)
パスワード: 
==== 認証が完了しました ===

クライアント

MySQLクライアントをインストールする

# エリック @ レイ in ~ [14:32:12] C:127
$ sudo apt install mysql-client
[sudo] ericのパスワード: 
パッケージリストを読み込んでいます...完了

MySQLサーバーに接続する

# エリック @ レイ in ~ [14:37:13] C:1
$ mysql -h 192.168.122.58 -u エリック -p #
パスワードを入力してください: 
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは15です
サーバーバージョン: 5.7.20-0ubuntu0.16.04.1 (Ubuntu)
Copyright (c) 2000, 2017, Oracle およびその関連会社。無断複写・転載を禁じます。
OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。
ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。
マイSQL>

ルートユーザーで直接接続する際のエラー問題について

# エリック @ レイ in ~ [14:35:22] C:1
$ mysql -h 192.168.122.58 -u ルート -p
パスワードを入力してください: 
エラー 1045 (28000): ユーザー 'root'@'192.168.122.1' のアクセスが拒否されました (パスワード使用: YES)

# 最初に root ユーザーとして直接ログインすると、エラーが報告されます。この問題を解決するには、root パスワードを変更します。 mysql>SET PASSWORD FOR 'root'@'%' = PASSWORD("123456"); 

Ubuntu Server で MySQL を設定し、リモート接続を実現する方法については、上記の記事が皆さんにお伝えできるすべてです。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • SQL Server 2008 がデータベースへの接続に「.」ローカルを使用できない問題を解決します
  • PHP を MSSQL サーバーに接続する 5 つの方法の概要
  • SQL Server 2012 データベースに接続し、C# で SQL ステートメントを実行する方法
  • SqlConnection を使用して SQL Server に接続する C# コード例

<<:  vmware workstation12 インストール CentOS プロンプト VMware Player と Device/Credential Guard に互換性がない、理由と解決策

>>:  ネイティブ JS カプセル化 vue タブ切り替え効果

推薦する

Vue3はCSSの無限シームレススクロール効果を実装します

この記事では、CSS無限シームレススクロール効果を実現するためのvue3の具体的なコードを参考までに...

画像にマウスを置いたときにズームイン/ズームアウトするには JS を使用します

マウスが画像上にあるときにズームインおよびズームアウトするには、JS を使用します。具体的なコードは...

MySQL スケジュールタスク (EVENT イベント) を詳細に設定する方法

目次1. イベントとは何ですか? 2. 「イベント」機能を有効にする1. 機能が有効になっているかど...

Windows DNS サーバーに「ワームレベル」の脆弱性が露呈、17 年間存在

脆弱性の紹介SigRed の脆弱性はワーム化可能であるため非常に危険です。つまり、ユーザーの介入なし...

Docker に MySQL をデプロイする例

目次1 コンテナクラウドとは何ですか? 2 Dockerの紹介3 dockerを使ってMySQLをイ...

MySQL の左結合操作における on 条件と where 条件の違いの紹介

優先度両方のケースで同じ条件を設定すると、異なる結果セットが生成される可能性があるのは、優先順位のた...

sed コマンドを使用してファイルの特定の行を効率的に削除する方法

序文通常、ファイル内の特定の行を削除したい場合は、まずファイルを開き、削除する内容を見つけて、これら...

ECMAScript の演算子を理解するための記事

目次単項演算子ブール演算子乗算演算子加法演算子関係演算子等価演算子条件演算子代入演算子カンマ演算子要...

DockerはElasticsearch7.6クラスタをインストールし、パスワードを設定します

Elasticsearch 6.8 以降、無料ユーザーは X-Pack のセキュリティ機能を使用でき...

初心者がHTMLタグを学ぶ(1)

初心者は、いくつかの HTML タグを理解することで HTML を学習できます。この入門書は、初心者...

Docker ベースの Jenkins のデプロイに関する詳細なチュートリアル

このドキュメントを作成した当時は2019年12月頃で、er2.200が最新バージョンでした。 1.画...

SMS送信のカウントダウンを実装するJavaScript

この記事では、SMS送信のカウントダウンを実装するためのJavaScriptの具体的なコードを参考ま...

MySQL データベースのパフォーマンス最適化の概要

目次なぜ最適化するのですか? ?どこから始めますか? ?解決策は何ですか? ? ?どうやって選ぶ? ...

MySQLグループリンクの使用に関する詳細な説明

MYSQL におけるグループ化とリンクは、データベースの操作やデータのやり取りで最もよく使用される ...

Dockerのローカルイメージ作成方法の分析

コンテナと呼ばれるものは、実際には親イメージに基づいて読み取りおよび書き込み可能なファイル階層を作成...