需求:创建并运行一个MySQL容器,将宿主机目录直接挂载到容器
步骤:
-
mysql.tar文件上传到服务器或者自己去从服务器拉取镜像
-
创建目录/usr/mysql/data
-
创建目录/usr/mysql/conf
-
将提供的hmy.cnf文件上传到/usr/mysql/conf(安装8.0版本不需要此步,但仍需要修改mysql默认的数据文件存储目录datadir=/var/lib/mysql)这里我是把文件hmy.cnf拉进conf文件下。
-
挂载/usr/mysql/data到mysql容器内数据存储目录
-
挂载/usr/mysql/conf/hmy.cnf到mysql容器的配置文件
-
设置MySQL密码
docker pull mysql:8.0.20#拉取自己所需镜像
创建目录
cd /usr
mkdir mysql
cd ./mysql
mkdir data
mkdir conf
运行
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3308:3306 -v /usr/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf -v /usr/mysql/data:/var/lib/mysql -d mysql:8.0
SqlYog连接docker里的mysql还需要以下过程
-
ubuntu的防火墙要允许 3308 端口通信
-
还需要设置阿里云的安全组添加 3308 的端口
-
从linux进入到docker中的容器的命令(修改密码)
#其中mysql是容器的名称
#查看自己的防火墙是否开放端口
sudo ufw status
#如果没用则用此命令开放此端口
sudo ufw allow 3308
#此命令可以直接进入docker里的数据库去修改密码
docker exec -it mysql bash
mysql -u root -p密码 #直接输入使用你运行的那个密码然后回车
#修改密码 MySQL8.0之后更换了加密规则就需要使用下面语句
alter user 'root'@'%' identified with mysql_native_password by '密码';
#这里使用%可以任意IP访问你的地址
flush privileges;#刷新权限
之后你就可以连接sqlyog