使用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
对上述设置的说明
将文本编码更改为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