Docker系列(二) Docker容器(centos7)中rpm离线方式安装mysql镜像

以mysql 5.6为例进行操作

首先,下载mysql的rpm文件,主要包含3个rpm包:
MySQL-client-5.6.41-1.el7.x86_64.rpm
MySQL-devel-5.6.41-1.el7.x86_64.rpm
MySQL-server-5.6.41-1.el7.x86_64.rpm

3个rpm包的地址
https://download.csdn.net/download/Charlie_jun/12587145
https://download.csdn.net/download/Charlie_jun/12587140
https://download.csdn.net/download/Charlie_jun/12587138
1、复制安装包,下面的mysql_master是我的docker容器名称
#docker cp 本机路径 docker容器路径(系统=》docker的容器)
#docker cp /source/MySQL-server-5.6.41-1.el7.x86_64.rpm mysql_master:/root/
在这里插入图片描述
下面从第2点开始进入docker容器中操作
2、安装mysql依赖
yum install -y perl perl-Module-Build net-tools autoconf libaio numactl-libs
3、安装mysql下面3条命令都要执行
rpm -ivh /root/MySQL-server-5.6.41-1.el7.x86_64.rpm
rpm -ivh /root/MySQL-client-5.6.41-1.el7.x86_64.rpm
rpm -ivh /root/MySQL-devel-5.6.41-1.el7.x86_64.rpm
4、查看mysql登录密码(这个文件应该与rpm安装包同一目录下)
cat /root/.mysql_secret
在这里插入图片描述
5、启动mysql
systemctl start mysql
6、登录mysql 注意看命令,-p与密码之间是没有空格的!!!
mysql -uroot -p _6sZdMfn4M1cNktQ
7、修改密码,注意分号
set password = password(‘你的密码’);
8、使用
user mysql
9、远程登录授权,第二个root是我的密码,下面2条指令都需执行
grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;
flush privileges;
上面第一个命令不能直接复制,因为*看不到,单引号也不能复制,直接上图:
在这里插入图片描述
10、修改mysql端口
/ect/my.cnf 这个文件是不存在的,所以:
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
然后修改my.cnf,这个文件里的内容全部注释起来的,只需要加个
port=3307 就行。因为我上面映射的端口是3307,所以我这里用3307
11、连接navicat。这里可以顺利连接啦。如果是阿里云或者其他云服务器,要开端口,关防火墙之类的。使用的是他们对外的ip,这是重点,不要用对内的ip。

注意:在创建容器的时候一定要进行端口映射,方便后续外部访问容器内的应用。这里举个栗子:
docker run -tid -p 3307:3307 3db94df3e006 /usr/sbin/init
说明:3307:3307 是本地端口与容器端口映射,端口后面的字符串是镜像id,我的是centos7镜像 , -p就是进行端口映射。
run后面更详细的参数说明见下链接:
https://blog.csdn.net/Charlie_jun/article/details/107198076
补充: 也可以给对运行中的容器进行端口映射:
例:将容器的8000端口映射到docker主机的8001端口
命令: iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.2:8000

猜你喜欢

转载自blog.csdn.net/Charlie_jun/article/details/107197439