![Docker远征](https://img.tnblog.net/arcimg/hb/656ec4beace04f5e9a7b1d58b6368639.jpg "Docker远征")
>#Docker部署简单的mysql
[TOC]
tn>首先这玩意我是真不想写,网上写的太多了,但是又没有找到快速的创建方式。so...
有疑问都可以参考官网:https://hub.docker.com/_/mysql
直接上命令
------------
>###拉取镜像
```bash
docker pull mysql
```
>###运行mysql
```bash
docker run -d -p 3306:3306 --name ADmysql -e MYSQL_USER="aidasi" -e MYSQL_ROOT_PASSWORD="pwd123456" -e MYSQL_PASSWORD="pwd123456" -e character-set-server=utf8 -e collation-server=utf8_general_ci mysql
```
>###进入容器
```bash
docker exec -it ADmysql bash
```
>###进入mysql的命令行
```bash
mysql -u root -p
```
>###创建新用户
```bash
CREATE USER 'test'@'localhost' IDENTIFIED BY 'pwd123456';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' WITH GRANT OPTION;
```
>###不限制所有访问路径
```bash
CREATE USER 'aidasi'@'%' IDENTIFIED BY 'pwd123456';
GRANT ALL PRIVILEGES ON *.* TO 'aidasi'@'%' WITH GRANT OPTION;
```
```bash
CREATE USER 'test'@'%' IDENTIFIED BY 'pwd123456';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION;
```
>###刷新
```bash
FLUSH PRIVILEGES;
```
>###查看用户可访问方式
![](https://img.tnblog.net/arcimg/hb/474c412150fd44d0b1e1bf7a96613e94.png)
其他
------------
>###外部mount
```bash
--mount type=bind,source=/mysql/my.cnf,target=/etc/my.cnf
--mount type=bind,source=/mysql/data,target=/var/lib/mysql
```
>###外部volume
```bash
-v /docker/mysql/config/my.cnf:/etc/my.cnf
-v /docker/mysql/config/data:/var/lib/mysql mysql/mysql-server
```
>###通过数据卷交给docker进行管理
```bash
docker volume create mysql
docker volume ls
#source是指的上面我们在宿主机创建出来的volume
#destination即我们要与容器中的哪个数据卷进行绑定。
--mount source=mysql,destination=/var/lib/mysql
```
>###修改MYSQL默认字符集
>添加到 `/etc/my.cnf`
```bash
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
```
>查看字符集命令
```bash
show variables like '%char%';
```
tn>注意:版本不要用太高,自作孽不可活!