容器化:MySQL

news/2024/11/17 8:51:07/

1 缘起

开启容器化之路。

2 容器化MySQL

在这里插入图片描述

2.1 查看MySQL镜像

docker search mysql

在这里插入图片描述

2.2 指定版本:5.7.30

通过官网查看:https://hub.docker.com/

docker pull mysql:5.7.30

在这里插入图片描述

2.3 路径挂载

容器路径挂载到宿主机。

  • 新建宿主机路径
mkdir -p /home/xindaqi/mysql/data /home/xindaqi/mysql/logs /home/xindaqi/mysql/conf
序号路径描述
1/home/xindaqi/mysql/dataMySQL存储的数据
2/home/xindaqi/mysql/logsMySQL日志
3/home/xindaqi/mysql/confMySQL配置
  • 添加配置文件:my.cnf
    /home/xindaqi/mysql/conf/my.cnf
[mysqld]
user=mysql
bind-address = 0.0.0.0
character-set-server=utf8
default_authentication_plugin=mysql_native_password
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

2.4 运行

序号参数描述
1p服务端口映射,宿主机端口:容器内端口
2name服务名称
3v路径挂载,宿主机路径:容器内路径
4eMySQL root账户密码
  • 前台运行
docker run -p 3306:3306 \
--name mysql \
-v /home/xindaqi/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /home/xindaqi/mysql/logs:/var/log/mysql \
-v /home/xindaqi/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=my$123456 \mysql:5.7.30
  • 后台运行
docker run -p 3306:3306 \
--name mysql \
-v /home/xindaqi/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /home/xindaqi/mysql/logs:/var/log/mysql \
-v /home/xindaqi/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=my$123456 \
-d mysql:5.7.30

2.5 查看容器

docker container ls | grep mysql

在这里插入图片描述

2.6 进入容器

# 格式
docker exec -it container_id /bin/bash
# 样例
docker exec -it 916f93180fb2 /bin/bash

2.7 登录MySQL:Ubuntu内

  • 查看系统IP
ifconfig

使用enth0的网络IP登录MySQL。

在这里插入图片描述

  • 登录MySQL
mysql -h 172.22.75.234 -uroot -pmy$123456

在这里插入图片描述

2.8 新建用户

用于其他服务使用,
因为,使用root登录时,无法接入MySQL,所以新建用户。

# 新增用户:格式create user username@ip identified by password
create user 'mysql-username'@'%' identified by 'my$123456';
序号参数描述
1mysql-username用户名
2%IP,其中,%表示允许所有IP连接
3my$123456密码
# 授权,格式:grant operation on database to username@ip identified by password
grant all on *.* to 'mysql-username'@'%' identified by 'my$123456';
序号参数描述
1all所有操作,单独配置操作:select、insert、update和delete
2.表示所有数据库,可以单独指定某个数据库和某些表,如database-name.*,database-name.table-name
3mysql-username用户名
4my$123456用户密码
# 生效
flush privileges;

在这里插入图片描述
查看用户

select host, user from mysql.user;

在这里插入图片描述

3 FAQ

3.1 为什么指定密码

不指定密码报错信息:
在这里插入图片描述

3.2 配置文件

待描述。

[client]
port = 3306
socket = /usr/local/services/mysql/var/data/mysql.sock[mysqld]
bind-address = 0.0.0.0
port = 3306
socket = /usr/local/services/mysql/var/data/mysql.sock
pid-file = /usr/local/services/mysql/var/logs/mysql.pid
character-set-server = utf8
basedir = /usr/local/services/mysql
datadir = /usr/local/services/mysql/var/dataskip-external-locking
skip-name-resolve
lower_case_table_names = 1
log-bin-trust-function-creators = 1max_connections = 6000
max_user_connections = 6000
max_connect_errors = 4000
wait_timeout = 86400
interactive_timeout = 86400
table_open_cache = 512
max_allowed_packet = 32M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 8
thread_concurrency = 8
query_cache_size = 32M
#default-storage-engine = InnoDB#sql_mode="STRICT_ALL_TABLES,NO_AUTO_CREATE_USER"
server-id = 1log-short-format
log-error = /usr/local/services/mysql/var/logs/mysql.log
slow_query_log
long_query_time = 2
slow_query_log_file = /usr/local/services/mysql/var/logs/mysql-slow.loglog-bin = /usr/local/services/mysql/var/binlog/mysql-bin
log_bin_trust_function_creators=1
binlog_format = MIXED
expire_logs_days = 10# INNODB Specific options
innodb_data_home_dir = /usr/local/services/mysql/var/data
innodb_log_group_home_dir = /usr/local/services/mysql/var/redolog
innodb_additional_mem_pool_size = 10M
innodb_buffer_pool_size = 4G
innodb_data_file_path = ibdata1:100M:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 0
innodb_flush_method = O_DIRECT
innodb_log_buffer_size = 128M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 50
innodb_file_per_table = 1# MyISAM Specific options
key_buffer_size = 384M
read_buffer_size = 4M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 1G
myisam_repair_threads = 1
myisam_recover[mysqldump]
quick
max_allowed_packet = 16M[mysql]
default-character-set = utf8
no-auto-rehash
socket = /usr/local/services/mysql/var/data/mysql.sock[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M[mysqlhotcopy]
interactive-timeout

http://www.ppmy.cn/news/81027.html

相关文章

python+vue智能小区物业水电费管理系统6becq

这次开发的智能小区管理系统有管理员,业主,物业员工三个角色。 管理员功能有个人中心,业主管理,物业员工管理,家庭成员管理,车位信息管理,业主报修管理,报修处理管理,业主…

推荐系统简介

文章目录 推荐系统的分类基于人口统计学的推荐算法基于内容的推荐算法基于协同过滤的推荐算法协同过滤(CF)推荐方法基于近邻基于用户的协同过滤基于物品的协同过滤 混合推荐推荐系统实验方法离线实验用户调查在线实验 学习下b站上尚硅谷的推荐系统的课程…

【逆向工程核心原理:SEH】

SEH SEH是Windows操作系统提供的异常处理机制,在程序源代码中使用__ try、 __except、__finally关键字来具体实现。主要用在反调试中。 注: SEH与C中的try. catch 异常处理具有不同结构。从时间上看,与C的try、catch异常处理相比&#xff0…

PHP高级教程

🥲 🥸 🤌 🫀 🫁 🥷 🐻‍❄️🦤 🪶 🦭 🪲 🪳 🪰 🪱 🪴 🫐 🫒 &#x1fad1…

基于ESP32-CAM 和 OpenCV 设计的手势控制虚拟鼠标

概述 在本文中,我们将使用ESP32-CAM和OpenCV开发手势控制虚拟鼠标。ESP32 Camera Module和Python程序可用于无线控制鼠标跟踪和点击操作。 入门者必须具备 Python、图像处理、嵌入式系统以及物联网的丰富知识。首先,我们将了解如何控制鼠标跟踪和单击,以及运行 python 程序…

UE5实现模型压平效果

文章目录 1.实现目标2.实现过程2.1 实现原理2.2 蓝图实现2.3 闪面问题与压平精度3.参考资料1.实现目标 模型压平功能是GIS系统中的一个常用功能,可以用于模型的替换,数据的对比等。本文在UE5中通过修改材质的方式实现,实现模型压平的功能,包括常规建模的StaticMesh,以及C…

代码随想录算法训练营第二十八天|93.复原IP地址 78.子集 90.子集II

文章目录 93.复原IP地址思路代码总结 78.子集思路代码总结 90.子集II思路代码总结 93.复原IP地址 思路 用.分割,分割出的每个子串转成int要在[0,255],且不能以0开头 递归调用时,下一层递归的startIndex要从i2开始(因为需要在字…

【Jetpack】Room + ViewModel + LiveData 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 )

文章目录 一、Room ViewModel LiveData 框架使用核心要点1、Room 框架优化分析2、Google 官方建议的 Room ViewModel LiveData 架构3、Room 与 LiveData 结合使用要点4、Repository 层核心要点5、ViewModel Room 结合使用6、Activity 组件中 ViewModel 使用要点7、Room 框…