SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント
SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント
正規表現は、複雑な検索でパターンを指定する強力な方法です。 このセクションでは、正規表現の照合に使用できる関数と演算子について説明し、正規表現の操作に使用できる特殊文字と構造の一部を例とともに示します。 セクション3.3.4.7「パターンマッチング」も参照してください。 MySQL では、Unicode の国際コンポーネント (ICU) を使用した正規表現サポートが実装されています。ICU は完全な Unicode サポートを提供し、マルチバイトセーフです。 (MySQL 8.0.4 より前では、MySQL は Henry Spencer による正規表現の実装を使用していました。これはバイト単位で動作し、マルチバイトセーフではありません。 正規表現を使用するアプリケーションが実装の変更の影響を受ける方法の詳細は、正規表現の互換性に関する考慮事項 を参照してください。) expr NOT R
MySQL サーバーに接続するクライアントに必要な証明書には、パスワードを含めることができます。 このセクションでは、MySQL アカウントにパスワードを割り当てる方法について説明します。 MySQL は、mysql システムデータベースの user テーブルに資格証明を格納します。 パスワードを割り当てたり変更したりする操作は、CREATE USER 権限を持つユーザー、または mysql データベースに対する権限 (新しいアカウントを作成するための INSERT 権限、既存のアカウントを変更するための UPDATE 権限) にのみ許可されます。 read_only システム変数が有効になっている場合、CREATE USER や ALTER USER などのアカウント変更ステートメントを使用するには、CONNECTION_ADMIN 権限 (または非推奨の SUPER 権限) も必要です
SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント
mysqld サーバーを起動するときに、セクション4.2.2「プログラムオプションの指定」に記載されているいずれかの方法で、プログラムオプションを指定できます。 もっとも一般的な方法は、オプションファイルまたはコマンド行でオプションを提供するやり方です。 ただし、ほとんどの場合では、サーバーが毎回実行するときサーバーが必ず同じオプションを使用します。 これを確実に行う最適な方法は、オプションファイルにオプションを一覧表示することです。 セクション4.2.2.2「オプションファイルの使用」を参照してください。 このセクションではオプションファイルの形式および構文についても説明します。 mysqld は [mysqld] および [server] グループからオプションを読み取ります。mysqld_safe は [mysqld]、[server]、[mysqld_safe]、および [safe
MySQL 8.0.16 では、MySQL サーバーは以前に mysql_upgrade によって処理されたアップグレードタスクを実行します (詳細は、セクション2.11.3「MySQL のアップグレードプロセスの内容」 を参照)。 したがって、mysql_upgrade は不要であり、そのバージョンで非推奨になりました。将来のバージョンの MySQL で削除される予定です。 mysql_upgrade はアップグレードタスクを実行しなくなったため、無条件にステータス 0 で終了します。 MySQL をアップグレードするたびに、mysql_upgrade を実行する必要があります。これにより、アップグレードした MySQL サーバーとの非互換性が検索されます: 追加された可能性のある新しい権限または機能を利用できるように、mysql スキーマ内のシステムテーブルがアップグレードされます。
SAVEPOINT、ROLLBACK TO SAVEPOINT および RELEASE SAVEPOINT ステートメント
MySQL のアップグレードを検討する場合、新しいバージョンを現在の本番バージョンとべつにインストールすることが賢明です。 これによって、本番サーバーからデータベースとデータベースオブジェクト定義をダンプし、新しいサーバーにロードして、それらが正しく処理されることを確認できます。 (これはダウングレードのテストの場合にも役立ちます。) 本番サーバーで: shell> mysqldump --all-databases --no-data --routines --events > dump-defs.sql アップグレードされたサーバーで: shell> mysql < dump-defs.sql ダンプファイルにはテーブルデータが含まれないため、すばやく処理できます。 これにより、長いデータロード操作を待つことなく、可能性のある非互換性を見分けることができます。 ダンプファイルの処理中の
グローバルトランザクション識別子は、特にレプリケーションデータフローおよびフェイルオーバーアクティビティーの一般管理を簡易化するために、MySQL Replication に追加されました。 各識別子は、全体でトランザクションを構成するバイナリログイベントセットを一意に識別します。 GTID はデータベースに変更を適用する際に重要な役割を果たします。サーバーは、以前に処理済みと認識している識別子のトランザクションを自動的にスキップします。 この動作は、自動レプリケーションポジショニングおよび正確なフェイルオーバーのために重要です。 トランザクションを構成する識別子とイベントセットとの間のマッピングは、バイナリログで取得されます。 このことは、別の既存のサーバーからのデータで新しいサーバーをプロビジョニングする際に、いくつかの課題を提起します。 新しいサーバーに設定された識別子を再現するには
手順 2: 両方のサーバーを停止します。. ここで示すように、mysqladmin を使用して各サーバーを停止します。ここで、username はサーバーをシャットダウンするのに十分な権限を持つ MySQL ユーザーのユーザー名です。 shell> mysqladmin -uusername -p shutdown 次に、プロンプトにこのユーザーのパスワードを指定します。 ステップ 3: GTID が有効な両方のサーバーを起動. GTID ベースのレプリケーションを有効にするには、GTID ベースのレプリケーションで安全なステートメントのみがログに記録されるように、gtid_mode 変数を ON に設定し、enforce_gtid_consistency 変数を有効にして GTID モードで各サーバーを起動する必要があります。 例: gtid_mode=ON enforce-gtid-c
DECIMAL および NUMERIC 型は真数値データ値を格納します。 これらの型は、金銭データを扱う場合など、正確な精度を保持することが重要な場合に使用されます。 MySQL では、NUMERIC は DECIMAL として実装されるので、DECIMAL に関する次の注意事項が NUMERIC にも同様に適用されます。 MySQL は、DECIMAL 値をバイナリ形式で格納します。 セクション12.25「高精度計算」を参照してください。 DECIMAL のカラム宣言では、精度とスケールを指定できます (通常は指定します)。 例: salary DECIMAL(5,2) この例では、5 が精度で、2 がスケールです。 精度は、その値に格納された有効な桁数を表し、スケールは小数点以下に格納できる桁数を表しています。 標準 SQL では、DECIMAL(5,2) には小数部が 2 桁の合計
数値データ型のサマリーについて説明します。数値型のプロパティーおよびストレージ要件の追加情報については、セクション11.2「数値型」およびセクション11.7「データ型のストレージ要件」を参照してください。 M は整数型の最大表示幅を示します。最大表示幅は 255 です。セクション11.2「数値型」で説明しているように、表示幅はその型に含めることができる値の範囲とは関係ありません。浮動小数点型と固定小数点型の場合、M は格納可能な桁数の合計です。 数値カラムに対して ZEROFILL を指定すると、MySQL は自動的にそのカラムに UNSIGNED 属性を追加します。 UNSIGNED 属性を許可している数値データ型は、SIGNED も許可します。ただし、このデータ型はデフォルトで符号付きになっているため、SIGNED 属性を指定しても効果はありません。 SERIAL は BIGINT U
レプリケーションソースサーバーをシャットダウンして、あとで再起動しても安全です。 レプリカがソースへの接続を失うと、レプリカはただちに再接続を試み、失敗した場合は定期的に再試行します。 デフォルトでは 60 秒ごとに再試行します。 これは、CHANGE REPLICATION SOURCE TO ステートメント (MySQL 8.0.23 の場合) または CHANGE MASTER TO ステートメント (MySQL 8.0.23 の場合) を使用して変更できます。 レプリカは、ネットワーク接続の停止にも対処できます。 ただし、レプリカは、ソースから slave_net_timeout 秒間データを受信しなかった後にのみネットワークの停止に気付きます。 停止時間が短い場合は、slave_net_timeout を減らすことをお勧めします。 セクション17.4.2「レプリカの予期しない停止
次に、日付関数の使用例を示します。 次のクエリーは、過去 30 日以内の date_col 値を含むすべての行を選択します。 mysql> SELECT something FROM tbl_name -> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col; このクエリーは、将来の日付を持つ行も選択します。 通常、日付値が要求される関数では、日付時間値が受け入れられ、時間の部分は無視されます。 通常、時間値が要求される関数では、日付時間値が受け入れられ、日付の部分は無視されます。 現在の日付または時間をそれぞれ返す関数は、クエリー実行の開始時にクエリーごとに 1 回だけ評価されます。 つまり、NOW() などの関数が単一クエリー内で複数回参照されても、常に同じ結果が生成されます。 (設計上、単一クエリーにはストアドプログラム (スト
mysqldump クライアントユーティリティは logical backups を実行し、元のデータベースオブジェクト定義およびテーブルデータを再現するために実行できる一連の SQL ステートメントを生成します。 別の SQL サーバーにバックアップまたは転送するために、1 つ以上の MySQL データベースをダンプします。 mysqldump コマンドは、CSV、その他の区切り文字で区切られたテキスト、または XML 形式でも出力を生成できます。 複数のスレッド、ファイル圧縮、進捗情報の表示、および Oracle Cloud Infrastructure Object Storage ストリーミングや MySQL データベースサービス 互換性チェックおよび変更などのクラウド機能で並列ダンプを提供する MySQL Shell dump utilities の使用を検討してください。 ダン
ディスク上のテーブルデータのストレージ要件は、複数の要因によって異なります。 別々のストレージエンジンは異なる方法でデータ型を表し、ローデータを格納します。 カラムか行全体のどちらかでテーブルデータを圧縮できますが、テーブルまたはカラムのストレージ要件の計算が複雑になります。 ディスク上のストレージレイアウトが違っていても、テーブル行に関する情報を通信および交換する内部 MySQL API は、すべてのストレージエンジンにわたって適用される一貫したデータ構造を使用します。 このセクションでは、データ型の固定サイズ表現を使用するストレージエンジンの内部形式およびサイズを含め、MySQL がサポートするデータ型ごとのストレージ要件に関するガイドラインおよび情報について説明します。 情報はカテゴリまたはストレージエンジンごとに示します。 テーブルの内部表現の最大行サイズは 65,535 バイトで
サーバーのバイナリログは、データベースの内容に対する変更を記述する「イベント」を含むファイルで構成されます。 サーバーはこれらのファイルをバイナリ形式で書き出します。 内容をテキスト形式で表示するには、mysqlbinlog ユーティリティーを使用します。 また、mysqlbinlog を使用して、複製設定で複製サーバーによって書き込まれたリレーログファイルの内容を表示することもできます。これは、リレーログの形式がバイナリログと同じであるためです。 バイナリログおよびリレーログは、セクション5.4.4「バイナリログ」およびセクション17.2.4「リレーログおよびレプリケーションメタデータリポジトリ」でさらに説明します。 mysqlbinlog は次のように起動します。 shell> mysqlbinlog [options] log_file ... たとえば binlog.000003
SET variable_assignment [, variable_assignment] ... variable_assignment: user_var_name = expr | [GLOBAL | SESSION] system_var_name = expr | [@@global. | @@session. | @@]system_var_name = expr SET ステートメントは、サーバやクライアントの操作に影響を与える、様々なタイプの変数に値を割り当てます。MySQL の古いバージョンは SET OPTION を採用していましたが、OPTION を持たない SET がより好まれるようになった為、この構文は廃止される事になりました。 このセクションでは、システム変数やユーザ変数に値を割り当てる SET の利用について説明します。変数に関するこれらのタイプの一般情報
RENAME {DATABASE | SCHEMA} db_name TO new_db_name; このステートメントはデータベースをリネームします。これは、データベースの ALTER と DROP 権限、そして新しいデータベースのCREATE 権限を必要とします。RENAME SCHEMA は RENAME DATABASE の同義語です。 サーバがこのステートメントを受け取る時、新しいデータベースを作成します。そしてそれは、テーブルと、トリガなどのようなその他のデータベース オブジェクトを新しいデータベースに移動します。それはまた、格納されたルーチンやイベントなどのようなオブジェクトのシステム テーブルに Db カラムを更新します。最後に、サーバは古いデータベースをドロップします。 現在はこれらの制限がありますので注意してください。 RENAME DATABASE はシステム テーブ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く