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
設定項目の説明
- VALIDATE PASSWORD プラグイン
Would you like to setup VALIDATE PASSWORD plugin? (Press y|Y for Yes, any other key for No)
y
を選択すると、パスワードの強度チェックが有効になります- 初心者の方は
y
を選択することをおすすめします
- rootパスワードの設定
Please set the password for root here. New password: Re-enter new password:
- 強力なパスワードを設定してください
- 大文字・小文字・数字・記号を組み合わせる
- 匿名ユーザーの削除
Remove anonymous users? (Press y|Y for Yes, any other key for No)
y
を選択して削除することを推奨
- リモートrootログインの無効化
Disallow root login remotely? (Press y|Y for Yes, any other key for No)
y
を選択してセキュリティを向上
- testデータベースの削除
Remove test database and access to it? (Press y|Y for Yes, any other key for No)
y
を選択して不要なデータベースを削除
- 権限テーブルの再読み込み
Reload privilege tables now? (Press y|Y for Yes, any other key for No)
y
を選択して設定を反映
MySQLへのログイン確認
設定が完了したら、実際にMySQLにログインできるか確認します。
sudo mysql -u root -p
ログイン時の流れ
- パスワードの入力を求められます
- 先ほど設定したrootパスワードを入力
- 以下のような画面が表示されればログイン成功
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 | 設定したパスワードでログイン |
コメント