Oacle Express Edition 18c でIPアドレス変更(DHCP)に対応させる

Oracleの勉強用としてWindows10にインストールして使う場合はほとんどDHCPの環境になると思います。
DHCPでも割り当てられるIPがかわることはあまりないかもしれませんが変われば動かなくなるのでとりあえず動作する手順をまとめておきます。
※Oracleを運用環境で利用する手順ではありませんし正しい手順でないことを理解頂き自己責任で参考にしてください。

IPアドレスが記載されている以下のファイルをホスト名に変更します。

・listener.ora
・tnsnames.ora

インストール時のIPアドレスとホスト名です。
インストール後にIPアドレスを「192.168.0.11」から「192.168.0.19」に変えてsqlplusで接続できるか確認します。


インストール後の「listener.ora」の状態です。
※ファイルの場所は1行目に記載されています。

# listener.ora Network Configuration File: C:\app\own\product\18.0.0\dbhomeXE\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

DEFAULT_SERVICE_LISTENER = XE

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\own\product\18.0.0\dbhomeXE)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\own\product\18.0.0\dbhomeXE\bin\oraclr18.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

インストール後の「tnsnames.ora」の状態です。
※ファイルの場所は1行目に記載されています。

# tnsnames.ora Network Configuration File: C:\app\own\product\18.0.0\dbhomeXE\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

LISTENER_XE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

「listener.ora」と「tnsnames.ora」ファイルのIPアドレス記載箇所をホスト名に修正して保存します。
DBまたはOSを再起動します。
変更後のIPアドレスでも接続できるのでIPが変更されても接続できる状態と確認できます。

Oracle Express Edition の基本的な使い方

コンテナデータベースは利用しないので正直使い方がぴんときません。
勉強のためにインストール直後からDOSでOracle Express Edition(Oracle XE)を利用するための基本的なコマンドのまとめになります。

参照:Oracle Express EditionをWindows10にインストール


1.プラガブルデータベース(XEPDB1)への接続切替

ひとまず管理者(SYS)で入ってプラガブルデータベース(XEPDB1)のセッションに変更します。

管理者ログイン:sqlplus sys/{インストーラで入力したパスワード}@XE as sysdba
※接続文字列「XE」はインストール時に作成されます。
※パスワード忘れた場合、OS認証を利用して「sqlplus / as sysdba」でも入れます。

セッション変更コマンド:alter session set container = XEPDB1;



2.XEPDB1でユーザーの作成

ここでのユーザーの作成は最低限のユーザーIDとパスワードのみとします。(表領域の指定などは省略)
勉強用として権限は制限なしでの利用を前提として DBA, resource, connect 権限を付与しておきます。

ユーザー作成コマンド:create user {作成するユーザーID} identified by {作成するユーザーIDで使用するパスワード}

権限付与するコマンド:grant {付与する権限名} to {権限付与されるユーザーID};



3.XEPDB1のユーザーでログイン

IPv4アドレスとホスト名でのログインを説明します。
IPアドレスは、「ipconfig」コマンドで表示される「IPv4アドレス」の値です。
ホスト名は、「hostname」コマンドで表示される値です。

IPv4アドレスでログインします。

ログインコマンド:sqlplus {ユーザーID}/{パスワード}@{IPアドレス}:{ポート番号}/{プラガブルDB名}
※インストールの説明でも記載していますが「localhost」は使用すると「リスナーがありません」とエラーになります。


ホスト名でログインします。
ログイン後のとおりテーブル作成やレコードの追加など利用可能になります。

ログインコマンド:sqlplus {ユーザーID}/{パスワード}@//{ホスト名}:{ポート番号}/{プラガブルDB名}


Oracle Express EditionをWindows10にインストール

Oracle(オラクル)無償版 Express Editionの18cをWindows10にインストールする手順をまとめます。

※インストーラをダウンロードするにはオラクルのアカウントを作成(無料)する必要があります。
※64bit OSが対象です。
※ネットワークがDHCPを利用する場合、インストール後にIPアドレスが変更されるとリスナーが機能しなくなります。
IP固定またはDHCPに対応した作業が必要になります。


プラガブルデータベースへの接続までの基本的な使い方は以下を参照してください。
参照:Oracle Express Edition の基本的な使い方

DHCP環境で勉強用として利用したいときは以下を参考にしてください。
参照:Oacle Express Edition 18c でIPアドレス変更(DHCP)に対応させる


1.Express Editionの制限

Oracleのサイトに記載される制限の内容は以下の通りです。

・CPUは2コアまで自動的に制限
・論理環境(VM、コンテナ、物理ホスト)ごとに1つのインストールのみに制限
・ユーザー・データの最大量は、12GBまで利用可能
・RAMの最大量は、2GBまでに制限

「出典元」Oracle Database XE インストレーション・ガイドfor Microsoft Windows 4 ライセンス制限


2.インストーラのダウンロード

Oracleのサイトよりインストーラをダウンロードします。
ダウンロードするには「Oracle Database 18c Express Edition for Windows x64 Download」のリンクをクリックします。

「出典元」Oracle Database Express Edition (XE) Release 18.4.0.0.0 (18c)


オラクルのアカウントを入力して「サインイン」をクリックするとインストーラがダウンロードされます。


3.インストール

ダウンロードしたZIPを解凍して「setup.exe」を実行します。
「次へ」ボタンをクリックします。

「次へ」ボタンをクリックします。

「次へ」ボタンをクリックします。

DBの管理者アカウント(SYS、SYSTEM、PDBADMIN)のパスワード(任意の値でOK、忘れずメモしてください。)を入力します。
「次へ」ボタンをクリックします。

「インストール」ボタンをクリックしてインストールします。

「アクセスを許可する」ボタンをクリックします。

「完了」ボタンをクリックします。
これでインストールは完了です。
注意! 自動的に作成されるリスナー名「LISTENER」は1521ポートでリスニングしていますが外部アドレスでリスニングしているために localhost(127.0.0.1)は利用できません。使用すると「リスナーがありません」とエラーになります。このせいでちょっとハマりました・・・つまり下図の記載は間違いです。

MySQLをWindows10にインストール

いろいろ説明があるのにハマりますね・・・私だけかもしれませんが・・・
MySQL(Version 8.0.19)インストーラのダウンロードからインストールまでの手順をハマらないように備忘録をとります。

確認を含め最初に使用することになるコマンドは以下を参考にしてください。

参照:MySQLの基本的なコマンドの使い方


1.インストーラのダウンロード

インストーラのダウンロードのときによく見るとx86-32bitとあるのに64bitが見当たらない・・・探しても見つからない・・・
実は、32bitだけしか記載してないのに64bitも入っています!!!
ここでは、mysql-installer-community-8.0.19.0.msi をダウンロードしますので「Download」ボタンをクリックします。

「出典元」Oracle MySQL Community Downloads

ログインしなくても「No thanks, just start my download.」のリンクからダウンロードできます。


2.インストール

ここでは、Developper Default でセットアップします。
「Next」ボタンをクリックします。

先に「Execute」ボタンをクリックします。
※「Next」ボタンを先に押すと先にで意味不明なエラーが発生します。
 「Execute」ボタンはインストールする依存関係で必要なものを先にダウンロードしてインストールするようです。

「ライセンス条項および使用条件に同意する」にチェックをつけて有効になった「インストール」ボタンを押します。

「I have read and accept the lisence terms.」にチェックをつけて有効になった「Install」ボタンを押します。

「Finish」ボタンを押します。

「Next」ボタンを押します。

プロダクトの条件を満たしてないものがある???と意味不明なメッセージが表示されます。
気にせずインストールをつづけるか?と聞かれてるので「Yes」ボタンを押します。
※インストールオプションでOfficeやVisual Studioなどが入っていないといけないプロダクトが含まれているからかと思いました。
 カスタムで調整したのに必ず表示されます・・・同様の手順で行ってる人もおり問題ないと判断しています。

「Execute」ボタンを押します。

全てのプロダクトのインストールが完了すると「Next」ボタンを押します。

「Next」ボタンを押します。

ここでは「Standalone MySQL Server / Classic MySQL Replication」を選択します。
「Next」ボタンを押します。

ネットワークの構成はこのままでいきます。
「Next」ボタンを押します。

ここでは「Use Strong Password Encryption for Authentication(RECOMMENDED)」を選択します。
「Next」ボタンを押します。

rootアカウントのパスワードを「MySQL Root Password」と「Request Password」に入力します。
「Next」ボタンを押します。

このままの設定で利用します。
「Next」ボタンを押します。

「Execute」ボタンを押します。

「Finish」ボタンを押します。

「Next」ボタンを押します。

「Finish」ボタンを押します。

「Next」ボタンを押します。

Passwordにrootアカウントのパスワードを入力します。
「Check」ボタンを押します。

「Next」ボタンを押します。

「Execute」ボタンを押します。

「Finish」ボタンを押します。

「Next」ボタンを押します。

セットアップ終了後に起動させたくないのでチェックは全て外しておきます。
「Finish」ボタンを押します。


3.MySQLにパスを通す

mysqlコマンドを実行したらないといわれました!
コマンドへのパスを通してくれないみたいなので設定します。
コントロールパネルにある「システムの詳細設定」をクリックします。

詳細設定タブの下の方にある「環境変数」ボタンをクリックします。

ユーザー環境変数にある「編集」ボタンをクリックします。

これがMySQLインストール直後の状態です。
「新規」ボタンをクリックしてmysqlコマンドのあるパス「C:\Program Files\MySQL\MySQL Server 8.0\bin\」を入力します。
「OK」ボタンをクリックします。
※OSを再起動してください。

これでmysqlコマンドが使えるようになりました。

MySQLの基本的なコマンドの使い方

DOSでMySQLのコマンドをたま~に利用するのでまとめておきます。


1.ログイン

SQLを実行するコマンドプロンプトを使用するために引数にユーザーを指定してログインします。
コマンド:mysql -u DBユーザー名 -p
※rootはMySQLの管理者アカウントです。

使用するDBを指定します。
※指定しないと実行したSQLが「ERROR 1046 (3D000): No database selected」でエラーになります。
コマンド:use DB名;


2.データベース一覧の確認

DBに登録されているデータベース一覧を表示します。

コマンド:SHOW DATABASES;


3.ユーザー一覧の確認

DBに登録されているユーザー一覧を表示します。

コマンド:SELECT Host, User FROM mysql.user;
※rootはMySQLの管理者アカウントです。


4.テーブル一覧の確認

作成されているテーブルの一覧を表示します。

コマンド:show tables;


5.エクスポート/インポート

テキストのSQLが書かれているファイルがエクスポートされます。

コマンド:mysqldump --single-transaction -u DBユーザー名 -p DBパスワード > エクスポートファイル

エクスポートしたファイルを指定ユーザーにインポートします。

コマンド:mysql -uインポート先のDBユーザー名 -pパスワード DB名 < インポートするファイル

これでインポートしたテーブルが作成されています。


6.ユーザー作成/削除と権限付与

新規にDBユーザーを作成します。

コマンド:CREATE USER 作成するDBユーザー名@DB名 IDENTIFIED BY 'DBユーザーのパスワード'


インポートするときに権限が必要になるので付与します。
※付与する権限のあるユーザーでログインしてからGRANTコマンドを実施します。

コマンド:GRANT FILE ON *.* TO 付与するDBユーザー名@DB名

全権限を付与する時のコマンドです。

コマンド:GRANT ALL PRIVILEGES ON *.* TO 付与するDBユーザー名@DB名

指定したDBユーザーを削除します。

コマンド:DROP USER 作成するDBユーザー名@DB名


7.データベース作成/削除

指定したDBデータベースを作成します。

コマンド:CREATE DATABASE 作成するDB名

 

指定したDBデータベースを削除します。

コマンド:DROP DATABASE 作成するDB名