LoginSignup
4
7

MySQL 8.0 を Ubuntu 22.04 にインストールする

Last updated at Posted at 2023-04-10

MySQL 8.0 を Ubuntu 22.04 にインストールする

こんにちは、@studio_meowtoon です。今回は、WSL の Ubuntu 22.04 に MySQL 8.0 をインストールする手順を紹介します。
mysql_on_ubuntu.png

目的

Windows 11 の Linux でクラウド開発します。

こちらから記事の一覧がご覧いただけます。

実現すること

Ubuntu 22.04 に MySQL 8.0 をインストールします。

プロジェクトにより古いバージョンMySQL が使用されていることもあります。 以下の記事では MySQL 5.7 をインストールする方法を紹介しています。

技術トピック

MySQL とは?

こちらを展開してご覧いただけます。

MySQL

MySQL は、オープンソースのリレーショナルデータベース管理システム (RDBMS) で、世界中で広く利用されているデータベースソフトウェアです。

特徴
MySQL は、高いパフォーマンス、拡張性、信頼性、および簡単な使用と管理性が特徴であり、Web アプリケーションや企業アプリケーションなど、さまざまな用途で使用されています。
MySQL は、クライアント/サーバーシステムとして動作し、多くのプログラムやWebアプリケーションから利用できます。
また、MySQL はオープンソースであるため、コミュニティによって開発されており、多くの開発者やユーザーが貢献しています。
MySQL は現在、Oracle Corporation が所有しており、Oracle Corporation から商用ライセンスも提供されています。

開発環境

  • Windows 11 Home 22H2 を使用しています。

WSL の Ubuntu を操作していきますので macOS の方も参考にして頂けます。

WSL (Microsoft Store アプリ版) ※ こちらの関連記事からインストール方法をご確認いただけます

> wsl --version
WSL バージョン: 1.0.3.0
カーネル バージョン: 5.15.79.1
WSLg バージョン: 1.0.47

Ubuntu ※ こちらの関連記事からインストール方法をご確認いただけます

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04

この記事では基本的に Ubuntu のターミナルで操作を行います。Vim を使用してコピペする方法を初めて学ぶ人のために、以下の記事で手順を紹介しています。ぜひ挑戦してみてください。

MySQL のインストール

MySQL の存在を確認します。

$ mysql --version
-bash: /usr/bin/mysql: そのようなファイルやディレクトリはありません

インストールします。

$ sudo apt update
$ sudo apt install mysql-server-8.0 -f

MySQL のバージョンを確認します。

$ mysql --version
mysql  Ver 8.0.32-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))

ここまでの手順で、MySQL 8.0Ubuntu 22.04 にインストールすることができました。

データベースとテーブルを作成

ここでは例として The Beatlesメンバーを登録するデータベースを作成します。

MySQL を起動します。

$ sudo service mysql start

MySQL にログインします。

この記事では特に root パスワード設定しません

$ sudo mysql -u root

データベースを作成して選択します。

> CREATE DATABASE music;
> USE music;

テーブルを作成します。

> CREATE TABLE musician (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    birthdate DATE NOT NULL,
    instrument VARCHAR(255) NOT NULL,
    PRIMARY KEY (id)
);

データベースの一覧表示をします。

> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| music              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

テーブルを確認をします。

> SHOW TABLES;
+-----------------+
| Tables_in_music |
+-----------------+
| musician        |
+-----------------+
1 row in set (0.00 sec)

以下は、テーブルを削除するコマンドです。

> DROP TABLE <table_name>;

以下は、データベースを削除するコマンドです。

> DROP DATABASE <database_name>;

MySQL からログアウトします。

> exit;
Bye

ここまでの手順で、MySQL にデータベーステーブル作成することができました。

テーブルにデータを挿入

musician.sql を作成します。

$ cd ~/tmp
$ vim musician.sql

ファイルの内容

musician.sql
USE music;
INSERT INTO musician (id, name, birthdate, instrument) VALUES
  (1, 'John Lennon', '1940-10-09', 'Vocal, Guitar'),
  (2, 'Paul McCartney', '1942-06-18', 'Vocal, Bass'),
  (3, 'George Harrison', '1943-02-25', 'Vocal, Guitar'),
  (4, 'Ringo Starr', '1940-07-07', 'Vocal, Drums');

MySQL にログインします。

$ sudo mysql -u root

データベースを選択します。

> USE music;

SQL ファイルをインポートします。

> SOURCE musician.sql;

テーブルの内容を表示します。

> SELECT * FROM musician;
+----+-----------------+------------+---------------+
| id | name            | birthdate  | instrument    |
+----+-----------------+------------+---------------+
|  1 | John Lennon     | 1940-10-09 | Vocal, Guitar |
|  2 | Paul McCartney  | 1942-06-18 | Vocal, Bass   |
|  3 | George Harrison | 1943-02-25 | Vocal, Guitar |
|  4 | Ringo Starr     | 1940-07-07 | Vocal, Drums  |
+----+-----------------+------------+---------------+
4 rows in set (0.00 sec)

MySQL からログアウトします。

> exit;
Bye

ここまでの手順で、MySQL にテーブルに SQL ファイルからデータをインポートすることができました。

データベースをダンプする

データベースのテーブルスキーマとデータをファイルにダンプします。

作業ディレクトリに移動します。
※ ~/tmp を作業ディレクトリとしています。

$ cd ~/tmp

データベースをダンプします。

$ sudo mysqldump -u root music > music_dump.sql

ダンプされたファイルを確認します。

$ cat ~/tmp/music_dump.sql
ファイルの内容を確認します。
tmp/music_dump.sql
-- MySQL dump 10.13  Distrib 8.0.32, for Linux (x86_64)
--
-- Host: localhost    Database: music
-- ------------------------------------------------------
-- Server version       8.0.32-0ubuntu0.22.04.2

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `musician`
--

DROP TABLE IF EXISTS `musician`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `musician` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `birthdate` date NOT NULL,
  `instrument` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `musician`
--

LOCK TABLES `musician` WRITE;
/*!40000 ALTER TABLE `musician` DISABLE KEYS */;
INSERT INTO `musician` VALUES (1,'John Lennon','1940-10-09','Vocal, Guitar'),(2,'Paul McCartney','1942-06-18','Vocal, Bass'),(3,'George Harrison','1943-02-25','Vocal, Guitar'),(4,'Ringo Starr','1940-07-07','Vocal, Drums');
/*!40000 ALTER TABLE `musician` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2023-04-11 15:24:02

ここまでの手順で、データベースのテーブルスキーマ、データを含む内容music_dump.sql ファイルにダンプすることができました。

このでの手順では、music_dump.sql ダンプファイルに CREATE DATABASE music; 文が含まれないことに注意してください。

データベースをリストアする

データベースのテーブルスキーマとデータをファイルからリストアします。

この記事の例では、データベースを一旦削除しています。

作業ディレクトリに移動します。
※ ~/tmp を作業ディレクトリとしています。

$ cd ~/tmp

MySQL にログインします。

$ sudo mysql -u root

データベースを作成して選択します。

> CREATE DATABASE music;
> USE music;

データベースをリストアします。

> source music_dump.sql;

テーブルの内容を表示します。

> SELECT * FROM musician;

MySQL からログアウトします。

> exit;
Bye

ここまでの手順で、データベースのテーブルスキーマ、データを含む music_dump.sql ダンプファイルを、新しく作成した music データベースにリストアすることができました。

アンインストール

MySQL を停止します。

$ sudo service mysql stop

MySQL パッケージを削除します。

$ sudo apt purge mysql-server mysql-client mysql-common \
    mysql-server-core-* mysql-client-core-*

MySQL の設定ファイルとデータベースを削除します。

$ sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql

ここまでの手順で、MySQL 8.0 をシステムから完全にアンインストールすることができます。

トラブルシューティング

ポート 3306 を使用しているプロセスを確認するコマンドです。

$ sudo lsof -i :3306

もしポートが占有されている場合は、以下のコマンドでそのプロセスを終了します。

$ sudo kill -9 <nnnnn>

MySQL のソケットファイルを削除するコマンドです。

$ sudo rm /var/run/mysqld/mysqld.sock

まとめ

Ubuntu 22.04 に MySQL 8.0 をインストールして、データベースを使用する開発環境を構築することが出来ました。

Ubuntu を使うと Linux の知識も身に付きます。最初は難しく感じるかもしれませんが、徐々に進めていけば自信を持って書けるようになります。

どうでしたか? MySQL の操作には、この他にもたくさんのコマンドがあります。みなさんも少しづつ試してみてください。今後も開発環境などを紹介していきますので、ぜひお楽しみにしてください。

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7