首页 > 数据库 >podman安装mysql容器

podman安装mysql容器

时间:2022-10-09 23:56:59浏览次数:97  
标签:容器 stop podman sh file mysql ctl

前言


mysql如果正式安装,卸载起来比较麻烦。如果是自己测试用的话,可以用podman拉取一个镜像来使用。

这里使用的是mysql5.7版本,对应的docker镜像是mysql:5.7
(如果拉取较慢,可以选择使用阿里云镜像源:j3m2itm3.mirror.aliyuncs.com)

这篇随笔主要参考博客podman安装mysql

正文


  1. 拉取mysql镜像
podman pull mysql:5.7

拉取完毕后,可以通过如下指令查看镜像

podman images
# REPOSITORY               TAG         IMAGE ID      CREATED       SIZE
# docker.io/library/mysql  5.7         c20987f18b13  9 months ago  454 MB
  1. 建立本地映射文件
mkdir mysql5.7
cd mysql5.7
mkdir conf
mkdir data
mkdir log
  1. 新建my.cnf
cd conf
touch my.cnf

编辑my.cnf如下
(无耻抄一下上面的博客!)

# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

#
# The MySQL  Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
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/

default_authentication_plugin= mysql_native_password
  1. 在mysql5.7中新建启动脚本
    mysql_ctl.sh
#!/bin/bash
container_name=mysql5.7
file_path=/home/brian/podman/mysql/mysql5.7

function start()
{
	podman run -itd --rm \
		-p 3306:3306 \
		-e MYSQL_ROOT_PASSWORD=root \
		-v $file_path/data:/var/lib/mysql:rw \
		-v $file_path/log:/var/log/mysql:rw \
		-v $file_path/conf/my.cnf:/etc/mysql/my.cnf:rw \
		-v /etc/localtime:/etc/localtime:ro \
		--name $container_name \
		mysql:5.7
}

function debug()
{
	podman run -it --rm \
		-p 3306:3306 \
		-e MYSQL_ROOT_PASSWORD=root \
		-v $file_path/data:/var/lib/mysql:rw \
		-v $file_path/log:/var/log/mysql:rw \
		-v $file_path/conf/my.cnf:/etc/mysql/my.cnf:rw \
		-v /etc/localtime:/etc/localtime:ro \
		--name $container_name \
		mysql
}

function stop()
{
	podman stop $container_name
}

function podman_ps()
{
	podman ps -a
}

function login()
{
	podman exec -it $container_name bash
}

function usage()
{
	echo -e "Usage: $0 start|debug|stop|ps|login"
	exit 0
}


if [[ $1 == "start" ]];then
	start
elif [[ $1 == "debug" ]];then
	debug
elif [[ $1 == "stop" ]];then
	stop
elif [[ $1 == "ps" ]];then
	podman_ps
elif [[ $1 == "login" ]];then
	login
else
	usage
fi

  1. 脚本使用
chmod +x mysql_ctl.sh
# 后台启动
./mysql_ctl.sh start

# 非后台启动(用于debug)
# 停止的话需要新建终端,使用 podman stop mysql5.7, 或脚本的stop
./mysql_ctl.sh debug

# 停止
# (因为启动时添加了参数--rm,容器一停止立马自动删除)
./mysql_ctl.sh stop

# 查看所有启动的容器
./mysql_ctl.sh ps

# 登录进容器
./mysql_ctl.sh login
  1. 配置root远程登录
    这个环境中,mysql的root用户的默认密码为root
# 启动容器后,登录进容器
./mysql_ctl.sh login

# 登录mysql
mysql -uroot -p
# 输入默认密码:root

# 配置root远程登录
 alter user 'root'@'%' identified with mysql_native_password by '密码';

参考


[1]. podman安装mysql

标签:容器,stop,podman,sh,file,mysql,ctl
From: https://www.cnblogs.com/brian-sun/p/16774154.html

相关文章

  • ruby 操作mysql crud
    ruby的语法真的是太优雅了!require'mysql2'#配置数据源,连接musqlclient=Mysql2::Client.new(host:'localhost',username:'root',password:'root',database:'......
  • dotnet core操作Mysql、Redis
    usingSystem;usingMicrosoft.AspNetCore.Hosting;usingMicrosoft.Extensions.Hosting;usingMySql.Data.MySqlClient;namespacedotnet_demo{publicclassProgramcl......
  • @mysql 使用配置及多实例部署
    文章目录​​一、mysqld服务程序构成​​​​1.连接层​​​​2.SQL层​​​​3.存储引擎层​​​​二、mysql的多实例​​​​1.创建多个数据目录​​​​2.准备多个配置文......
  • MYSQL-->锁
    介绍锁是计算机协调多个进程或者线程并发访问某一个资源的机制。在数据库中,除了传统的计算资源(CPU,RAM,I/O)的争用之外,数据也是一种供许多用户共享的资源。如何保证数......
  • @prometheus监控远程mysql服务
    文章目录​​监控远程mysql服务​​​​一、被监控点部署mysql_exporter​​​​1、下载​​​​2、解压​​​​3、创建监控用户并授权​​​​4、创建客户端配置文件​​......
  • @prometheus容器化使用
    文章目录​​prometheus容器化​​​​一、下载prometheus配置清单​​​​1、查看集群状态​​​​2、代码下载​​​​3、解压使用​​​​4、部署prometheus​​​​5、......
  • @mysql数据库面试手册
    面试手册1、你接触过哪几种数据库软件,各自的优缺点是什么?2、MySQLbinlog的几种日志格式有什么区别?3、MySQL的存储引擎有哪几种?4、MySQL主从复制原理是什么?5、MySQL中myisam......
  • @mysql数据库读写分离
    文章目录​​一、主库切换优先级​​​​1.数据量切换测试​​​​2.优先级切换测试​​​​3.如果断电或者断网,binlog如何保存?​​​​二、VIP漂移​​​​1.VIP漂移的两......
  • 《高性能mysql第三版》
     /*免责声明:全部内容都属于是段友分享,我只是属于整理。**/   /*  写在前边,个人觉得****弄一个积分下载,就是在自掘坟墓。表面上看起来是可以为个人赚积分,实际砍掉分享......
  • 【SSM】学习笔记(一)—— Spring 概念、Spring IoC、Spring Bean相关知识、依赖注入、
    原视频:https://www.bilibili.com/video/BV1Fi4y1S7ix?p=1P1~P27目录一、Spring概述1.1、Spring家族1.2、Spring发展史1.3、SpringFramework系统架构图1.4、......