mysql之docker启动方式
image下载
1 | docker pull mysql; |
以上即可在本地下载一个mysql的镜像文件,下载好了后,在本地执行如下:
docker images;
即可看到刚才下载的镜像版本,当然,你也可以选择你指定的版本下载,
image启动
启动命令:1
docker run -d -p 3306:3306 -v /Users/junzhang/data/mysql1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql
逐个快速说明下:
1、-d:后台启动;这里直接后台启动即可,如果需要前台调试,用‘-it’,或者直接不写。
2、-p:映射端口,容器的端口和宿主机的端口一一映射。
3、-v:文件系统共享。本地的data/mysql1目录和容器的/var/lib/mysql目录映射共享。
4、–name:给容器命名,便于后续直接通过docker start mysql来快速启动
5、-e初始化mysql的root密码。
启动完成后,看到一个container_id。你可以用这个id来启动,也可以用name来启动,即使上面我们说的mysql.
注意点:这里volume在映射的时候,本地文件系统共享目录需要添加到docker的share file里。如本地的data/mysql1目录,需要在docker客户端,我本地的是mac,所以在客户端的preferences的file sharing里添加下目录即可
mysql容器参数修改
- 启动完成后,通过docker ps看正在运行中的容器。能看到刚才启动的container已经在运行中了。
- 通过navicat进行连接,此时会出现一个错误:
1
Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found
这个是你的root用户的密码没有配置好。按照如下方式进行修改:
step1:docker exec -it mysql mysql -uroot -p
step2:输入初始密码123456,进入到mysql服务器。
step3:直接按照下面的脚本来一波操作:1
2
3
4
5USE mysql;
drop user 'root'@'%';
CREATE USER 'root'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON . TO 'root'@'%';
FLUSH PRIVILEGES;
注意(我加粗字体):root的密码不要用123456,请用有点记忆难度的密码,比如root123456,否则不符合mysql的密码规范。你通过navicat连接的时候还是会报错的。
如果你需要修改密码,用下面的这条语句就能搞定:记得改下用户名和密码。1
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEWPASSWORD';
到这里,基本就搞定了。
结束语
这个文章的本意是要开启bin_log的。通过如下脚本查看下数据的binlog是否开启:1
show variables like '%log_bin%';
显示结果不言而喻。
本文作者 : braveheart
原文链接 : https://zhangjun075.github.io/passages/mysql之docker启动方式/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
知识 & 情怀 | 二者兼得