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

推薦する

MySQLクエリ条件のnot inとinの違いと理由

まずSQLを書く SELECT DISTINCT from_id タラから cod.from_id ...

Vue3ライフサイクル関数とメソッドの詳細な説明

1. 概要いわゆるライフサイクル機能とは、特定の条件下で自動的にトリガーされる機能です。 2. VU...

jsBridgeの動作メカニズムを1つの記事で学ぶ

目次js 呼び出しメソッドアンドロイド1.jsはネイティブを呼び出す2. ネイティブコールjs iO...

SQL 挿入文の書き方の説明

方法 1: INSERT INTO t1(field1,field2) VALUE(v001,v00...

CSS3 を使用したテキスト折り紙効果のサンプルコード

序文この記事では主に、CSS3 を使用してテキスト折り紙効果を実現する例を紹介します。これは、参考と...

vue-tableは追加と削除を実装します

この記事では、vue-table の追加と削除の具体的なコードを参考までに紹介します。具体的な内容は...

MySQL を暗号化および復号化するいくつかの方法 (要約)

目次前面に書かれた双方向暗号化エンコード/デコードAES_ENCRYPT/AES_DECRYPT D...

Node.jsを理解するのはとても簡単です

目次Node.js の公式紹介Node.jsのコア開発言語ウェブ上の JavaScript と No...

js は丸で囲まれた数字のリストのサンプルコードを動的に追加します

1. まず本文にulタグを追加します <!-- 順序なしリスト --> <ul i...

MySQLでテーブルインデックスを構築する方法

目次複数の種類のフィルタリングをサポート複数の範囲のクエリを避ける並べ替えを最適化するインデックスの...

Web デザイン リファレンス Firefox デフォルト スタイル

W3C は HTML の標準をいくつか確立していますが、ブラウザは独自の定義済みスタイルに従って W...

XshellがvirtualBox仮想マシンに接続できない問題の解決策

まず、VirtualBox仮想マシンのネットワーク設定モードについて説明します。NAT+ホストオンリ...

HTML テーブル マークアップ チュートリアル (42): テーブル ヘッダーの水平方向の配置属性 ALIGN

水平方向では、テーブル ヘッダーの配置を左、中央、右に設定できます。基本的な構文<TH ALI...

mysqlはタイムゾーン関連の問題を解決します

序文: MySQL を使用すると、時間の表示が正しくない、タイムゾーンが GMT+8 ゾーンにない、...