Docker安装MySQL 8.0镜像,简易上手
admin
2024-04-04 23:42:26
0

安装及启动docker


1、安装docker 

[root@docker]# yum install docker-ce docker-ce-cli containerd.io -y


2、启动docker,并且设置docker开机启动

[root@docker]# systemctl start docker      启动docker
[root@docker]# systemctl enable docker     设置开机自启docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.[root@docker]# ps aux|grep docker          查看docker进程是否启动
root       16210  0.4  2.0 1368904 79400 ?       Ssl  17:29   0:00 /usr/bin/dockerd-H fd:// --containerd=/run/containerd/containerd.sock
root       16363  0.0  0.0  12348  1112 pts/0    S+   17:30   0:00 grep --color=auto docker

3. 拉取镜像

docker pull mysql

如果要指定版本,在mysql后面加上:+版本号,例如:

docker pull mysql:8.0.16

查看mysql镜像

docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        8.0.16    de764ad211de   3 years ago    443MB

4. 配置 mysql 的配置信息

  • 创建数据目录和配置文件
    提前在宿主机,创建好放置mysql的配置文件的目录和数据目录,并且进行授予权限,避免挂载外部配置和数据时启动失败:
mkdir -p /usr/local/docker/mydata/mysql/conf
  • 设置文件夹权限
chmod -R 755  /usr/local/docker/mydata/mysql/
  • 创建my.cnf配置文件
vim /usr/local/docker/mydata/mysql/conf/my.cnf[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
secure_file_priv=/var/lib/mysql

提醒

无论你是否使用我的配置,如果你的安装的是新版MySQL,务必要复制这一句:

secure_file_priv=/var/lib/mysql

第一次创建启动MySQL容器的时候,MySQL会访问/var/lib/mysql文件夹,如果没有权限就会导致无法启动,使用docker ps之后看不到mysql容器在运行,需要设置secure_file_priv的值指定为/var/lib/mysql,这样就有权限正常访问和读写/var/lib/mysql目录

Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Suppliedvalue : /var/lib/mysql-files
译文:无法访问–secure-file-priv的目录。请确保该目录存在并且可由MySQL服务器访问。提供的值:/var/lib/mysql文件

secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出
secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下
secure_file_priv的值为空,表示不对mysqld 的导入|导出做限制

5. 创建并启动MySQL容器命令

sudo docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mydata/mysql/log:/var/log/mysql \
-v /usr/local/docker/mydata/mysql/data:/var/lib/mysql \
-v /usr/local/docker/mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.16

参数说明:

-p 3306:3306:将容器的3306端口映射到主机的3306端口
--name mysql:定义容器名称为mysql
-v /mydata/mysql/log:/var/log/mysql :将MySQL的日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql:将MySQL的数据文件夹挂载到主机
-v /mydata/mysql/conf:/etc/mysql:将MySQL的配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化root用户密码   经过测试,貌似初始密码都是root,只能装好以后修改
-d mysql:latest:选择MySQL版本为latest的镜像构建容器

6. 查看正在运行的容器

docker ps

7. 进入到MySQL容器内部进行配置 进入命令

docker exec -it mysql ./bin/bash

8. 连接MySQL

这里因为我们自己设置的MySQL默认密码为root所以p后面为root

mysql -uroot -proot

9. 更改MySQL密码

use mysql

修改访问主机以及密码等,设置为所有主机可访问

注意:mysql_native_password,mysql8.x版本必须使用这种模式,否则navicate无法正确连接

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

10. 测试链接

测试前请保证关闭了防火墙,如果是云服务器记得在管理后台,开放3306规则;
Linux关闭防火墙,命令如下:

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

 

如果本篇文章对你有帮助的话,很高兴能够帮助上你。

当然,如果你觉得文章有什么让你觉得不合理、或者有更简单的实现方法又或者有理解不来的地方,希望你在看到之后能够在评论里指出来,我会在看到之后尽快的回复你。

相关内容

热门资讯

摩通:华尔街银行业绩强劲提振欧... 观点网讯:7月22日,华尔街大型银行第二季度业绩表现强劲,提振了市场对欧洲投资银行即将开启的财报季的...
广州拟推动房地产纾困和发展 引... 观点网讯:7月22日,“十五五”时期,广州拟切实推动房地产纾困和发展,引导房地产市场企业转型升级。 ...
AI投入成“无底洞”?谷歌资本... 隔夜美股三大指数集体收低,道琼斯工业指数下跌0.01%报52218.58点,标普500指数跌0.14...
新太空经济从“起势”迈向“成势... 当前,全球正处于新一轮科技革命和产业变革加速演进的关键节点,人工智能、合成生物学、固态电池、高端算力...
金价四连涨,水贝又挤满人 每经记者:赵景致 每经编辑:何小桃,廖丹 记者|赵景致 编辑|何小桃 廖丹杜恒峰校对|金冥羽 金价在...
专访微亿智造董事长张志琦:在“... 本报(chinatimes.net.cn)记者石飞月 上海报道 在刚刚过去的2026世界人工智能大会...
Alphabet CEO:市场... 美东时间周三(7月22日)盘后,在Alphabet财报电话会上,公司CEO Sundar Picha...
毕马威:香港基金税制改革料吸引... 观点网讯:7月22日,毕马威发布《香港资产管理及私募股权展望》报告,指出香港基金免税制度及附带权益税...
维护资本市场平稳运行,组合拳来... 重要新闻提示 7月20日,证监会召开证券公司及基金机构座谈会,听取各方关于促进资本市场平稳健康发展的...
原创 缩... 其实这个阶段,反攻继不继续,对我来说没啥意义。因为小登估值依旧高高在上,随时可能像上周五,带崩老登。...
易方达张坤,罕见调仓 图/视觉中国 昔日公募圈“一哥”,也不“爱”白酒了。 7月21日,易方达知名基金经理张坤旗下多只产品...
宽基ETF连续2日净流出 7月23日,本周二、周三,宽基ETF连续2日资金流出。 数据显示,7月22日,ETF市场净流出216...
367 款新品换不来年轻人一句... 作者|极点商业 张先森 2026年初夏,#康师傅冰红茶卖不动了#登上热搜。 网友对此的反应颇为两极...
1元净资产市场只给5毛8!银行... 继中信银行、招商银行之后,光大银行也于7月20日在投资者互动平台透露,该行已成立市值管理小组,全面统...
风险等级为何需要运作机制更关键... 在基金投资领域,风险等级是投资者评估基金产品的重要参考指标之一。然而,很多投资者往往只关注风险等级的...
刚刚!万亿“光模块一哥”正式招... (来源:上市之家) 7月22日,中际旭创股份有限公司(300308.SZ)正式刊发H股招股章程,启动...
智象未来完成15亿元C轮融资,... 智象未来(合肥)信息技术有限公司(以下简称“智象未来”)是一家全球多模态生成式人工智能创新企业,也是...
半年赚170%、规模565亿,... 来源:市场资讯 来源:资管网 半年赚170%,管理规模从89亿干到565亿。 然后他减仓了。 财通基...
Token账单背后的资本博弈 最近大家可能有一个困惑:为什么大模型概念股,看似业务高速增长、调用量节节攀升,但估值在经历了高速攀升...
Costco签约入驻 京东成为... 观点网讯:7月22日,全球知名会员制仓储零售商Costco(开市客)与京东达成合作,京东成为Cost...