GNU/Linux >> Linux の 問題 >  >> Panels >> Webmin

MySQLデータベースサーバー

このページのMySQLデータベース そしてそれを管理するWebminモジュールが説明され、データベース、テーブル、およびユーザーを作成するために従う手順がリストされています。

MySQLの概要を参照

このモジュールを使用すると、データベース、テーブル、フィールドを作成し、レコードを編集し、シンプルなWebインターフェイスを介してMySQLユーザーを管理できます。そのアイコンは[サーバー]カテゴリにあり、クリックすると、モジュールのメインページに、下のスクリーンショットに示すように、既存のデータベースのアイコンの表が表示されます(MySQLがインストールされ、実行されている場合)。

MySQLデータベースサーバーモジュールのメインページ、mariadb-serverのインストール直後、推奨される / usr / bin / mysql_secure_installation セキュリティ違反を取り除くため

データベースサーバーが実行されているが、Webminがそれにログインするための正しいパスワードを知らない場合、メインページには代わりに* MySQLLogin*フォームが表示されます。 Login'フィールド(通常はroot)に管理ユーザー名を入力し、に対応するパスワードを入力する必要があります。 パスワード 分野。 MySQLユーザーのユーザー名とパスワードを入力することは可能ですが、root以外のユーザーはデータベースやテーブルの作成などのタスクを実行できません。したがって、モジュールも実行できません。

デフォルトでは、モジュールは、ディストリビューションのMySQLパッケージがデフォルトで使用するユーザー名とパスワードでログインするように構成されています。手動またはWebminを介して変更した場合にのみ、MySQLログインが行われます。 ページが表示されます。

データベースサーバーがシステムにまったくインストールされていない場合、メインページに*MySQLクライアントプログラム/ usr / bin / mysqlのようなエラーメッセージが表示されます。 システムで見つかりませんでした*。配布CDまたはWebサイトでMySQL関連のすべてのパッケージを確認し、ソフトウェアパッケージモジュールを使用してインストールします。多くの場合、mysql、mysql-client、mysql-server、mysql-develなどの名前が付けられたものがいくつかあります。 Linuxディストリビューションごとに異なるパッケージのセットを使用しているように見えるので、必ずすべてをインストールしてください。

FreeBSDおよびNetBSDでは、モジュールはそれらのオペレーティングシステム用のMySQLパッケージがインストールされていることを想定しています。他のUnixバリアントでは、http://www.mysql.com/から入手できるソースコードディストリビューションからMySQLをコンパイルしてインストールしたことを前提としています。

モジュールがインストールされていてもmysqlプログラムが見つからないと文句を言う場合は、使用するパスを調整する必要があります。これは、Linuxディストリビューションに付属のパッケージを使用する代わりに、ソースからインストールした場合に発生する可能性があります。

MySQLモジュールは、SQLコマンドを使用して、テーブルの作成、フィールドの追加、レコードの編集などのアクションを実行します。これらのコマンドを実行するには、Webminはデータベースサーバーに接続する必要があります。これは、2つの方法のいずれかで実行できます。正しいパラメーターを指定してmysqlコマンドを実行し、その出力を解析するか、PerlDBIライブラリーを使用して直接接続することができます。

mysqlコマンドはデータベースサーバーがインストールされているときに常にインストールされるため、前者の方法は常に使用可能です。ただし、特定の種類のテーブルデータは、常に解析できるとは限らない出力を生成するため、完全に信頼できるわけではありません。このため、DBIおよびDBD ::mysqlPerlモジュールをインストールする必要があります。いずれかが欠落している場合は、メインページの下部にメッセージが表示され、リンクをクリックして一方または両方をインストールするように求められます。これにより、Perl Modulesモジュール(第27章で説明)のページが表示され、DBIやDBD::mysqlがダウンロードおよびインストールされます。

コンテンツ

新しいデータベースの作成

データベース編集ページ

MySQLが最初にインストールされると、認証およびアクセス制御関連のテーブルを含むmysqlというデータベースが作成されます。独自のデータを保存する場合は、mysqlデータベースをいじる代わりに、テーブルを追加する独自のデータベースを作成することをお勧めします。これを行うには、次の手順に従います。

  1. モジュールのメインページで、新しいデータベースの作成をクリックします。 既存のデータベースアイコンの表の上または下にリンクします。これにより、新しいデータベースの詳細を入力するためのフォームが表示されます。
  2. 新しいデータベースの名前をデータベース名に入力します 分野。名前には文字と数字のみを含め、スペースは含めないでください。
  3. フォームを使用して、新しいデータベースの初期テーブルを作成することができます。ただし、新しいテーブルの作成と同じように、作成後に簡単に追加できます。 セクションで説明します。
  4. 作成をクリックします フォームの下部にあるボタンをクリックして、データベースを作成します。モジュールのメインページに戻ります。このページには、新しいデータベースアイコンが含まれています。

新しいテーブルの作成

テーブル編集ページ

テーブルは、新しく作成されたデータベースまたは既存のデータベースにいつでも追加できます。すべてのテーブルには1つ以上のフィールドがあり、各フィールドにはタイプ(整数、10進数、テキストなど)とサイズがあります。フィールドにインデックスを付けて、その列の値に基づいてレコードを検索するSQLクエリを高速化することもできます。データベースに新しいテーブルを追加するには、次の手順に従います。

  1. モジュールのメインページで、データベースアイコンをクリックします。これにより、以下のスクリーンショットに示すデータベース編集ページが表示されます。このページには、既存の各テーブルのアイコンと、さまざまなアクションを実行するためのボタンが含まれています。
  2. 新しいテーブルに含めるフィールドの数をフィールドに入力します 新しいテーブルの作成の横にあるテキストボックス ボタンをクリックし、ボタンをクリックします。これにより、新しいテーブルとその初期フィールドの詳細を入力するためのフォームが表示されます。
  3. このテーブルの名前をテーブル名に入力します 分野。文字、数字、および_文字で構成され、このデータベース内で一意である必要があります。
  4. 既存のテーブルからフィールドをコピーするには、テーブルからフィールドをコピーからフィールドを選択します。 メニュー。以下の初期フィールドに入力する追加のフィールド コピーしたテーブルの後にテーブルが追加されます。
  5. テーブルタイプ メニューを使用して、このテーブルの別のストレージタイプを選択できます。最も一般的に使用されるタイプは次のとおりです。
    MyISAM
    MySQLバージョン3.23以降の標準テーブルタイプ。大きなファイルをサポートするオペレーティングシステムでは、このサイズのテーブルのサイズは約2,000,000,000GBになる可能性があります。テーブルファイルはOSに依存せず、キーの長さは500バイトで、1つのテーブルで32のキー列を使用できます。
    InnoDB
    トランザクション、大量のデータをサポートし、MyISAMよりもはるかに高速に実行される優れたテーブルタイプ。
    ISAM
    古い標準のMySQLテーブルタイプがMyISAMに置き換えられました。 ISAMテーブルファイルのサイズは4GBのみ、キーの長さは256バイトのみ、テーブルには最大16個のキー列を含めることができます。
    ヒープ
    ヒープテーブルのデータはメモリにのみ保存されます。これにより、非常に高速になりますが、MySQLがシャットダウンされるとテーブルの内容が失われるため、一時データにのみ役立ちます。 デフォルトを選択した場合 オプション、または選択したタイプがシステムのMySQLでサポートされていない場合は、MyISAMタイプが使用されます。
  6. 初期フィールド セクションは、新しいテーブルに含まれる実際のフィールドの詳細を入力するためのものです。入力する各行は、次の各見出しの下に入力する値に基づいて、単一のフィールドを定義します。
    フィールド名
    このフィールドの一意の名前。文字、数字、および_文字で構成されている必要があります。 select、update、indexなど、SQLの予約語と同じ名前を選択することはお勧めできません。
    データ型
    このメニューから、このフィールドでデータのタイプを選択する必要があります。最も一般的なのは、varchar(可変長テキスト文字列の場合)とint(整数の場合)です。 フィールドタイプを参照してください サポートされているタイプの完全なリストについては、以下のセクションをご覧ください。
    タイプ幅
    このフィールドに格納できるデータのサイズ。これは、タイプによって意味が異なります。たとえば、varcharフィールドの場合、幅はテキストの最大長ですが、intフィールドの場合は、小数点以下の最大桁数です。繰り返しになりますが、フィールドタイプ この章のセクションでは、幅について詳しく説明します。フィールドのこのテキストボックスを空白のままにすると、デフォルトの幅が使用されます。多くのタイプ(blob、テキスト、日付など)のサイズは固定されているため、幅を入力しないでください。
    主キー?
    このボックスがチェックされている場合、このフィールドはテーブルの主キーの一部になります。キーフィールドはMySQLによってインデックス付けされるため、where句でそれらすべてを参照するSQLステートメントはより高速に実行されます。ただし、2つのレコードの主キーフィールドに同じ値を含めることはできません。従来、テーブルの最初のフィールドがキーです。すべてのタイプを使用できるわけではありません。通常、主キーフィールドはintまたはvarcharです。 Webminでデータを編集できるように、すべてのテーブルに主キーが必要です。
    自動インクリメント?
    このオプションで数値フィールドをチェックすると、MySQLは、レコードが追加されるたびに、テーブルに最大値より1つ大きい数値を自動的に挿入します(レコード作成ステートメントで値が明示的に指定されている場合を除く)。これはID番号の自動生成に役立ち、主キーフィールドで有効になることがよくあります。
  7. すべてのフィールドに入力したら、作成を押します フォームの下部にあるボタン。何らかの理由でテーブルを作成できない場合は、MySQLからのSQLエラーメッセージが表示されます。これは、フィールド名が無効な場合、または型の幅が型にとって意味をなさない場合に発生する可能性があります。これが発生した場合は、ブラウザの戻るボタンを使用してフォームに戻り、問題を修正してください。テーブルが正常に作成されると、データベース編集ページに戻り、新しいテーブルアイコンが表示されます。

フィールドの追加と編集

フィールドの変更

新しいフィールドをテーブルに追加したり、既存のフィールドを変更または削除したりできます。フィールドを追加しても既存のデータにリスクはありませんが、フィールドのタイプやサイズを変更すると、フィールドに含まれているデータが失われる可能性があります。新しいフィールドを追加するには、次の手順に従います。

  1. モジュールのメインページで、テーブルを含むデータベースのアイコンをクリックしてから、テーブルアイコンをクリックします。これにより、下の画像に示すページが表示され、既存のすべてのフィールドの名前、タイプ、およびその他の詳細が一覧表示されます。
  2. [*タイプのフィールドを追加*]ボタンの横にあるメニューから新しいフィールドのタイプを選択してから、クリックします。 フィールドタイプを参照してください タイプとその目的のリストについては、以下のセクションを参照してください。
  3. 表示されるフィールド追加フォームで、このフィールドの一意の名前をフィールド名に入力します テキストボックス。同じテーブル内の2つのフィールドに同じ名前を付けることはできず、文字、数字、および_のみを使用できます。
  4. charまたはvarcharフィールドを追加する場合は、タイプ幅に最大文字数を入力する必要があります。 テキストボックス。 float、double、またはdecimalフィールドを追加する場合は、Widthとdecimalsに2つの数値を入力する必要があります テキストボックス。 1つ目は値に含めることができる合計桁数で、2つ目は小数点の右側の桁数です。負の数の場合、マイナス記号は数字としてカウントされます。したがって、幅と小数のフィールド 5に設定すると2に設定すると、99.99から999.99までの数値を格納できます。日付、日時、時刻、blob、およびテキストフィールドの場合、これらのタイプのサイズは固定または無制限であるため、幅の入力はまったくありません。 enumおよびsetフィールドの場合、可能な値のリストを[*列挙値*]テキストボックスに入力する必要があります。他のすべてのフィールドタイプ(intなど)の場合、タイプ幅 デフォルトに設定できます 選択したタイプのデフォルトサイズをフィールドに使用させるか、幅を入力できます。 intフィールドの場合、これはこのフィールドの値に含めることができる最大桁数です。
  5. 整数フィールドタイプ(intやsmallintなど)の場合、[タイプオプション]ラジオボタンを使用すると、このフィールドの値をゼロで左埋めするかどうかを選択できます(ゼロで埋める オプション)、または署名されていない場合(署名されていない オプション)。 なしの場合 が選択されている場合、値は署名され、ゼロは追加されません。 float、double、decimalフィールドの場合、同じタイプオプション も表示されますが、符号なしはありません オプション。これらのタイプのフィールドは常に署名されています。 charフィールドとvarcharフィールドの場合、タイプオプションには2つの異なる選択肢があります-大文字と小文字を区別 および大文字と小文字を区別しない 。インセンシティブが選択されている場合、このフィールドの値に一致するSQLクエリは大文字と小文字の違いを無視します。
  6. SQL NULL値がこのフィールドに挿入されないようにするには、 Allow null?を変更します。 いいえへの入力 。これは、すべてのレコードにこのフィールドの値が必要な場合に役立ちます。このフィールドをテーブルの主キーの一部にする場合は、これを選択する必要があります。
  7. レコードがテーブルに追加され、このフィールドに値が指定されていない場合にデフォルト値を挿入するには、デフォルト値を入力します テキストボックス。当然、値はフィールドに対して正しいタイプである必要があります。テーブルにすでにいくつかの行が含まれている場合、このフィールドの値は、新しいフィールドが追加されたときにここに入力したものに設定されます。
  8. このフィールドがテーブルのキーになる場合は、主キーの一部を変更しますか? はいへの選択 。キーの複数のフィールド部分。この場合、それらすべての組み合わせです。
  9. 最後に、[作成]をクリックします 。入力にエラーがない場合、フィールドがテーブルに追加され、テーブル編集ページに戻ります。

以下の手順に従って、新しく作成したフィールドまたは既存のフィールドを編集することもできます。ただし、フィールドのタイプを変更したり、サイズを小さくしたりすると、古い値が新しいタイプと互換性がない場合にデータが失われる可能性があります。たとえば、varcharをintに変換すると、数値以外のすべての値が失われます。ただし、新しいサイズが十分に大きい限り、intをvarcharに変換することは一般的に安全です。

  1. モジュールのメインページで、テーブルを含むデータベースのアイコンをクリックしてから、テーブルアイコンをクリックします。これにより、上のスクリーンショットに示されているページが表示され、既存のすべてのフィールドの名前、タイプ、およびその他の詳細が一覧表示されます。
  2. 変更するフィールドの名前をクリックして、フィールド編集フォームに移動します。
  3. フィールドの名前を変更するには、フィールド名を編集します テキストボックス。
  4. フィールドのタイプを変更するには、[データタイプ]メニューから新しいフィールドを選択します。上で説明したように、これは注意して行う必要があります。
  5. 現在のタイプに応じて、サイズを編集するためのさまざまな入力が表示されます。これらは、上記のフィールド作成手順のステップ4で説明したものと同じです。フィールドのサイズを大きくしても、そこに含まれるデータに害はありませんが、フィールドを小さくすると、値が新しいサイズよりも長い場合、値が切り捨てられます。
  6. タイプオプション nullを許可しますか?デフォルト値 および主キーの一部ですか? ここでの入力の意味は、フィールドの作成手順と同じです。既存のフィールドに対してこれらのオプションを調整する場合は、これらを変更してください。
  7. 完了したら、保存を押します フォームの下部にあるボタン。フィールドはすぐに更新され、そこに含まれるデータは必要に応じて変更または切り捨てられます。

削除をクリックすると、既存のフィールドを削除できます 保存の代わりにフィールド編集フォームのボタン 。そこに含まれるデータは、すぐに完全に削除されます。もちろん、テーブルの最後のフィールドを削除することはできません。

フィールドタイプ

MySQLは、他のSQLデータベースと同じフィールドタイプのほとんどをサポートしています。タイプに関する最良の情報源は、公式のMySQLドキュメント(http://dev.mysql.com/doc/refman/4.1/en/data-types.html(MySQL 3および4の場合))、またはhttp://wwwです。 .mysql.org / doc / refman / 5.0 / en / data-types.html(MySQL 5の場合)。

MySQLの新しいバージョンでは、より多くのタイプが導入される可能性がありますが、サポートされていないタイプのフィールドのデータを編集できるはずです。

テーブルの内容の表示と編集

MySQLモジュールを使用すると、任意のデータベース内の任意のテーブルの内容を表示できます。主キーを持つテーブルでは、レコードを変更または削除したり、新しいレコードを追加したりすることができます。残念ながら、モジュールには特定のレコードを識別する何らかの方法が必要なため、キーなしでテーブルの内容を編集する方法はありません。ただし、データベース内のすべてのテーブルには1つ必要です。

テーブルの内容を表示するには、次の手順に従います。

  1. メインページで、テーブルを含むデータベースのアイコンをクリックしてから、テーブル自体のアイコンをクリックします。
  2. テーブル編集フォームで、データの表示をクリックします。 下部のボタン。これにより、テーブルの最初の20行のテーブルを含むページが表示されます。
  3. テーブルに1ページに表示できるよりも多くの行が含まれている場合、表示範囲の開始と終了、および行の総数が上部に表示されます。その横には、次または前の20レコードに移動するための左矢印と右矢印があります。
  4. 大きなテーブルの場合、検索フォームもページの下部に表示されます。これを使用するには、最初のメニューからフィールド名を選択し、2番目のメニューから比較タイプを選択し、検索する値を最後のテキストボックスに入力します。 検索の場合 ボタンをクリックすると、選択したフィールドが一致する行のみが表示されます。すべてのレコードの表示に戻るには、検索のリセットをクリックします テーブルの上に表示されるリンク。 含む 比較タイプは、フィールドに入力されたテキストが含まれているレコードを検索しますが、一致 typeは、フィールド値がlike句で使用されるSQLパターンと一致するレコードを検索します。このようなパターンでは、%は任意の文字列に一致し、_は任意の1文字に一致します-*や?シェルプロンプトで実行します。
  5. 大きなテーブルを表示しているときに、ジャンプというラベルの付いたボタン ページの下部にも表示されます。隣接するフィールドに数字を入力してボタンをクリックすると、ディスプレイはすぐにその行に移動します。

テーブルに主キーがある場合、この同じページを使用して、レコードを編集、削除、または追加することもできます。編集するレコードは、最初に各行の右側にあるチェックボックスを使用して選択するか、すべて選択する必要があります および選択を反転 リンク。 [選択した行を編集]ボタンをクリックすると、選択したすべてのレコードの値がテキストボックスに表示されたページが再表示されます。好きなように変更して、保存をクリックします ページの下部にあるボタンをクリックして、データベースを更新します。または、キャンセルを押します 変更を保存せずに編集を停止したい場合。

レコードを削除するには、同じチェックボックスと選択リンクを使用してレコードを選択し、選択した行を削除をクリックします。 ボタン。選択したレコードは、それ以上の確認なしにデータベースからすぐに削除されます。

新しいレコードを追加するには、行を追加をクリックします 表の下のボタン。新しい詳細を入力するための空のテキストボックスを含む追加の行が表示されます。 保存をクリックします 新しいレコードをテーブルに追加し、新しい行が表示されるようにディスプレイを移動します。または、キャンセルをクリックすることもできます レコードの追加について気が変わった場合。

通常、レコードは、テーブルの適切な列に表示されるテキストフィールドで編集または追加されます。ただし、blobまたはテキストフィールドを含むテーブルを編集している場合、または*垂直行追加インターフェイスを使用*モジュール構成オプションが有効になっている場合は、別のレイアウトが使用されます。代わりに、フィールドのテキストボックスは、テーブル内またはテーブルの下の別のボックスに一覧表示され、右側にフィールド名ラベルが表示されます。テキストまたはBLOBフィールドの場合、必要に応じて複数行のテキストを入力できるように、テキストボックスが表示されます。

テーブルとデータベースの削除

テーブルがデータベースから削除されると、テーブルに含まれるすべてのレコードとフィールドが失われます。 mysqlデータベース内のテーブルを削除することは、重要なMySQLアクセス制御情報が含まれているためお勧めできませんが、任意のテーブルを削除できます。 1つを削除するには、次の手順に従います。

  1. モジュールのメインページで、テーブルを削除するデータベースのアイコンをクリックしてから、テーブル自体のアイコンをクリックします。
  2. ドロップテーブルをクリックします フィールドリストの下にあるボタン。これにより、確認ページが表示され、確認が行われ、削除されるレコードの数が示されます。
  3. 先に進むには、ドロップテーブルをクリックします もう一度ボタンを押します。削除されると、データベース内の存続しているテーブルのリストに戻ります。

データベース全体とその中のすべてのテーブルとレコードを削除することもできます。どのデータベースも削除できますが、mysqlデータベースを削除することは非常に悪い考えです。いつものように、バックアップを作成していない限り、削除を元に戻す方法はありません。

本当にデータベースを削除したい場合は、次の手順に従ってください。

  1. メインページで、削除するデータベースのアイコンをクリックします。
  2. データベースの削除を押します テーブルのリストの下にあるボタン。確認ページが表示され、先に進むと失われるテーブルとレコードの数が示されます。
  3. 削除を続行するには、[データベースの削除]をクリックします ボタンを押すと、モジュールのメインページに戻ります。
  4. または、[すべてのテーブルを削除する]をクリックして、すべてのテーブルとそのレコードを削除することもできます。 代わりは。データベース自体は空のままになります。

SQLコマンドの実行

MySQLモジュールは、データベースでSQLコマンドを実行し、その出力を表示するためのシンプルなインターフェイスも提供します。使用する手順は次のとおりです。

  1. メインページで、コマンドを実行するデータベースのアイコンをクリックします。
  2. SQLの実行をクリックします テーブルアイコンのリストの下にあるボタン。これにより、SQLコマンドの入力、コマンドのファイルの実行、およびデータベースへのデータのロードを行うためのページが表示されます。
  3. ページ上部のテキストボックスに任意のSQLコマンドを入力し、実行を押します。 ボタン。 SQL構文に誤りがあるか、コマンドを実行できない場合は、MySQLからのエラーメッセージが表示されます。それ以外の場合は、SQLの結果の表(存在する場合)が表示されます。 SELECTステートメントのみが結果を生成します-UPDATE、INSERT、およびレコードを変更するその他のコマンドは生成しません。
  4. 結果の表示が終了したら、* Return to Execute SQLform*を使用してフォームに戻ります。
  5. 正常に実行されたすべてのコマンドは、データベースの履歴に追加されます。テキストボックスを空のままにして下のメニューから選択し、実行を押すと、前のSQLコマンドを再実行できます。 。コマンド履歴を消去するには、履歴の消去をクリックします 代わりにボタン。これは、再利用する必要のない古いステートメントで雑然としている場合に役立ちます。

同じページを使用して、テキストファイルから複数のコマンドを実行し、それらの出力を表示できます。このプロセスはバックアップの復元とまったく同じであるため、データベースのバックアップと復元の復元の部分で説明されています。 以下のセクション。

データベースのバックアップと復元

MySQLはすべてのデータベースをバックアップします

データベースの1つに重要な情報が含まれている場合は、ディスク障害やSQLの誤りによってデータが失われた場合に備えて、定期的にバックアップする必要があります。また、フィールドのタイプを変更したり、多くのレコードを変更する複雑なSQLステートメントを実行したりするなど、潜在的に危険な操作を実行する前に、バックアップを作成することをお勧めします。

モジュールを使用してバックアップを作成するには、次の手順に従います。

  1. メインページで、バックアップするデータベースのアイコンをクリックします。
  2. バックアップデータベースをクリックします テーブルのリストの下にあるボタン。これにより、バックアップ先とオプションを入力するためのフォームが表示されます。
  3. ファイルへのバックアップ フィールドに、バックアップを書き込む必要のある完全なファイルパス( /tmp/backup.sqlなど)を入力します。 。ファイルがすでに存在する場合は、上書きされます。
  4. バックアップを一部のレコードのみに制限するには、* where句に一致するバックアップ行のみ*フィールドのすべての行'オプションの選択を解除し、隣接するフィールドにSQLWHERE句を入力します。 foo ='bar 。これは、句がデータベース内のすべてのテーブルに対して有効である場合にのみ機能するため、この例では、すべてのテーブルに fooが必要です。 分野。
  5. ドロップテーブルステートメントをバックアップに追加しますか? フィールドがはいに設定されている 、バックアップには、復元時に同じ名前の既存のテーブルを削除するSQLステートメントが含まれます。つまり、別のシステムで復元すると、それらのテーブルのデータがバックアップの新しいデータに置き換えられます。 いいえの場合 を選択すると、復元されたデータが既存のデータに追加されます。最良の選択は、実際に何をしようとしているかによって異なります。通常のバックアップの場合は、はいを選択する必要があります これにより、バックアップが復元されたときに、破損したデータや競合するデータが削除されます。ただし、レコードを別のシステムまたはデータベースに転送する場合はいいえ ターゲットテーブルの既存のレコードが失われないように、代わりに選択する必要があります。
  6. バックアップを作成するには、今すぐバックアップをクリックします。 フォームの下部にあるボタンをクリックすると、成功または失敗を示すページが表示されます。

MySQLバックアップファイルは、実際には、実行時にデータベースをバックアップが作成されたときの状態に復元するSQLCREATETABLEおよびINSERTステートメントの単なるリストです。これは、より圧縮されたバイナリ形式よりも多くのディスクスペースを使用しますが、必要に応じてファイルを簡単に表示および変更できます。また、ファイルにはASCIIテキストしか含まれていないため、異なるアーキテクチャのシステムでバックアップファイルを使用できることも意味します。

重要な本番目的で使用されているデータベースがある場合は、1日1回など、定期的にバックアップする必要があります。上記の手順を毎日実行する代わりに、Scheduled Cron Jobsモジュール(第10章で説明)を使用して、バックアップを実行するジョブを作成できます。実行するコマンドを見つけるには、上記の手順を使用して最初にバックアップを作成してから、Webminアクションログモジュール(第54章で説明)にアクセスして、使用したコマンドを確認します。

バックアップファイルが作成されると、同じシステムまたはMySQLを実行している別のサーバーに復元できます。 バックアップにドロップテーブルステートメントを追加しますか? フィールドがバックアップ時に設定されていた場合、バックアップ内のテーブルと同じ名前の既存のテーブルの内容が削除される可能性があります。したがって、通常は、テーブルが存在しない場合、または上書きする古いデータや無効なデータが含まれている場合にのみ復元する必要があります。

バックアップファイルはSQLステートメントの単なるリストであるため、復元プロセスでは、ファイル内のすべてのコマンドを実行するだけです。これは、次の同じ手順に従って、独自のコマンドのファイルを実行することもできることを意味します。

  1. モジュールのメインページで、バックアップを復元するデータベースのアイコンをクリックします。
  2. SQLの実行をクリックします ボタンをクリックし、[データベースで実行するSQLコマンドファイルの選択]セクションまで下にスクロールします。
  3. バックアップファイルがMySQLとWebminを実行しているシステム上にある場合は、ローカルファイルからを選択します。 オプションを選択し、ファイルへのフルパスを隣接するテキストフィールドに入力します。ブラウザが実行されているPCにバックアップがある場合は、[アップロードされたファイルから]を選択し、参照を使用します。 ボタンをクリックしてバックアップファイルを選択します。
  4. 実行を押します ボタンをクリックして、バックアップを復元するか、ファイル内のSQLコマンドを実行します。実行が進むにつれてMySQLからのすべての出力を一覧表示するページが表示されます。通常、エラーが発生するか、ファイルにSELECTステートメントが含まれていない限り、何も発生しません。

MySQLユーザーの管理

MySQLユーザーの許可

MySQLデータベースサーバーでは、SQLコマンドを実行する前に、すべてのクライアントがユーザー名とパスワードで自分自身を認証する必要があります。 Unixユーザーファイル/etc/passwdおよび/etc/ shadowではなく、クライアントがログインしようとしたときに参照される独自のユーザー、パスワード、およびアクセス許可のテーブルがあります。ユーザーが使用できるSQLステートメントの種類、接続元のクライアントホスト、および変更できるデータベース、テーブル、フィールドを制限するために、ユーザーごとに詳細なアクセス許可を定義できます。

通常、MySQLが最初にインストールされた後は、rootユーザーのみがログインできます。このユーザーには、すべてのデータベースとテーブルにアクセスしてすべてのアクションを実行する権限があるため、通常は管理目的でのみ使用されます。データベースを使用するアプリケーションを作成する場合は、その目的のために別のユーザーを作成し、そのユーザーとしてログインするようにアプリケーションを設定することをお勧めします。

標準のMySQLインストールでは、匿名も作成されます パスワードがなく、テストから始まるデータベースへのアクセス権を持つユーザー。この特別なユーザーは、他の一致するユーザーが見つからないログイン試行に使用されます。匿名ユーザーについては、以下で詳しく説明します。

ユーザーの作成

ユーザーを追加するには、次の手順に従います。

  1. モジュールのメインページで、ユーザー権限をクリックします アイコン。これにより、下のスクリーンショットに示すように、既存のユーザーを一覧表示するページに移動します。
  2. 新しいユーザーリンクを作成をクリックします 表の上または下に移動して、ユーザー作成フォームに移動します。
  3. ユーザー名 フィールドで、2番目のラジオボタンを選択し、このユーザーの名前を入力します。後で説明するように、同じ名前で複数のユーザーエントリを作成することは可能ですが、この新しいエントリは一意である必要があります。
  4. ユーザーにパスワードを設定したい場合は、パスワードを変更します フィールドをに設定 隣のフィールドに入力します。 なしを選択した場合 の場合、パスワードを指定する必要はなく、パスワードを使用してログインしようとすると拒否されます。
  5. このユーザーが特定のホストからのみログインできるようにするには、ホストの2番目のラジオボタンを選択します。 フィールドに入力し、テキストボックスにホスト名を入力します。ホスト名は、クライアントのIPアドレスの逆引きによって返されるホスト名と同じである必要があります。これは、ほとんどの場合、 pc.example.comのような完全なホスト名になります。 サーバーだけでなく 。代わりにIPアドレスを入力するか、%。example.comのようなホスト名またはIPアドレスのSQLパターンを入力できます。 。データベースサーバーが実行されているのと同じシステムからのみユーザーが接続できるようにするには、 localhostと入力します。 ホストとして。 いずれかの場合 を選択すると、このユーザーはどのホストからでも接続できるようになります。ホストが指定されているユーザーを作成するときは注意してください。他の場所から接続しようとして、一致するホストを持つ匿名ユーザーが存在する場合、代わりに匿名ユーザーとしてログインします。
  6. 権限 list, select the entries for the actions that you want the user to be able to perform. For an application user, being able to select, insert, update and delete records is usually enough. Un-trusted users should never be given permissions beyond Drop tables , as that would allow him to harm the database, access arbitrary files or enhance his own permissions. If a user does not have any permissions at all, he will be unable to connect unless some have been granted for a specific database or host (as explained in the next section).
  7. To create the user, click the Save button at the bottom of the page. The new MySQL login will be usable immediately, and will have access to all databases and tables with the permissions specified in step 6. See the next section in this chapter for information on how to restrict a user to only certain databases or tables.

When a client tries to login, MySQL searches for the first matching user and host in the list of users. The server always checks entries with specific hostnames before those that allow any host, and Anonymous user entries before those for a specific user. This means that a user may end up with the Anonymous permissions even though he is in the user list with greater privileges. Due to the confusion this can cause, I recommend deleting all anonymous user entries unless you fully understand their effects.

It is possible and even useful to have multiple entries for the same user in the list, as long as they have different hostnames. For example, if you want to allow the user fred to login from only clients server.example.com and www.foo.com , you would need to create two entries from fred with the Host field set differently. The should have the same password and permissions though, unless you want to require a different password or grant different permissions depending on the host the user is connecting from.

New and existing users can be edited by clicking on their names in the list, which brings up an editing form almost identical to the one used for creating a user. The only different is that the Password field has a Don't change option which is selected if the user has a password, and which tells Webmin to leave the password unchanged when the user is saved. After making changes, click the Save button at the bottom of the form to update the user in the database. Or to delete it, hit the Delete ボタン。 If there are multiple entries for the same user, you will have to update them all individually if changing the password or permissions.

Unless you have already created another administration user with full privileges, the root user should not be deleted. Because this Webmin module normally logs in a root itself, modifying or removing this user may force you to login to MySQL again as explained in the introduction to the module earlier in the chapter. By deleting the root user or removing its privileges, it is possible to deny yourself access to the database, which can only be fixed using command-line programs like mysqladmin.

Like many other modules, the MySQL Database Server module can be configured to automatically create, update or delete a MySQL user when the same thing happens to a corresponding Unix user. This can be useful if you allow some of the Unix users on your system to access databases, and want to keep their passwords and usernames synchronized.

To set up synchronization, the steps to follow are:

  1. On the module's main page, click on the User Permissions icon. Scroll down to the form below the list of existing MySQL users.
  2. If you want a new MySQL user to be created for each new Unix user, check the Add a new MySQL user when a Unix user is added 箱。 Then select the permissions that should be granted to the user from the list to the right. When a MySQL user is automatically added, its will be allowed to login from any host.
  3. If you want MySQL users to be renamed or have their passwords changed when the same thing happens to matching Unix users, check the *Update a MySQL user when the matching Unix user is modified* box. If more than one entry exists for the same user, they will all be effected.
  4. To have a MySQL user deleted at the same time as the Unix user of the same name, check the *Delete a MySQL user when the matching Unix user is deleted* box. If more than one entry exists for the same user, they will all be deleted.
  5. Click the Save button to make the new synchronization settings active.

Managing database, host, table and field permissions

Users created by following the instructions in the previous section have access to all databases on the server with the same permissions. However, it is possible to give a user access to only specific databases by following the steps below:

  1. Make sure the user does not have any permissions on the User Permissions page. Any that he has set here will apply to all databases, which is not what you want.
  2. On the module's main page, click on the Database Permissions icon. This will bring up a list of users and the privileges they have for specific databases.
  3. Click on the Create new database permissions link above or below the list.
  4. In the form that appears, the Databases field controls which databases he will have access to. You can either select the Any radio button to grant permissions for all databases, select the second radio button to grant access to the database selected from the menu, or choose the final button to grant access to databases whose names match the SQL pattern entered into the adjacent field. Typically the second option is the one that you want to select, so that you can grant access to a single database. If the user should have access to more than one, you will need to add multiple database permissions entries.
  5. In the Username field, select the second radio button and enter the name of the MySQL user to whom access should be granted.
  6. The Hosts field allows you to choose which client host(s) the user will be able to connect to the database from. You should normally select Any , which gives him access from anywhere - unless the user himself is prevented from connecting from some hosts, explained in the Managing MySQL users section
  7. From the Permissions list, select the privileges that the user should have for the chosen database. These will be added to any that are set for the user on the User Permissions page.
  8. Click the Save button to add and activate the new permissions. You will be returned to the database permissions list.

You can edit database permissions by clicking on a database name from the list. This will take you to an editing form identical to the creation form in which the database, username, hosts or permissions can be changed. The Save button saves and activates any changes, while the Delete button removes the permissions from the database.

When MySQL is first installed, database permissions for the Anonymous user in the test and test_% databases will be created automatically. Assuming the Anonymous user exists in the User Permissions page, these give anyone who can connect to MySQL access to records in those databases. Unless you are making use of anonymous logins, these database permissions can be safely deleted.

MySQL also allows permissions to be granted on databases to all users connecting from certain client hosts. This can be useful if you want to increase the privileges that a particular client system has, such as a web server connecting to your database server. To add host permissions, the steps to follow are:

  1. On the module's main page, click on the Host Permissions icon. This will take you to a page listing existing permissions granted to client hosts, if any. When MySQL is installed, no permissions of this type are initially defined.
  2. Click on the Create new host permissions to bring up a form for adding a new host permissions entry.
  3. If the permissions should apply to all databases, select the Any radio button in the Databases 分野。 If they are for only a specific database, select the second radio button and choose a database from the menu next to it. If you want to grant permissions to databases whose names match an SQL pattern, select the final radio button and enter the pattern into the adjacent text field.
  4. In the Hosts field, select the second radio button and enter a hostname, IP address or hostname or IP pattern (like %.example.com or 192.168.1.% ) into the field next to it. Selecting the Any button isn't particularly useful.
  5. From the Permissions menu, choose those privileges that will be granted to all users connecting to the chosen database from the specified host. These will be added to any other permissions that are granted on the User Permissions or Database Permissions pages.
  6. Click the Save button to activate the new client host permissions.

As usual, you can edit existing an host permissions entry by clicking on the database name from the list, editing fields and clicking Save 。 Or you can remove it with the Delete ボタン。

MySQL also supports the granting of permissions to specific tables and fields to users connecting from certain hosts. Webmin allows you to set these up by clicking on the Table Permissions and Field Permissions icons on the main page. However, as they are quite complex and rarely used, they are not covered in this chapter.

Module access control

Normally a Webmin user who has access to the MySQL Database Server module can manage all databases and use all of the module's features. However, as WebminUsers explains it is possible to restrict what a user can do with a module. In this case, you can grant access to only certain databases, control the directory that backups can be written to, and restrict the creation and deletion of databases. This can be useful if various databases on your server are owned by different people, and you want to give each of them a Webmin login to manage only those that belong to them.

To set up this kind of module access control, the steps to follow are:

  1. In the Webmin Users module, click on MySQL Database Server next to the name of a user or group who has access to the module.
  2. On the access control form, change the Can edit module configuration? field to No 。 This is necessary to prevent the user changing the programs that the module uses for accessing the database.
  3. In the Databases this user can manage field, choose the Selected オプション。 Then select the databases he should have access to from the list below.
  4. Change the Can create new databases? field to No 。 There is no reason that a restricted user of this type should be able to add new databases.
  5. Unless you want the user to be able to delete his own databases, change the Can drop databases? field to No 。 Leaving it set to Yes is harmless though, as he will only be able to delete those that you have granted him access to.
  6. Change the Can stop and start MySQL server? field to No
  7. If you want this Webmin user to be able to control access by MySQL users to his databases, change the Can edit permissions? field to Only for managed databases 。 This will give him access to the Database, Host, Table and Field Permissions pages, but limit him to viewing and editing entries for the databases he is granted access to. To deny access to MySQL permission management altogether, select No 代わりは。 Choosing Yes is a bad idea, as it would allow the user to create MySQL users with access to all databases on the server.
  8. If the Can edit table data? field is set to No , the user will not be able to create tables, edit fields, run SQL commands or make backups. Instead, he will only be able to use the module's record viewing and editing feature.
  9. When the Login to MySQL as field is set to *Username from Module Config*, all database actions performed by this user will be done as the MySQL user set in the module configuration, typically root. However, you may want the Webmin user to login as a less-privileged MySQL user as an additional security precaution. This way, even if the user finds a way to defeat the module's restrictions he will still not be able to execute SQL commands as root. To use a different login, select the Username option and enter a valid MySQL login and password into the adjacent fields. This alternate user must have the privileges to perform everything that the module needs to do though, such as creating tables and possibly granting permissions.
  10. Normally Webmin runs the mysqldump command to make backups as the root Unix user, and allows the backup file to be created anywhere on your system. Because this may allow important files to be overwritten, you should change the *Backup file directory* field to a safe directory for creating backups in, such as /home/someuser/backup 。 Better still, the Write backup as Unix user field should be changed to a user other than root, such as the Webmin user's Unix login. The mysqldump command will be run as this user instead, which prevents it from being used to overwrite files.
  11. Finally, to make the new access control restrictions active, click Save

If you want to give a large number of users access to MySQL though a web interface, an alternative to configuring the Webmin module for each user is to install Usermin. It has a MySQL module with an identical interface, and can be easily configured to limit which databases are visible. See chapter 47 for more information.

Module Configuration

Module Configuration

Like many other modules, this one has several options that you can set by clicking on the Module Config link in the top-left corner of the main page. Those fields listed under *Configurable option* relate to the module's user interface and the method it uses to connect to the database, while those under *System configuration* define the paths to the MySQL programs and files.

Unless you have installed the database server in a different directory to the default for your operating system, fields in the second section do not generally need to be changed. This can happen if you installed MySQL from the source code instead of using the package supplied with your Linux distribution, or if you have two copies of MySQL installed and are configuring a clone of the module (covered in Webmin Configuration) to manage the second install.

If you have multiple copies of MySQL installed on your system, you should clone this module once for each server. The last three configuration options can then be customised to connect to each of the MySQL installs, which will probably be listening on different ports or use different socket files.


Webmin
  1. MySQLデプロイメントFAQ

  2. CentOSにMySQLServer5.6をインストールします

  3. MySQL スレーブ データベースの構成方法

  1. MySQLデータベースを最適化する

  2. MySQLサーバーの5つの最高の無料代替品

  3. PostgreSQLデータベースサーバー

  1. CentOS8にMySQL8データベースサーバーをインストールする方法

  2. CentOSにMySQLデータベースサーバーをインストールする方法

  3. CentOS 6にMtop(MySQL Database Server Monitoring)をインストールする方法