使用Docker来启动MySql

首先

我决定用Docker来建立开发环境所需的MySQL。由于我对基础设施方面不太擅长,所以经历了一些困难,我将建立和连接的步骤记录在备忘录中。

事前准备

    docker for macのインストール (https://docs.docker.com/docker-for-mac/install/)

    my.cnfの設定(しなくても問題ないが、したほうがいい)

启动方式

从DockerHub下载MariaDB镜像。

docker pull mariadb

确认已成功安装了Mariadb的映像。

~ $ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mariadb             latest              2cxxxxxxxxxx        3 weeks ago         363MB
~ $ 

启动MariaDB

docker run -v ~/tmp/mysql/:/etc/mysql/conf.d --name mariadb-server -e MYSQL_ROOT_PASSWORD="password" -e MYSQL_DATABASE=database -e MYSQL_USER=user -d -p 63306:3306 mariadb

对上述设置的说明

項目 説明 -v ~/tmp/mysql/:/etc/mysql/conf.d 公式だと/etc/mysql/conf.d配下のmy.cnfを読みに行くからマウンティングさせる –name mariadb-server タグ名を指定 -e MYSQL_ROOT_PASSWORD=”password” passwordを指定 -e MYSQL_DATABASE=database database名を指定 -e MYSQL_USER=user user名を指定 -p 63306:3306 ホストの63306を3306にフォワード mariadb イメージの指定

将文本编码更改为UTF8。

在上面的启动方式中,配置了”-v ~/tmp/mysql/:/etc/mysql/conf.d”。

如果不进行设定就启动的话。。。

docker run --name mariadb-server -e MYSQL_ROOT_PASSWORD="password" -e MYSQL_DATABASE=database -e MYSQL_USER=user -d -p 63306:3306 mariadb

由于字符编码不是UTF8,所以日语会乱码。

MariaDB [sample]> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

为了解决文字乱码问题,在启动时读取配置文件。
同时创建一个用于读取的文件,内容如下所示。

~ $ cat ~/tmp/mysql/my.cnf 
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
~ $ 

如果设置为以下,字符编码将变为UTF8。

MariaDB [sample]> SHOW VARIABLES LIKE "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

Docker的简单操作

查看正在运行的容器。

docker ps

请确认停止的容器。

docker ps -a

停止已启动的容器

docker stop {コンテナID}

指定容器启动

docker start {コンテナID}

从容器连接到MySQL。

// コンテナに入る
docker exec -it {コンテナID} bash
// コンテナからmysqlに入る
mysql -u root -p

直接连接到外部的MySQL
* 如果设置为localhost,则尝试连接到主机上的MySQL。请设置为127.0.0.1。

mysql -uroot -ppassword -h 127.0.0.1 -P 63306

享受你的Docker生活

bannerAds