CentOS7にMariaDBをインストールして外部ホストから接続する方法
やりたいこと
- MariaDBインストール
- 外部ホストからMariaDBに接続
前提条件
- CentOS7インストール済み
- 外部ホストにmysqlコマンドの実行環境を作成済み
手順
- CentOS7にMariaDBをインストール
- MariaDB起動
- ローカルからMariaDBにログイン
- 外部ホスト用 MariaDBユーザ作成
- ポート3306を開放
- 外部ホストからMariaDBにログイン
1. CentOS7にMariaDBをインストール
MariaDBをインストールします
リポジトリセットアップ用スクリプトをダウンロードして実行
バージョンを指定する場合は-s -- --mariadb-server-version=[バージョン]
を末尾に追記
$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
MariaDBサーバ・MariaDBクライアントをインストール
$ yum install MariaDB-server MariaDB-client
mariadb.service
がサービスに追加されていることを確認
$ systemctl list-unit-files | grep maria
mariadb.service enabled
2. MariaDB起動
MariaDBのサービスmariadb.service
を起動します
$ systemctl start mariadb
サービスステータスActive: active (running)
を確認
$ systemctl status mariadb
● mariadb.service - MariaDB 10.3.10 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/mariadb.service.d
└─migrated-from-my.cnf-settings.conf
Active: active (running)
...
...
3. ローカルからMariaDBにログイン
デフォルトで用意されているrootユーザでローカルからMariaDBにログインします
$ mysql -u root -h localhost
デフォルトではログインパスワードは設定されていません
セキュリティ向上のため mysql_secure_installation
の実行が推奨されています
4. 外部ホスト用MariaDBユーザ作成
外部ホストのIPを[接続元ホスト]に指定して、ユーザを作成します
CREATE USER [ユーザ名]@[接続元ホスト] IDENTIFIED BY [パスワード];
-- ユーザ名 : user1
-- 接続元IP : 172.112.0.0 〜 172.112.0.255
-- パスワード : password
CREATE USER 'user1'@'172.112.0.%' IDENTIFIED BY 'password';
ユーザに権限を付与
(スキップ可。接続確認はデフォルトの権限で可能です)
GRANT [権限種別] ON [データベース名].[テーブル名] TO [ユーザ名]@[接続元ホスト] [WITH オプション];
-- 権限種別 : ALL
-- 権限範囲 : 全てのデータベースの、全てのテーブル
GRANT ALL ON *.* TO 'user1'@'172.112.0.%';
ALLで付与される権限に以下は含まれません。必要に応じて別途付与します
・ データベースレベル・グローバルレベルの権限(ファイル操作権限など)
・ GRANT OPTION権限
ユーザが追加されたことを確認
-- ユーザ名・接続元ホストを確認
SELECT User,Host FROM mysql.user;
-- 権限も含め全てのユーザ情報を確認
SELECT * FROM mysql.user;
5. ポート3306を開放
MariaDBのデフォルトポート3306を開放します
ファイアウォールにポート3306を追加(恒久対応)
$ firewall-cmd --zone=public --add-port=3306/tcp --permanent
ファイアウォールサービスのリロード
$ firewall-cmd --reload
ポート3306がファイアウォールに追加されたことを確認
$ firewall-cmd --list-ports
3306/tcp
6.外部ホストからMariaDBにログイン
先ほど作成したユーザで外部ホストからMariaDBにログインします
$ mysql -u [ユーザ名] -h [MariaDBサーバのIP] -p
$ mysql -u user1 -h 172.112.0.201 -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 5.5.5-10.3.10-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Welcome to the MySQL monitor. と表示されたら接続成功
参考文献
MariaDB Package Repository Setup and Usage - MariaDB Knowledge Base
CREATE USER - MariaDB Knowledge Base
GRANT - MariaDB Knowledge Base
mysql_secure_installation - MariaDB Knowledge Base(en)
mysql_secure_installation - MariaDB Knowledge Base(ja)
curl option 覚え書き
CentOS 7 firewalld よく使うコマンド
Author And Source
この問題について(CentOS7にMariaDBをインストールして外部ホストから接続する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/NoriIka/items/cccaf60eacee6fb6951b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .