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

推薦する

新しい CSS :where および :is 疑似クラス関数とは何ですか?

:is と :where とは何ですか? :is()と:where()は、セレクターを作成するとき...

MySQLスタートアップが起こした事故の実録

目次背景MySQLが完全に起動したかどうかを確認する方法事故最初の変更2回目の改訂要約するMySQL...

システムメンテナンスページにリダイレクトするように nginx を設定する

先週末、兄弟プロジェクトはより良いサービスを提供するためにサーバーを拡張する準備をしていました。兄弟...

IEではボタンが両側に伸びる

ボタン (input, button) を記述すると、IE では次のようになります。単語数が増えると...

React Nativeはモニタリングジェスチャーの上下プル効果を実現します

React Native は、プルアップとプルダウンの監視ジェスチャを実装します。詳細なコアコードは...

Vueのフィルターについて知っておくべきこと

目次序文フィルターとは何かフィルターの使い方グローバルフィルターローカルフィルターフィルターは直列に...

Alibaba Cloud Centos6.X でメールを送信する際に発生するさまざまな問題

序文: Webサービスを提供するために、Alibabaクラウドホストを新しくインストールしました。す...

Vue+Elementでページング効果を実現

この記事の例では、ページング効果を実現するためのvue+Elementの具体的なコードを参考までに共...

DPlayer.js ビデオ再生プラグインの使い方

DPlayer.jsビデオプレーヤープラグインは使いやすい主な用途: ビデオの再生、監視の開始、終了...

美容・スタイリングウェブサイト向けのカラーマッチングテクニックと効果表示

色はあらゆるウェブサイトにとって最も重要な要素の 1 つであり、閲覧者に大きな影響を与えるため、色の...

CSS トップに戻る コード例

最近のウェブサイトのほとんどはページが長く、4 画面または 5 画面の長さのものもあれば、2 画面ま...

ネイティブ JavaScript を使用した Web 計算機の実装

この記事では、参考までに、計算機のWebバージョンを実装するためのJavaScriptの具体的なコー...

ウェブフォームデザインのための5つの実用的なヒント

1. フォームテキスト入力のモバイル選択: テキスト入力フィールドにプロンプ​​トが追加されている場...

ブラウザのキャッシュを防ぐために、js または css の後に ?v= バージョン番号を追加します。

コードをコピーコードは次のとおりです。 <span style="font-size...