MySQL开发环境版本和生产环境版本不一致
我这里出现了一个版本不一致的问题,公司服务器强制要求使用mysql5.7.30版本,但是我mac上本地是mysql8.0的版本。
解决方案:本地docker一个5.7.30的容器,映射到3316端口。
1、
docker pull mysql:5.7.30
目前公司用的这个mysql版本
2、
mkdir -p ~/mysql5.7.30/data
创建volume文件
3、
docker run -p 3316:3306 --name xtmysql -v ~/mysql5.7.30/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=cgz*****6 -d mysql:5.7.30
开启容器
4、 本地docker镜像我就不新建一个用户去拥有所有数据库的访问权限了,因为直接用root了。
docker安装mysql
1、 docker安装并设置加速镜像
2、
docker pull mysql:5.7.30
目前公司用的这个mysql版本
3、
mkdir -p ~/mysql/data
创建volume文件
4、
docker run -p 3306:3306 --name xtmysql -v ~/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xt****6 -d mysql:5.7.30
开启容器
5、
docker exec -it [容器ID] /bin/bash
进入mysql容器
6、
mysql -u root -p
输入密码进入mysql对话环境
7、
GRANT ALL PRIVILEGES ON *.* TO 'marhoo'@'%' IDENTIFIED BY 'very_strong_password_xxxxx';
mysql对话中,执行这条命令。创建一个新的独立用户,拥有所有数据库的访问权限,且让该用户可以从任意远程主机登陆,可以使用通配符
%
8、
FLUSH PRIVILEGES;
然后mysql对话中,执行这条命令刷新权限信息
9、 测试一下user组
mysql> use mysql
mysql> select host, user, plugin from user;
docker安装宝塔(为了环境干净,套层centOS再往容器里安装)
目标是先安装一个centos7,再往里安装宝塔
1、
docker pull centos:centos7
安装centOS7
2、 启动centOS容器
docker run -i -t -d --name baota -p 20:20 -p 21:21 -p 80:80 -p 443:443 -p 888:888 -p 8888:8888 --privileged=true -v /home/www:/www centos:centos7
#上面命令的意思是创建一个docker容易命名为baota(名称大家自定义)让他后台运行,然后将宿主机的20,21,80,443,888,8888这五个端口映射到docker容器中去。
并且将宿主机的/home/www文件夹映射到docker容器的/www上去(注意:文件目录如果不存在。宿主机和容器会自己创建,无需手动创建)。privileged表示在运行容器的时候,给容器加特权,设置容器有写文件的权限。
3、
docker exec -it baota /bin/bash
进入centOS容器
4、
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安装宝塔
5、 特别注意:为了能够保存(持久化)数据以及共享容器间的数据,docker一定使用-v挂载主机目录到容器,比如上面启动容器的 docker -v 参数。