从docker镜像仓库下载mysql
docker pull mysql
此时默认下载最新版本的mysql,如果要指定版本,如5.7的mysql
docker pull mysql:5.7
默认账户是vagrant,权限不够需sudo,为了简便直接su命令切换到超级管理员,密码为默认的vagrant
创建实例并启动
docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
参数说明:
docker run:用docker启动一个容器
-p 3306:3306:将linux的3306端口(前)映射到mysql容器的3306端口(后)
--name mysql:为当前启动的容器命名为mysql
-e启动的时候给容器设置一些参数,MYSQL_ROOT_PASSWORD=root设置mysql root账号的密码为root
-d:以后台方式运行, mysql:5.7用mysql5.7版本的镜像启动容器
:换行命令
-v:目录挂载,就是windows中的快捷方式(一改俱改)
/mydata/mysql/log:/var/log/mysql在linux下创建/mydata/mysql/log文件夹,“:”挂载,与容器内部文件夹/var/log/mysql挂载
log是日志,etc是配置信息,lib/mysql是mysql的数据库文件
有图中一长串字符说明容器已启动mysql已装好了
用docker ps可 查看docker正在运行中的容器
进入mysql容器内部
docker exec -it mysql /bin/bash
-it以交互模式,mysql为容器的名字,也可换成容器的id,/bin/bash进入mysql的linux的控制台
修改mysql字符编码
默认拉丁
因为有目录映射,所以我们可以直接在mysql容器外执行
vi /mydata/mysql/conf/my.conf
拆入模式(i)粘贴
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake skip-name-resolve
然后esc,:wq命令保存离开
重启mysql
docker restart mysql
查看mysql容器内配置是否变化