Windos10上Podman安装运行mysql8

记录以下在windows10系统上Podman v5.1.1安装MySQL8全过程。

目录


 一、拉取mysql8镜像

首先通过Podman下载Mysql8镜像到本地。命令如下:

podman pull mysql:8

二、创建宿主目录

在windows系统磁盘上创建挂在所需的目录,我是在 D:\Program Files\podman-conf\mysql8 目录下分别创建了conf 、data 、logs三个文件夹。

三、创建 my.cnf文件

conf目录下创建 my.cnf 文件,文件内容如下:

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
# basedir=/usr/local/mysql8
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql8/data
# 允许最大连接数
max_connections=1000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=100
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
authentication_policy=mysql_native_password
#是否对sql语句大小写敏感,1表示不敏感  需要在初始化时设置
# lower_case_table_names = 1
#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800
#Metadata Lock最大时长(秒), 一般用于控制 alter操作的最大时长sine mysql5.6
#执行 DML操作时除了增加innodb事务锁外还增加Metadata Lock,其他alter(DDL)session将阻塞
lock_wait_timeout = 3600
#内部内存临时表的最大值。
#比如大数据量的group by ,order by时可能用到临时表,
#超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size = 64M
max_heap_table_size = 64M
# MySQL服务端字符集
character_set_server = utf8mb4
# 设置默认存储引擎为InnoDB
default-storage-engine = InnoDB
# 默认为ON,设置为OFF,关闭事务自动提交
autocommit = OFF
transaction_isolation = READ-COMMITTED
# 错误日志存放路径
log_error = /usr/local/mysql8/log/log.err
# 全局动态变量,默认3,范围:1~3
# 表示错误日志记录的信息,1:只记录error信息;2:记录error和warnings信息;3:记录error、warnings和普通的notes信息
log_error_verbosity = 2

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4

四、创建Mysql8容器

podman run -itd --name mysql8 -e TZ="Asia/Shanghai" -v "D:/Program Files/podman-conf/mysql8/conf/my.cnf":/etc/my.cnf -v "D:/Program Files/podman-conf/mysql8/data":/var/lib/mysql -v "D:/Program Files/podman-conf/mysql8/logs":/var/log/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8 --lower_case_table_names=1

正常到这一步就完成了MySQL的安装和运行。可以通过 podman ps 查看mysql 容器是否在运行。

以上是正确安装后的截图。

而我在安装时,出现了一个错误,困惑了我很久,具体问题如下。

五、windows上Podman安装运行mysql8失败

问题描述

上面第四步完成后,通过podman ps 命令查看运行的容器时,发现没有mysql,很奇怪呀。于是反复安装运行多次都是一样,后来查看了mysql日志发现了问题的根源在于,容器读取windows上的挂在文件目录时失败导致的。

 解决办法

① 通过PowerShell进入wsl

② 修改wsl系统配置

添加 /etc/wsl.conf 文件中的配置。输入命令:

sudo vi /etc/wsl.conf

如果没有以下内容直接添加进去即可:

[automount]
enabled = true
options = "metadata"
mountFsTab = false

添加后查看文件内容如下图示:

 

③ 重启wsl,Podman

 推出liunx系统后,停止 wsl ,重新启动podman。

wsl --shutdown

podman machine start

通过以上方式,重新安装mysql,运行mysql成功。 

六、记录错误日志

2024-06-11 13:42:33+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2024-06-11 13:42:33+08:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2024-06-11 13:42:33+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2024-06-11 13:42:33+08:00 [Note] [Entrypoint]: Initializing database files
mysqld: [Warning] World-writable config file '/etc/my.cnf' is ignored.
2024-06-11T05:42:33.509612Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.27) initializing of server in progress as process 38
2024-06-11T05:42:33.518315Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-06-11T05:42:34.383870Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
mysqld: Cannot change permissions of the file 'ca.pem' (OS errno 1 - Operation not permitted)
2024-06-11T05:42:35.383035Z 0 [ERROR] [MY-010295] [Server] Could not set file permission for ca.pem
2024-06-11T05:42:35.383071Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2024-06-11T05:42:35.383257Z 0 [ERROR] [MY-010119] [Server] Aborting
2024-06-11T05:42:36.960729Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.27)  MySQL Community Server - GPL.

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果使用Docker在Windows上安装MySQL无法连接,可能是由于以下几个原因导致的: 1. 端口映射问题:请确保在运行Docker容器时,正确地将主机端口映射到容器内的MySQL端口。例如,使用命令`docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysql mysql`将主机的3306端口映射到容器内的3306端口上。 2. 安全组或防火墙设置:请检查您的主机的安全组或防火墙配置,确保允许从外部访问MySQL的3306端口。 3. MySQL配置问题:在连接MySQL时,确保使用正确的用户名和密码进行连接。如果您在启动Docker容器时没有指定自定义的用户名和密码,可以使用默认的root用户和密码进行连接。例如,使用命令`docker exec -it mysql mysql -uroot -p`在已启动的Docker容器内启动MySQL客户端并使用root用户连接MySQL。 请检查上述步骤,并根据具体情况进行调整和排除故障。如果问题仍然存在,请提供更多详细信息以便我们能够更好地帮助您解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [windows 下 docker 安装 MySQL](https://blog.csdn.net/kobe24shou/article/details/124734548)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [docker 安装 mysql (windows版本)](https://blog.csdn.net/weixin_43480441/article/details/129469973)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘一说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值