UbuntuでMySQLをインストールする方法|初心者向けガイド

その他

UbuntuにMySQLをインストールする手順をわかりやすく解説します。

初心者の方でも安心して進められるよう、各ステップを詳しく説明していきます。

スポンサーリンク

MySQLとは?

MySQLは世界で最もよく使われているオープンソースのデータベース管理システムです。

ウェブサイトやアプリケーションのデータを保存・管理するために使用されています。

MySQLの特徴

  • 高速で安定している
  • 無料で使用できる
  • 多くのプログラミング言語に対応
  • 豊富な機能とツールが利用可能

事前準備

インストールを始める前に、以下の点を確認してください。

必要な環境

  • Ubuntu 18.04以降のバージョン
  • sudo権限を持つユーザーアカウント
  • インターネット接続

推奨事項

  • システムのバックアップを取得しておく
  • 十分なディスク容量(最低2GB以上)
  • 他のデータベースソフトが動作していないことを確認

インストール手順

パッケージリストの更新

まず最初に、Ubuntuのパッケージリストを最新の状態に更新します。

sudo apt update

この手順の目的

  • 利用可能なパッケージの最新情報を取得
  • セキュリティアップデートの確認
  • インストール時のエラーを防ぐ

実行結果の確認

# 正常に完了すると以下のようなメッセージが表示される
Reading package lists... Done
Building dependency tree       
Reading state information... Done

MySQLサーバーのインストール

パッケージリストの更新が完了したら、MySQLサーバーをインストールします。

sudo apt install mysql-server

インストール中の注意点

  • インストールには数分かかる場合があります
  • 最新のUbuntuバージョンでは、自動的にrootパスワードが設定されません
  • 必要なパッケージが自動的にダウンロード・インストールされます

インストール完了の確認

# MySQLのバージョンを確認
mysql --version

# 以下のような出力が表示されればインストール成功
mysql  Ver 8.0.xx-Ubuntu for Linux on x86_64

MySQLサービスの起動と確認

インストールが完了したら、MySQLサービスを起動して動作状況を確認します。

サービスの起動

sudo systemctl start mysql

動作状況の確認

sudo systemctl status mysql

正常に起動している場合の表示

● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2025-01-01 10:00:00 JST; 5min ago

自動起動の設定 システム起動時に自動でMySQLが起動するよう設定しておきます。

sudo systemctl enable mysql

トラブルシューティング もしサービスが起動しない場合は、以下を確認してください。

# エラーログの確認
sudo journalctl -u mysql.service

# MySQLのエラーログファイルを確認
sudo tail -f /var/log/mysql/error.log

初期設定の実行(セキュリティ強化)

MySQLのセキュリティを強化するため、初期設定スクリプトを実行します。

sudo mysql_secure_installation

設定項目の説明

  1. VALIDATE PASSWORD プラグインWould you like to setup VALIDATE PASSWORD plugin? (Press y|Y for Yes, any other key for No)
    • yを選択すると、パスワードの強度チェックが有効になります
    • 初心者の方はyを選択することをおすすめします
  2. rootパスワードの設定Please set the password for root here. New password: Re-enter new password:
    • 強力なパスワードを設定してください
    • 大文字・小文字・数字・記号を組み合わせる
  3. 匿名ユーザーの削除Remove anonymous users? (Press y|Y for Yes, any other key for No)
    • yを選択して削除することを推奨
  4. リモートrootログインの無効化Disallow root login remotely? (Press y|Y for Yes, any other key for No)
    • yを選択してセキュリティを向上
  5. testデータベースの削除Remove test database and access to it? (Press y|Y for Yes, any other key for No)
    • yを選択して不要なデータベースを削除
  6. 権限テーブルの再読み込みReload privilege tables now? (Press y|Y for Yes, any other key for No)
    • yを選択して設定を反映

MySQLへのログイン確認

設定が完了したら、実際にMySQLにログインできるか確認します。

sudo mysql -u root -p

ログイン時の流れ

  1. パスワードの入力を求められます
  2. 先ほど設定したrootパスワードを入力
  3. 以下のような画面が表示されればログイン成功
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.xx-Ubuntu

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

基本的なコマンドの確認

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

-- 現在の日時を確認
SELECT NOW();

-- MySQLから退出
EXIT;

追加設定とカスタマイズ

一般ユーザーの作成

rootユーザーを日常的に使用するのはセキュリティ上好ましくないため、一般ユーザーを作成します。

-- MySQLにrootでログイン後、以下を実行
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

設定ファイルの場所

MySQLの設定は以下のファイルで管理されています。

# メイン設定ファイル
/etc/mysql/mysql.conf.d/mysqld.cnf

# 設定ファイルの確認
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

よく変更する設定項目

  • bind-address:接続を許可するIPアドレスの設定
  • max_connections:最大接続数の設定
  • innodb_buffer_pool_size:メモリ使用量の設定

ファイアウォールの設定

外部からMySQLに接続する場合は、ファイアウォールの設定が必要です。

# MySQLポートの開放(デフォルトは3306)
sudo ufw allow mysql

# 特定のIPアドレスからのみ接続を許可
sudo ufw allow from 192.168.1.100 to any port 3306

トラブルシューティング

よくある問題と解決方法

問題1:MySQLサービスが起動しない

# 解決方法1:設定ファイルの確認
sudo mysql --help --verbose | grep -A 1 'Default options'

# 解決方法2:ログファイルの確認
sudo tail -f /var/log/mysql/error.log

# 解決方法3:MySQLの再起動
sudo systemctl restart mysql

問題2:パスワードを忘れた場合

# MySQLを安全モードで起動
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &

# パスワードなしでログイン
mysql -u root

# パスワードの変更
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
EXIT;

# MySQLの再起動
sudo systemctl restart mysql

問題3:文字化けが発生する場合

-- 文字セットの確認
SHOW VARIABLES LIKE 'character_set%';

-- UTF-8の設定(必要に応じて設定ファイルに追記)


[mysql]
default-character-set=utf8mb4


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

パフォーマンス最適化

基本的なチューニング

MySQLのパフォーマンスを向上させるための基本設定です。

# 設定ファイルの編集
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

推奨設定例

[mysqld]
# メモリ関連の設定
innodb_buffer_pool_size = 1G
key_buffer_size = 256M
max_connections = 100

# ログ関連の設定
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2

# 一般的な最適化
query_cache_type = 1
query_cache_size = 64M

モニタリングツール

MySQLの動作状況を監視するためのツールです。

# MySQLの統計情報を表示
mysqladmin -u root -p status

# プロセス一覧の表示
mysqladmin -u root -p processlist

# パフォーマンススキーマの有効化
mysql -u root -p -e "SELECT * FROM performance_schema.global_status WHERE VARIABLE_NAME LIKE 'Com_%';"

まとめ

手順コマンド例ポイント
パッケージ更新sudo apt update最新情報の取得が重要
インストールsudo apt install mysql-server時間がかかる場合がある
サービス起動sudo systemctl start mysql自動起動設定も忘れずに
セキュリティ設定sudo mysql_secure_installation全ての項目でyを選択推奨
ログイン確認sudo mysql -u root -p設定したパスワードでログイン

コメント

タイトルとURLをコピーしました