1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

podmanでMySQLサーバー

Last updated at Posted at 2022-10-25

はじめに

podmanを利用して、MySQLコンテナーを立ち上げそこにホストPCからMySQLクライアントで接続したかったのだが、詳しい文献が見つからず四苦八苦したので、この手順を記しておく。

以下環境。

  • macOS Monterey 12.6
  • Podman(以下)
Client:       Podman Engine
Version:      4.3.0
API Version:  4.3.0
Go Version:   go1.18.7
Built:        Wed Oct 19 02:55:57 2022
OS/Arch:      darwin/amd64

Server:       Podman Engine
Version:      4.2.1
API Version:  4.2.1
Go Version:   go1.18.5
Built:        Thu Sep  8 04:58:19 2022
OS/Arch:      linux/amd64

手順

イメージ取得

MySQLサーバーのみでよいので、mysql-serverを取得している。

% podman pull mysql/mysql-server:5.7

確認。

% podman images

REPOSITORY                    TAG         IMAGE ID      CREATED      SIZE
docker.io/mysql/mysql-server  5.7         63d5ef161926  13 days ago  491 MB

コンテナー起動

コンテナーを起動する。
rootユーザーのパスワードをMYSQL_ROOT_PASSWORDで指定、ホストPCの3306番ポートをコンテナーの3306に転送するように指定している。

% podman run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=XXXXXXXX --name mysql-server mysql-server:5.7

確認。

% podman ps

CONTAINER ID  IMAGE                             COMMAND     CREATED         STATUS                       PORTS                   NAMES
08cd2ff91f1d  docker.io/mysql/mysql-server:5.7  mysqld      10 minutes ago  Up 10 minutes ago (healthy)  0.0.0.0:3306->3306/tcp  mysql-server

MySQLユーザーの追加

コンテナーのMySQLクライアントで接続。

% podman exec -it mysql-server mysql -hlocalhost -uroot -p

接続先任意のrootユーザーを作成、権限付与。その後切断。

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'XXXXXXXX';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
mysql> FLUSH PRIVILEGES;
mysql> quit

ホストPCから接続

ホストPCから接続するには以下のコマンドで。

% mysql -h127.0.0.1 -P3306 -uroot -p

ちなみに、以下のコマンドのようなlocalhostだと、MySQLはUnixSocket使用しようとするらしくNG。--protocol=tcpを指定すればOK。

% mysql -hlocalhost -P3306 -uroot -p (→NG)
% mysql -hlocalhost -P3306 -uroot --protocol=tcp -p (→OK)
1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?