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 タブ切り替え効果

推薦する

Zabbixリモートコマンド実行の詳細な例

目次1つ。環境二。予防三つ。例Zabbix トリガーがしきい値に達すると、アラート メッセージの送信...

CSS で雨滴アニメーション効果を実装するサンプルコード

ガラス窓今日実現するのは雨滴効果です。ただし、雨滴効果を実現する前に、まずは曇りガラス効果を作成しま...

Dockerfileを使用してDockerイメージを構築する

目次Dockerfileを使用してDockerイメージを構築する1. Dockerfile とは何で...

Vue3 (III) ウェブサイトホームページレイアウト開発

目次1. はじめに2. 実際の事例1. App.vueを変更する2. レイアウトを調整する3. ジャ...

MySQL 全体または単一のテーブルデータのエクスポート

単一のテーブルをエクスポートするmysqldump -u ユーザー -p db名 テーブル名 >...

MySQL トランザクション分離レベルと MVCC の詳細な説明

目次トランザクション分離レベル同時トランザクション実行中に発生した問題SQL標準の4つの分離レベルM...

iframeを使用してページを呼び出すとページがキャッシュされるかどうかの簡単な分析

最近、毎日変更されるページを iframe を使用して呼び出す必要があるプロジェクトがあります。その...

uniappのグローバル変数実装の詳細な説明

序文この記事では、uniapp グローバル変数の実装方法をいくつかまとめています。詳細な知識は、uV...

反応ループデータの実装(リスト)

まず、バックグラウンドから来るデータをシミュレートしてみましょう。ここでは、コードをわかりやすくする...

Node.js で MySQL データベースにバッチデータを挿入する方法

プロジェクト(nodejs)では、一度に複数のデータをデータベースに挿入する必要があります。データベ...

Linux でのソース パッケージ インストールのサービス管理

目次1. ソースパッケージサービスの起動管理2. ソースパッケージサービスのセルフスタート管理3. ...

MySQL 8.0.14 のインストールと設定方法のグラフィックチュートリアル (一般)

MySQLサービス8.0.14のインストール(一般)の参考までに、具体的な内容は次のとおりです。イ...

MySQL パフォーマンス最適化のための魔法のツール、Explain の基本的な使用分析

導入MySQL には、SELECT ステートメントを分析し、開発者が最適化できるように SELECT...

Vueの7つの値転送メソッドの詳細な説明

1. 父から息子へ子コンポーネントにpropsフィールドを定義し、その型は配列です (フィールド値の...

nginx の場所に複数の Proxy_pass メソッドがある

1. まず、nginxの位置情報に関する関連知識を確認しましょう1) 位置マッチング手順: ~ #波...