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

推薦する

Tomcatを使用して共有ライブラリを設定し、同じjarを共有する

デプロイされるプロジェクトが増えるにつれて、Tomcat にデプロイされるリリース パッケージも増え...

HTML の相対パスと絶対パスの違いの分析

HTML 初心者は、ファイルを正しく参照する方法という問題によく遭遇します。たとえば、HTML ペー...

Springboot および Vue プロジェクトの Docker デプロイメントの実装手順

目次A. SpringbootプロジェクトのDockerデプロイメント1. Springbootプロ...

海外の無料写真素材サイトベスト9

良い画像素材のウェブサイトを見つけるのは難しいです。特に無料です。良い写真には非常に目を引く視覚効果...

Vue3デスクトップアプリケーションの構築方法

この記事では、Vite を使用して Vue 3 デスクトップ プロジェクトを開発する方法について説明...

Linuxはiftopを使用してネットワークカードのトラフィックをリアルタイムで監視します

Linux は iftop を使用してネットワーク カードのトラフィックをリアルタイムで監視します。...

mysql5.7.21 utf8 エンコーディングの問題と Mac 環境での解決方法

1. 目標: mysql の character_set_server の値を latin1 から ...

vue3 コンポーネントでの v-model の使用と詳細な説明

目次v-model 入力で双方向バインディングデータを使用するコンポーネント内の v-model他の...

altとtitleの違いの詳しい説明

これら 2 つの属性はよく使用されますが、その違いはまとめられていません。それでは、その使い方をまと...

さまざまなSQL結合を簡単に学ぶ

SQL JOIN 句は、テーブル間の共通フィールドに基づいて 2 つ以上のテーブルの行を結合するため...

ユーザーエクスペリエンスの構築

<br />おそらく、あなたは会社に入社したばかりで、その会社が「ユーザビリティ」に関す...

IDEA が docker を統合して springboot プロジェクトを展開するプロセス全体

目次1. IDEAはdockerプラグインをダウンロードします2. クラウドサーバーDocker 2...

nginxの基礎を学ぶ

目次1. nginx とは何ですか? 2. nginx で何ができるのか? 2.1 フォワードプロキ...

CSS の複雑なセレクターと CSS のフォントスタイルと色属性の詳細な説明

これまでに CSS の基本的なセレクターをいくつか学習しましたが、今日は CSS の複雑なセレクター...

Linux の一般的な Java プログラム起動スクリプトのコード例

シェルを起動する頻度は非常に低いですが。 。 。しかし、書くたびに、多くの jar ファイル パスを...