文章目录
- 一、简单方式
- 二、挂载方式
-
- 三、修改配置文件
- 1、新建my.cnf
- 2、编辑my.cnf
- 3、查看是否生效
一、简单方式
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:8
这种比较简单,但是作为数据库推荐下面挂载方式,数据重要不能丢!!!
二、挂载方式
1、创建挂载目录
mkdir -p /data/mysql/data
mkdir -p /data/mysql/conf
2、启动容器
docker run --name mysql \
--restart=always \
-p 3306:3306 \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8
参数说明:
- docker run:启动container
- –name:容器命名
- –restart=always:自启动
- –privileged=true:权限
- -p:映射容器的端口到主机上的端口
- -v:将容器的目录映射到本地计算机上目录中
- -e:参数
- -d:在后台运行容器
到这里就能用了!如果要修改配置文件,继续看下面。
三、修改配置文件
1、新建my.cnf
cd /data/mysql/conf
touch my.cnf
docker内部映射的my.cnf默认在这两个位置:/etc/mysql/my.cnf 和 /etc/mysql/conf.d 。
2、编辑my.cnf
这里简单配置下,测试下是否生效。如需自己配置,可以参考这一篇:
MySQL 8.0如何配置my.cnf
[mysqld]
max_connections = 1000
3、查看是否生效
注意!!!
期间遇到一个大坑:配置文件不生效!!花费我好久的时间看这个。最后,终于解决了。
docker logs mysql
日志看到了这条信息。
mysqld: [Warning] World-writable config file ‘/etc/mysql/my.cnf’ is ignored.
因为只是警告,并没有报错,能正常启动,所以最开始没有关注到这里。
找到了原因:
my.cnf的权限,我设置了777,最高权限。mysql出于安全的考虑,担心其他用户可以恶意修改my.cnf配置文件,所以忽略掉这个配置文件。
解决方案:
- 新建my.cnf,啥也不干,应该默认权限就是644。
- 自己通过下面命令来改
chmod 644 my.cnf
我本来只是想修改这篇来改进质量,结果遇到问题一搞就到凌晨3:50了,唉😔。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)