Docker之安装MySQL
Posted 码之优雅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker之安装MySQL相关的知识,希望对你有一定的参考价值。
Docker容器之安装mysql
1.拉取mysql镜像
docker pull mysql
#自定义Mysql容器映射端口:3639
docker run --name mysqlserver -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Lxw888888.. -d -i -p 3963:3963 mysql
#默认Mysql容器映射端口:3306
docker run --name mysqlserver -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql
cd /var/lib/docker/containers/
docker exec -it mysqlserver bash
#进入容器
docker exec -it mysqlserver bash
#连接Mysql容器中的Mysql
mysql -uroot -p
#连接到mysql容器的mysql
use mysql;
#选定表
select host,user from user;
#外部navicat连接授权和设置密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'navicat连接的密码'
;#刷新权限
flush privileges;
步骤一:apt-get update
步骤二:apt-get install vim
bind-addrees = 0.0.0.0
port = 3963
docker restart 容器ID
#将容器中的my.cnf文件copy到宿主主机中
docker cp 9035681ac86e:/etc/mysql/my.cnf /home
#追加内容
bind-addrees = 0.0.0.0
port = 3963
#copy到Mysql容器/etc/mysql/文件夹下进行覆盖
docker cp /home/my.cnf 9035681ac86e:/etc/mysql/
忘记root密码解决方案
必读:
在docker中忘记Mysql密码时。我们需要在docker容器中的/etc/mysql/conf.d文件夹下的docker.cnf文件追加skip-grant-tables。追加后登录容器中的mysql无需密码,这样我们就可以修改密码了。修改完密码之后再将追加的skip-grant-tables注释掉重启Mysql容器即可。
在docker容器中是不能直接更改docker容器的文件,对此我们有两个解决方案:
1.安装vim后在容器编辑docker.cnf文件。
docker cp 321459c00aa0:/etc/mysql/conf.d/docker.cnf /home/
[mysqld]
skip-host-cache
skip-name-resolve
skip-grant-tables
docker cp /home/docker.cnf 321459c00aa0:/etc/mysql/conf.d/
#进入Mysql容器
docker exec -it mysqlserver bash
#连接mysql
mysql
#由于使用了skip-grant-tables我们需要先刷新权限
flush privileges;
#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
#再次刷新权限
flush privileges;
#退出:注意是退出不是exit
quit
docker cp /home/docker.cnf 321459c00aa0:/etc/mysql/conf.d/
docker restart 容器ID
以上是关于Docker之安装MySQL的主要内容,如果未能解决你的问题,请参考以下文章
玩大数据的你竟然不知道容器?——Docker入门之安装Docker及MySQL