MySQL道普請便り

第223回 MySQL Shellをいろいろな環境にインストールしよう

今回は、今まで紹介してきたMySQL ShellをWindows、macOS、Linux(Ubuntu、OracleLinux)にインストールしてみようと思います。今まではDockerコンテナ内にあるMySQL Shellを活用していましたが、今回はローカル環境にインストールする方法を紹介します。

この記事は2024年6月時点のものとなりますので、最新情報が必要な場合は、必ず公式のドキュメントを確認してください。

検証環境

今回はMySQL環境として、Dockerで建てたMySQLを使用します。以下のコマンドでDockerを建てて、ローカルからアクセスをします。

% docker run --platform linux/x86_64 -p 127.0.0.1:3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_USER=kk2170 -e MYSQL_PASSWORD=my-secret-pw -d mysql:8.4.0

今回はMySQL Shellをインストール・実行していきますが、まずは従来のmysqlクライアントでアクセスが可能であることを確認しましょう。確認方法は以下の通りになります。

% mysql -uroot -pmy-secret-pw -h127.0.0.1 -P3307

執筆時点では、以下の通り8.4.0を使用しております。

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.4.0     |
+-----------+
1 row in set (0.00 sec)

Windowsにインストールしてみる

まずはWindowsにインストールしてみましょう。Windowsはインストーラーを利用してインストールすることができます。インストーラーは公式ページからダウンロードできます。

Windowsインストーラーのダウンロードページ
Windowsインストーラーダウンロードページ

ここで、Select Version:で、使用したいMySQLのバージョンに合わせてクライアントをダウンロードしましょう。今回は8.4.0LTSを使用しているので、MSI InstallerのDownloadボタンを押下してダウンロードページへ移動します。

クライアントのダウンロード選択画面
ダウンロード選択画面

この際に勘違いされがちな点があります。Oracleのアカウントの作成やログインが、一見必要そうに見えるのですが、落ち着いてページ内を読むとNo thanks, just start my download.というリンクが存在します。Oracleアカウントにとくにログインやサインインが必要なければ、そのリンクからダウンロードをすると良いでしょう。

Windowsインストーラーの起動画面
Windowsインストーラー起動画面

[Next]を押すと規約ページが表示されます。

インストーラー規約画面
インストーラー規約画面

規約に問題が無ければ[Next]を押してください。

インストール先の設定
インストール先設定画面

インストール先設定が表示されますが、変更しない場合はそのまま[Next]を押しましょう。

インストールの確認画面
インストール確認画面

[Next]を押すとUAC(ユーザーアカウント制御)画面で確認されるため、⁠はい」を押してインストールを継続しましょう。

インストール完了
インストール完了画面

これでインストール完了です。

では接続を試してましょう。コマンドプロントを開き、docker runで指定したportとrootユーザーを指定してアクセスします。この記事の通り指定している場合は、途中のパスワードはmy-secret-pwになります。

C:\>mysqlsh --host=127.0.0.1 --port=3307 --user=root
Please provide the password for 'root@127.0.0.1:3307': ************
Save password for 'root@127.0.0.1:3307'? [Y]es/[N]o/Ne[v]er (default No): y
MySQL Shell 8.4.0

Copyright (c) 2016, 2024, 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 '\?' for help; '\quit' to exit.
Creating a session to 'root@127.0.0.1:3307'
Fetching global names for auto-completion... Press ^C to stop.
Your MySQL connection id is 11
Server version: 8.4.0 MySQL Community Server - GPL
No default schema selected; type \use <schema> to set one.
MySQL  127.0.0.1:3307 ssl  SQL 

デフォルトのモードがSQLになっているため、以下のようにselect文を実行してみます。

MySQL  127.0.0.1:3307 ssl  SQL > select version();
+-----------+
| version() |
+-----------+
| 8.4.0     |
+-----------+
1 row in set (0.0016 sec)

このようにWindowsで接続ができました。

MySQL ShellをmacOSにインストールする

macOSの場合、Homebrewというパッケージマネージャを使用する方法が一番簡単だと思います。Homebrewのインストールについては割愛させていただきます。

インストールコマンドは以下のようになります。

$ brew install --cask mysql-shell

このコマンドでインストールが完了します。実行すると、以下のようにインストールが進んでいきます。

% brew install --cask mysql-shell
==> Downloading https://dev.mysql.com/get/Downloads/MySQL-Shell/mysql-shell-8.4.0-macos14-arm64.dmg
==> Downloading from https://cdn.mysql.com//Downloads/MySQL-Shell/mysql-shell-8.4.0-macos14-arm64.dmg
######################################################################################################################################################################################################################################################### 100.0%
==> Installing Cask mysql-shell
==> Running installer for mysql-shell with sudo; the password may be necessary.
Password:
installer: Package name is MySQL Shell 8.4.0
installer: Installing at base path /
installer: The install was successful.
  〈 省略 〉

接続を確認してみましょう。接続コマンドに関してはWindowsと同じものが使用できます。

kimurakouichirou@kimurakrounoAir ~ % mysqlsh --host=127.0.0.1 --port=3307 --user=root
Please provide the password for 'root@127.0.0.1:3307':
Save password for 'root@127.0.0.1:3307'? [Y]es/[N]o/Ne[v]er (default No): Y
MySQL Shell 8.4.0

Copyright (c) 2016, 2024, 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 '\?' for help; '\quit' to exit.
Creating a session to 'root@127.0.0.1:3307'
Fetching global names for auto-completion... Press ^C to stop.
Your MySQL connection id is 10
Server version: 8.4.0 MySQL Community Server - GPL
No default schema selected; type \use <schema> to set one.
 MySQL  127.0.0.1:3307 ssl  SQL > select version();
+-----------+
| version() |
+-----------+
| 8.4.0     |
+-----------+
1 row in set (0.0033 sec)

Linux(Ubuntu)にインストールする

Ubuntuを使用している場合に、パッケージマネージャとしてよく利用されているのがAPTになりますが、UbuntuのデフォルトにはMySQLのレポジトリは登録されていないため、まずはAPTレポジトリへの登録を行います。

APTのレポジトリは公式のページからダウンロードできます。今回はsudo dpkg -i /PATH/version-specific-package-name.debのリンクをコピーして、curlでダウンロードしました。

curl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.30-1_all.deb

ここで落としてきたdebファイルをdpkgコマンドを使って登録します。

$ sudo dpkg -i /PATH/version-specific-package-name.deb

これを実行すると、以下のようなメッセージが出てきます。

Once you are satisfied with the configuration then select last option 'Ok' to save the configuration, then run
'apt-get update' to load package list. Advanced users can always change the configurations later, depending on their
own needs.

  1. MySQL Server & Cluster (Currently selected: mysql-8.4-lts)
  2. MySQL Tools & Connectors (Currently selected: Enabled)
  3. MySQL Preview Packages (Currently selected: Disabled)
  4. Ok

これは選択するパッケージが選べるオプションになるのですが、今回はそのままOKを入力しましょう。これでAPTに登録が完了しました。

$ apt search mysql-shell
Sorting... Done
Full Text Search... Done
mysql-shell/noble 8.0.36+dfsg-0ubuntu1 amd64
  MySQL Shell (part of MySQL Server) 8.0

ではインストールをしてみましょう

$ sudo apt install mysql-shell -y

途中でタイムゾーンを確認するための質問が出てくるため、適切なタイムゾーンを選択しましょう。

Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by
presenting a list of cities, representing the time zones in which they are located.

  1. Africa   3. Antarctica  5. Asia      7. Australia  9. Indian    11. Etc
  2. America  4. Arctic      6. Atlantic  8. Europe     10. Pacific
Geographic area: 5

Please select the city or region corresponding to your time zone.

  1. Aden      16. Brunei       31. Hong_Kong    46. Kuala_Lumpur  61. Pyongyang      76. Tel_Aviv
  2. Almaty    17. Chita        32. Hovd         47. Kuching       62. Qatar          77. Thimphu
  3. Amman     18. Choibalsan   33. Irkutsk      48. Kuwait        63. Qostanay       78. Tokyo
  4. Anadyr    19. Chongqing    34. Istanbul     49. Macau         64. Qyzylorda      79. Tomsk
  5. Aqtau     20. Colombo      35. Jakarta      50. Magadan       65. Riyadh         80. Ulaanbaatar
  6. Aqtobe    21. Damascus     36. Jayapura     51. Makassar      66. Sakhalin       81. Urumqi
  7. Ashgabat  22. Dhaka        37. Jerusalem    52. Manila        67. Samarkand      82. Ust-Nera
  8. Atyrau    23. Dili         38. Kabul        53. Muscat        68. Seoul          83. Vientiane
  9. Baghdad   24. Dubai        39. Kamchatka    54. Nicosia       69. Shanghai       84. Vladivostok
  10. Bahrain  25. Dushanbe     40. Karachi      55. Novokuznetsk  70. Singapore      85. Yakutsk
  11. Baku     26. Famagusta    41. Kashgar      56. Novosibirsk   71. Srednekolymsk  86. Yangon
  12. Bangkok  27. Gaza         42. Kathmandu    57. Omsk          72. Taipei         87. Yekaterinburg
  13. Barnaul  28. Harbin       43. Khandyga     58. Oral          73. Tashkent       88. Yerevan
  14. Beirut   29. Hebron       44. Kolkata      59. Phnom_Penh    74. Tbilisi
  15. Bishkek  30. Ho_Chi_Minh  45. Krasnoyarsk  60. Pontianak     75. Tehran
Time zone: 78

今回はAsia/Tokyoを選択しています。これでインストールが完了します。

ただし、現在は上記の通り実行すると8.0.36のバイナリがダウンロードされてしまうため、sudo apt updateを実行した後にバージョンを確認して、8.4.0をインストールし直しましょう。

$ sudo apt update -y
$  apt list mysql-shell -a
Listing... Done
mysql-shell/unknown 8.4.0-1ubuntu24.04 amd64 [upgradable from: 8.0.36+dfsg-0ubuntu1]
mysql-shell/noble,now 8.0.36+dfsg-0ubuntu1 amd64 [installed,upgradable to: 8.4.0-1ubuntu24.04]

$  apt install mysql-shell=8.4.0-1ubuntu24.04

これで8.4.0に対応したmysql-shellをインストールできました。

Linux(Oracle Linux)にインストールする

Oracle Linuxを使用している場合に、パッケージマネージャとしてよく利用されているのがYUMになりますが、Oracle LinuxのデフォルトにはYUMのレポジトリは登録されていないため、まずはYUMレポジトリへの登録を行います。

MySQlの公式ページから、自分が使っているバージョンと同じバージョンのRPMパッケージをダウンロードします。今回はOracle Linux 9の環境を使用しているため、Oracle Linux 9用のRPMをダウンロードして使用します。

$ curl -OL https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm

これを登録します。

$ sudo yum install mysql84-community-release-el9-1.noarch.rpm

登録後はyum searchコマンドで見つかるようになります。

$ yum search mysql-shell
MySQL 8.4 LTS Community Server                                                        1.6 MB/s | 226 kB     00:00
MySQL Connectors Community                                                            463 kB/s |  53 kB     00:00
MySQL Tools 8.4 LTS Community                                                          27 kB/s |  97 kB     00:03
========================================= Name Exactly Matched: mysql-shell ==========================================
mysql-shell.x86_64 : Command line shell and scripting environment for MySQL
======================================== Name & Summary Matched: mysql-shell =========================================
mysql-shell-debugsource.x86_64 : Debug sources for package mysql-shell

ではインストールしてみましょう。

$ sudo yum install mysql-shell -y

これでインストールが完了しました。

まとめ

今回は、MySQL Shellのインストール方法を紹介しました。今まではDockerに入って実行していましたが、ローカルにMySQL Shell環境を作ることで、より簡単にMySQL Shellを試してみることができるようなりました。

DB本体はリモートやDockerで良くても、クライアントはローカルにある方が便利な場合もあるので、MySQL Shellにある程度馴染んできたら、ぜひローカル環境にも用意してみてはいかがでしょうか。

おすすめ記事

記事・ニュース一覧