質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

解決済

MySQL8.0.20 外部接続について

yabe0919
yabe0919

総合スコア0

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

3回答

0評価

0クリップ

3065閲覧

投稿2020/05/10 17:59

■質問内容

レンタルサーバを借りて、DBサーバの構築を行っています。
構築したDBに外部から接続が出来ず、どなたか知恵をお貸し頂ければ助かります。
設定でおかしい箇所や、抜けている箇所、試したらいい事、参考出来そうなサイト等、教えて頂ければ助かります。
一通り試して、手詰まり状態となっています。。

■環境

CentOS7.4 、MySQL8.0.20 、借りているサーバはさくらのレンタルサーバでレンタルしています。
自身のPC(Windows10)で使用していたMySQLのバックアップを取得し、バックアップを使用してDBサーバに移行しています。

■試したこと

①外部接続用のユーザ作成
user:admin
host : %
plugin:mysql_native_passward
※hostは特定のIPに絞ったほうが良いと思いますが、現状’%’にしています。

mysql> select user, host, plugin FROM mysql.user; +------------------+-----------+-----------------------+ | user | host | plugin | +------------------+-----------+-----------------------+ | admin | % | mysql_native_password | | mysql.infoschema | localhost | caching_sha2_password | | mysql.session | localhost | caching_sha2_password | | mysql.sys | localhost | caching_sha2_password | | root | localhost | mysql_native_password | +------------------+-----------+-----------------------+

②/etc/my.cnf の設定変更

# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html [mysqld] # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove the leading "# " to disable binary logging # Binary logging captures changes between backups and is enabled by # default. It's default setting is log_bin=binlog # disable_log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M # # Remove leading # to revert to previous value for default_authentication_plugin, # this will increase compatibility with older clients. For background, see: # https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin default-authentication-plugin=mysql_native_password datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid #20200507 #bind-address = 127.0.0.1 #bind-address = *********自身のIPの為、*にしています。 ~

bind-addressをすべてコメントアウト
default-authentication-plugin=mysql_native_passwordに変更。

③firewall設定
mysql 使用ポート確認

mysql> show variables like 'port'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | port | 3306 | +---------------+-------+ 1 row in set (0.02 sec) コード

サービスで使用しているポート確認
mysql.xml

[root@tk2-229-24163 ~]# cat /usr/lib/firewalld/services/mysql.xml <?xml version="1.0" encoding="utf-8"?> <service> <short>MySQL</short> <description>MySQL Database Server</description> <port protocol="tcp" port="3306"/> </service>

firewallでサービス許可

[root@tk2-229-24163 ~]# firewall-cmd --list-all --zone=public public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: dhcpv6-client http https mysql ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

【外部からmysqlにアクセスする際のコマンド】
mysql -h <DBサーバIP> -u admin -p
【エラー内容】
ERROR 2003 (HY000): Can't connect to MySQL server on 'DBサーバIP' (10060)

よろしくお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

sazi
sazi

2020/05/11 01:40

bind-addressをコメントアウトではなく、個別のアドレス指定した場合を確認されましたか?
yabe0919
yabe0919

2020/05/11 01:47

個別のアドレスを指定した場合も確認致しました。
sazi
sazi

2020/05/11 02:06 編集

修正後にMySQLを再起動して確認していますか?
IkumiMashiba
IkumiMashiba

2020/05/11 02:30

環境の構成は 1\)internet --- \[CentOS7\.4 レンタルサーバ Mysql\] 2\)internet --- \[CentOS7\.4 レンタルサーバ\] --- \[Sakura DB Server Mysql\] どちらでしょうか?
yabe0919
yabe0919

2020/05/11 02:39

@sazi 様 はい、修正後にMySQLの再起動を行っております。 @IkumiMashiba様 構成は1かと思います。 【自身の自宅PC】----【Centos7\.4 MySQL】 自宅のPCから直接レンタルサーバ上のDBにアクセスを行っています。 踏み台は挟んでおりません。
yabe0919
yabe0919

2020/05/11 03:10

@sazi様、IkumiMashiba様 本件ですが、新規にDBサーバを構築したところ無事外部から接続することが出来ました。 前回との差異は、MysqLを構築する際にバックアップファイルからデータを移行しなかった点となります。 目的としての、【外部からMySQLに接続すること】は達成することが出来ましたので、本件クローズさせていただきます。 ※bind-addressはコメントアウトした状態でも、問題無く通信致しました。 お二方、ご協力ありがとうございました。
IkumiMashiba
IkumiMashiba

2020/05/11 03:17

```shell # mysql --help | grep my\.cnf order of preference, my\.cnf, \$MYSQL_TCP_PORT, /etc/my\.cnf /etc/mysql/my\.cnf ~/\.my\.cnf ``` 当てずっぽうですが、他のmy\.cnfの存在の可能性
yabe0919
yabe0919

2020/05/11 03:31

他の設定ファイルの影響も考えたのですが、 今回は、Windowsで構築したDBのダンプファイルをLinuxで復元したことが原因の様でした。 お時間頂きありがとうございました!!

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。