Docker安装Mysql
前言
本章将使用docker安装Mysql,前提条件是已经安装完docker并会使用docker。
如果还没有安装docker,可以参考在CentOS7下安装Docker
如果还不会docker,但需要学习mongodb相关的知识,可以参考另一篇博客,那里详细讲述了如何在Linux上安装Mysql环境。
附上博客链接 博客传送门
安装MySql
在dockerhub上查找镜像
拉取镜像
这里我们拉取官网最新8.0镜像
[root@e2ab0x9jme3furrd ~]# docker pull mysql
查看镜像
在镜像列表中我们可以看到刚刚拉取的镜像
[root@e2ab0x9jme3furrd ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest b05128b000dd 10 days ago 516MB
hello-world latest feb5d9fea6a5 2 months ago 13.3kB
centos latest 5d0da3dc9764 2 months ago 231MB
创建数据目录和配置文件
在宿主机创建mysql的配置文件的目录和数据目录
$ mkdir -p /usr/mysql/conf /usr/mysql/data
创建配置文件
在配置文件目录下创建MySQL的配置文件my.cnf
$ vim /usr/mysql/conf/my.cnf
添加配置文件信息
[client]
#socket = /usr/mysql/mysqld.sock
default-character-set = utf8mb4
[mysqld]
#pid-file = /var/run/mysqld/mysqld.pid
#socket = /var/run/mysqld/mysqld.sock
#datadir = /var/lib/mysql
#socket = /usr/mysql/mysqld.sock
#pid-file = /usr/mysql/mysqld.pid
datadir = /usr/mysql/data
character_set_server = utf8mb4
collation_server = utf8mb4_bin
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d/
创建容器
[root@e2ab0x9jme3furrd ~]# docker run --restart=unless-stopped -d --name mysql01 -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
e364ef1e8a4f7fa6f50ac66edfe5d66e7441e0ecc005fa6c43e9f5dc6237ece1
参数解释:
-v : 挂载宿主机目录和 docker容器中的目录,前面是宿主机目录,后面是容器内部目录
-d : 后台运行容器
-p 映射容器端口号和宿主机端口号
-e 环境参数,MYSQL_ROOT_PASSWORD设置root用户的密码
查看容器启动情况
[root@e2ab0x9jme3furrd ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e364ef1e8a4f mysql "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql01
** 问题:虽然已经安装好了mysql,但是无法使用navicat工具进行连接时报错,即无法远程连接。**
解决问题
进入容器内部
[root@e2ab0x9jme3furrd ~]# docker exec -it mysql01 /bin/bash
连接mysql
root@e364ef1e8a4f:/# mysql -uroot -p
Enter password:
修改访问主机以及密码,设置所有主机可访问
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.01 sec)
刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
至此,通过Docker方式安装Mysql成功!!!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
2020-12-11 Servlet2