Ubuntu環境でのphpMyAdmin導入とアップロード容量制限の設定方法

前提環境の構築 phpMyAdminを動作させるには、事前にMySQLサーバとApache HTTPサーバのセットアップが必要です。ここでは既にインストール済みとして、PHP環境の構築に進みます。 PHPランタイムとApacheモジュールの導入 Ubuntuの場合、以下のコマンドでPHPとApache連携モジュールをインストールします。バージョンは環境に応じて読み替えてください。 sudo apt update s ...

8月11日 19:14 投稿

PythonのFastAPIとMySQLを使用したシンプルなCRUD実装

一、プロジェクトの作成 PyCharmでFastAPIプロジェクトを作成します: 二、技術実装 データベース操作 実際のデータベースCRUD操作をカプセル化し、SQLAlchemyを使用して実装します。コードはbase.pyに記述します: from typing import Type, TypeVar, List, Generic, Optional, Any, Union, Iterable from sqlalchemy.orm import Session # ジェネリック型変数を定義 ...

8月11日 17:30 投稿

MySQL スロークエリ設定とスレッド分析マニュアル

本ドキュメントは、開発者および運用担当者がMySQLのスロークエリログを迅速に設定し、低速なSQLを分析し、データベース実行時のスレッドブロッキングや負荷問題をトラブルシューティングするためのガイドです。 スロークエリログの有効化 スロークエリの有効化には主に2つの方法があります:一時有効(再起動不要だが、再起動後に無効化)と永続有効(設定ファイル変更 ...

8月10日 23:00 投稿

MySQLの基本操作と設定ガイド

パスワード管理とリセット方法 パスワードの変更手順 MySQLでは、パスワードを変更するために複数のアプローチが存在します。状況に応じて適切な方法を選択します。 方法1: MySQLシェル内での変更 データベースにログインした状態で、以下のクエリを実行します。 mysql -uユーザー名 -p ALTER USER 'ユーザー名'@'localhost' IDENTIFIED BY '新しいパスワード'; 方 ...

8月10日 00:01 投稿

SQL クエリにおける派生テーブル別名の指定ルールとエラー解決

発生するエラーメッセージ RDBMS 上で複雑なクエリを実行する際、頻繁に遭遇する構文エラーがあります。 ERROR: Every derived table must have its own alias このメッセージは、FROM 句内で使用されているサブクエリ(派生テーブル)に、識別子となる別名が付けられていない場合に発生します。 派生テーブルの概念 派生テーブルとは、SELECT 文の結果セットを一時的な ...

8月9日 22:33 投稿

Mac環境におけるDockerを使用したNginx、PHP、MySQL環境の構築と負荷分散の実装

環境構成 検証環境および前提条件は以下の通りです。 OS: macOS Sonoma 14.3 アーキテクチャ: Apple Silicon (M3 Pro) コンテナ管理: OrbStack または Docker Desktop 25.0.5 ターミナル: iTerm2 1. PHP-FPM環境の構築 まず、PHPアプリケーションの実行環境を準備します。PHP 8.2のFPMイメージを使用し、ソースコード用のディレクトリをローカルにマウントします。 # ワ ...

8月9日 14:44 投稿

MySQL高可用性クラスタの実装:Percona XtraDB Cluster (PXC) 入門

Percona XtraDB Cluster (PXC) の概要 Percona XtraDB Cluster(PXC)は、GaleraライブラリをベースとしたMySQLの同期マルチマスタレプリケーションソリューションです。従来の非同期レプリケーションと比較し、PXCはデータの整合性を厳密に保証し、レプリケーション遅延を事実上排除することでリアルタイムに近いデータ同期を実現します。クラスタ内のすべてのノードは対 ...

8月7日 03:04 投稿

SQL実践:データ集計と複雑なクエリの最適化パターン

複数値のフィルタリング(IN句の活用) 特定のカラムに対して複数の値を指定してフィルタリングを行う際、IN演算子を使用することでクエリを簡潔に記述できます。 SELECT user_id, gender, age, school, gpa FROM user_accounts WHERE school IN ('北京大学', '復旦大学', '山東大学'); 集計関数を用いたフィルタリング(HAVING句) WHERE句では集計関数(AVG, COUNTな ...

8月6日 09:34 投稿

MyBatisでデータ挿入後の自動採番IDを取得する方法

データベースにレコードを挿入した後に、その自動採番された主キーIDを取得したいケースはよくあります。MyBatisでは、この要件をuseGeneratedKeys属性または<selectKey>要素を使って実現できます。 useGeneratedKeysによるID取得 最もシンプルな方法は、<insert>タグにuseGeneratedKeys="true"とkeyPropertyを指定することです。 <insert id="insertStud ...

8月6日 06:40 投稿

MySQL マスター - スレーブレプリケーション構成の手順

データベースの可用性と負荷分散を実現するため、MySQL のマスター - スレーブ(主従)複製環境を構築する標準的な手順について解説します。この構成では、マスターサーバーへの記述操作が自動的にスレーブサーバーへ同期されます。 1. サーバー設定の変更 各ノードの構成ファイル(通常は my.cnf または mysql.conf.d 内)を編集し、必要なパラメータを設定します。すべ ...

8月5日 15:02 投稿