今回は、今まで紹介してきたMySQL ShellをWindows、macOS、Linux
この記事は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 -uroot -pmy-secret-pw -h127.0.0.1 -P3307
執筆時点では、以下の通り8.
mysql> select version(); +-----------+ | version() | +-----------+ | 8.4.0 | +-----------+ 1 row in set (0.00 sec)
Windowsにインストールしてみる
まずはWindowsにインストールしてみましょう。Windowsはインストーラーを利用してインストールすることができます。インストーラーは公式ページからダウンロードできます。
ここで、Select Version:で、使用したいMySQLのバージョンに合わせてクライアントをダウンロードしましょう。今回は8.
この際に勘違いされがちな点があります。Oracleのアカウントの作成やログインが、一見必要そうに見えるのですが、落ち着いてページ内を読むとNo thanks, just start my download.
というリンクが存在します。Oracleアカウントにとくにログインやサインインが必要なければ、そのリンクからダウンロードをすると良いでしょう。
[Next]
規約に問題が無ければ
インストール先設定が表示されますが、変更しない場合はそのまま
[Next]
これでインストール完了です。
では接続を試してましょう。コマンドプロントを開き、docker runで指定したportとrootユーザーを指定してアクセスします。この記事の通り指定している場合は、途中のパスワードはmy-secret-pw
になります。
C:\>mysqlsh --host=127.0.0.1 --port=3307 --user=root Please provide the password for '[email protected]:3307': ************ Save password for '[email protected]: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 '[email protected]: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 '[email protected]:3307': Save password for '[email protected]: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 '[email protected]: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/
のリンクをコピーして、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/
ただし、現在は上記の通り実行すると8.sudo apt update
を実行した後にバージョンを確認して、8.
$ 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.
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にある程度馴染んできたら、ぜひローカル環境にも用意してみてはいかがでしょうか。