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

パスワード管理とリセット方法

パスワードの変更手順

MySQLでは、パスワードを変更するために複数のアプローチが存在します。状況に応じて適切な方法を選択します。

方法1: MySQLシェル内での変更

データベースにログインした状態で、以下のクエリを実行します。

mysql -uユーザー名 -p
ALTER USER 'ユーザー名'@'localhost' IDENTIFIED BY '新しいパスワード';

方法2: mysqladminコマンドの使用

ログインせずにコマンドラインから直接変更可能です。

# 既存パスワードがある場合
mysqladmin -uユーザー名 -p旧パスワード password 新パスワード

# パスワード未設定の場合
mysqladmin -uユーザー名 password 設定パスワード

パスワード忘れ時の対応

ローカル環境でパスワードを忘れた場合は、認証をバイパスしてリセットできます。ただし、本番環境では推奨されません。

手順:

  1. 管理者権限でコマンドプロンプトを起動
  2. MySQLサービスを停止:
    net stop mysql
    
  3. 認証テーブルをスキップして起動:
    mysqld --skip-grant-tables --shared-memory
    
  4. 新規ターミナルを開き、パスワードなしで接続:
    mysql -u root
    
  5. パスワードを更新:
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新パスワード';
    
  6. サービスを再起動:
    net stop mysql
    net start mysql
    

文字コード設定と設定ファイル

現在のステータス確認

サーバー情報と文字コード設定は以下のコマンドで確認できます。

STATUS;

または

\s

設定ファイルの編集

クライアントとサーバー間で文字コードの不整合がある場合、文字化けが発生します。設定ファイルで統一することを推奨します。

my.ini(Windows)/ my.cnf(Linux)の設定例:

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

設定変更後は、必ずサービスを再起動してください。

SQL基本コマンド一覧

データベース操作

-- データベース一覧表示
SHOW DATABASES;

-- データベース作成
CREATE DATABASE データベース名;

-- 作成時の詳細確認
SHOW CREATE DATABASE データベース名;

-- 文字コード変更
ALTER DATABASE データベース名 CHARACTER SET utf8mb4;

-- データベース削除
DROP DATABASE データベース名;

-- 使用するデータベースを選択
USE データベース名;

-- 現在選択中のデータベース確認
SELECT DATABASE();

テーブル操作

-- テーブル一覧表示
SHOW TABLES;

-- テーブル構造確認
DESC テーブル名;

-- テーブル作成
CREATE TABLE テーブル名 (
    id INT,
    name VARCHAR(50)
);

-- カラム定義の変更
ALTER TABLE テーブル名 MODIFY COLUMN name VARCHAR(100);

-- テーブル削除
DROP TABLE テーブル名;

レコード操作(CRUD)

-- 全件取得
SELECT * FROM テーブル名;

-- 特定カラムのみ取得
SELECT id, name FROM テーブル名;

-- レコード挿入(単件)
INSERT INTO テーブル名 (id, name) VALUES (1, 'サンプル');

-- レコード挿入(複数件)
INSERT INTO テーブル名 (id, name) VALUES 
    (2, 'データA'),
    (3, 'データB');

-- レコード更新
UPDATE テーブル名 SET name = '更新内容' WHERE id = 1;

-- 条件指定削除
DELETE FROM テーブル名 WHERE id = 1;

-- 全件削除
DELETE FROM テーブル名;

ストレージエンジンについて

MySQLでは、データの保存・管理方法を定義する「ストレージエンジン」を選択できます。

主要なエンジン:

  • InnoDB: デフォルトエンジン。トランザクション対応、ACID準拠、行レベルロックをサポート。
  • MyISAM: 読み取り速度重視。トランザクション非対応。
  • MEMORY: メモリ上にデータを保持。高速だが永続性なし。

現在のエンジン確認:

SHOW ENGINES;

-- 特定テーブルのエンジン確認
SHOW TABLE STATUS LIKE 'テーブル名';

タグ: MySQL データベース SQL パスワード管理 文字コード

8月10日 00:01 投稿