Docker中安装MySQL 5的详细过程
1. docker下载mysql 安装包
docker pull mysql:5.7.32
2. 查看已下载的镜像
docker images
3. 创建本地数据库目录、配置文件以及日志目录(方便进行容器数据卷挂载)
因为mysql容器一旦销毁,数据库也就随之销毁,为了解决这个问题,docker官方提出了容器数据卷技术,就是在宿主机上新建一些目录与容器内的目录映射,当容器销毁时,宿主机上的目录文件不会消失,依然存在.
# 建立宿主机数据库目录
mkdir -p mysql/datadir# 建立宿主机数据库配置文件
mkdir mysql/conf# 建立宿主机数据库日志目录
mkdir mysql/log
注:我这个是在我项目目录下创建的。
4. 启动容器
docker run --name lmhmysql -p 3306:3306 -v /data/lmh/lmh/KG/mysql/datadir:/var/lib/mysql -v /data/lmh/lmh/KG/mysql/conf:/etc/mysql/conf.d -v /data/lmh/lmh/KG/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.32
参数解释:
-p 3306:3306 端口映射,将宿主机3306端口与容器3306端口做映射,这样就可以通过宿主机IP+端口访问容器的3306端口了 格式:-p 宿主机端口:容器端口–name lmhmysql 指定容器名字为lmhmysql
-v mysql/datadir:/var/lib/mysql:对宿主机数据库目录与容器数据库目录进行映射挂载
-v mysql/conf:/etc/mysql/conf.d:对宿主机数据库配置文件与容器数据库配置文件进行映射挂载
-v mysql/logs:/var/log/mysql:对宿主机数据库日志与容器数据库日志进行映射挂载
-e MYSQL_ROOT_PASSWORD=123456 配置mysql的root账号的密码为123456(可以根据需要自行修改密码)
-d:后台执行 mysql:5.7.32 :镜像id,容器第一次启动要根据镜像来启动,所以镜像id必不可少。可以通过命令docker iamges查看镜像id
注: 此时报错可能是因为:
① 3306端口号已被占用。此时可以先将容器名删除,然后换个端口号。
docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql (ba8f04eadcc4d8f3ef026f37d2e029980edf51f2ecc7d0f3e4913550e9a23d2e): Bind for 0.0.0.0:3306 failed: port is already allocated.
删除容器命令如下:
docker rm 容器名
换端口号:
docker run --name lmhmysql -p 3316:3306 -v /data/lmh/lmh/KG/mysql/datadir:/var/lib/mysql -v /data/lmh/lmh/KG/mysql/conf:/etc/mysql/conf.d -v /data/lmh/lmh/KG/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.32
② 容器名已存在。
docker: Error response from daemon: Conflict. The container name "/mysql" is already in use by container "317e17b8b0c6827bb15502e71960851826f752cf134aaa892c8f45a207eSee 'docker run --help'.
删除容器命令如下:
docker rm 容器名
5. 进入容器测试Mysql
进入MySQL容器:
docker exec -it lmhmysql bash
进入容器后,可以通过以下命令连接MySQL:
mysql -u root -p
输入密码root
后,即可成功连接MySQL。
6. 设置远程连接权限
可以通过以下SQL语句设置权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
注:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
:允许root
用户从任意IP地址访问MySQL。
IDENTIFIED BY '123456'
:设置root
用户的密码为123456
。
WITH GRANT OPTION
:允许root
用户授予其他用户权限。
刷新权限以使更改生效:
FLUSH PRIVILEGES;
7. 打开navicat,连接该服务器。导入excel文件。
以上便是所有部署的步骤,欢迎关注~ 后续也会更新一些其他实践过程中遇到的问题!