Docker install MySQL in MacOS
MacOS 安装 Docker
使用 Homebrew 来安装 Docker
$ brew cask install docker
离线安装
下载地址:https://download.docker.com/mac/stable/Docker.dmg
Docker 安装 MySQL
- 决定下载的MySQL版本,去Docker Hub搜索要下载的版本,本例采用5.7版本;
- docker 拉取 mysql
docker pull mysql:5.7
- 查看MySQL镜像;
docker images | grep mysql
Docker 启动 MySQL
docker run -p 3306:3306 --name mysql -v /$PWD/mysql/my.cnf:/etc/mysql/my.cnf -v /$PWD/mysql/logs:/logs -v /$PWD/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
参数说明:
-
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-
-v $PWD/conf/my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf
-
-v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs
-
-v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data
-
-e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码
启动成功后,可通过 docker ps 查看容器id
~ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a874341529a mysql:5.7 "docker-entrypoint.s…" 30 minutes ago Up 25 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
登录MySQL容器
登录容器命令:docker exec -it 容器id bash
docker exec -it 2a874341529a bash
登录MySQL
mysql -u root -p
输入密码后就登录MySQL
MySQL 修改字符集
查看MySQL字符集
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
修改字符集
修改 /$PWD/mysql/my.cnf文件内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = uft8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
重启MySQL容器
登录MySQL容器并重启MySQL服务
docker restart 2a874341529a
可以重新查看下MySQL字符集
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
字符集已完全修改为utf8了