Docker 安装配置数据库

那么在安装之前小编给猿友们普及一下mysql的作用!

MySQL是一个关系型数据库管理系统(RDBMS),由瑞典的MySQL AB公司开发,现在属于Oracle旗下产品。它是世界上最流行的关系型数据库管理系统之一,尤其在WEB应用方面,MySQL被认为是最好的RDBMS应用软件之一。

关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样的设计增加了速度并提高了灵活性。MySQL使用的SQL(结构化查询语言)是用于访问数据库的最常用标准化语言。

MySQL的特点包括:

  1. 体积小、速度快、总体拥有成本低,尤其是其开放源代码这一特性,使得中小型和大型网站的开发都倾向于选择MySQL作为网站数据库。
  2. 具有功能强、使用简单、管理方便、运行速度快、可靠性高、安全保密性强等优点。
  3. 支持多种操作系统平台,如Unix、Linux、Windows等,并提供了针对不同编程语言的API函数。
  4. 使用核心线程实现多线程,能够很好地支持多CPU。
  5. 提供事务和非事务的存储机制,以及快速的基于线程的内存分配系统。

MySQL数据库系统使用SQL进行数据库管理,数据库人员可以通过SQL语句来建立、访问、管理、检索和拷贝所储存的数据信息。同时,MySQL也支持双授权政策,即社区版和商业版,用户可以根据需要选择适合的版本。

总的来说,MySQL是一个功能强大、易于使用且经济实惠的关系型数据库管理系统,广泛应用于各种规模的网站和应用开发中。

正文开始

1. 创建文件夹,准备用来存储数据库各项配置文件

跳转到/usr/local目录中

在local目录中创建一个docker目录

mkdir docker

创建好后跳转到这个新创建的docker目录中

在docker这个目录中继续创建两个文件夹

mkdir mysql

存储配置文件

mkdir mydata

存储mysql的数据

这两个文件夹

创建好后先跳转到mysql这个文件夹中

跳转进去后输入

vim my.cnf

输入之后会跳转到这一个页面然后把下面的配置粘进去

把底下的mysql配置都粘进去

[client]

# 端口号

port = 3306

[mysql]

no-beep

default-character-set = utf8mb4

[mysqld]

# 端口号

port = 3306

# 数据目录

datadir = /var/lib/mysql

# 新模式或表时将使用的默认字符集

character-set-server = utf8mb4

# 默认存储引擎

default-storage-engine = INNODB

# 将 SQL 模式设置为严格

sql-mode = "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

#  最大连接数

max_connections = 1024

# 表缓存

table_open_cache = 2000

# 表内存

tmp_table_size = 16M

# 线程缓存

thread_cache_size = 10

# 设置大小写不敏感

lower_case_table_names = 1

# myisam设置

myisam_max_sort_file_size = 100G

myisam_sort_buffer_size = 8M

key_buffer_size = 8M

read_buffer_size = 0

read_rnd_buffer_size = 0

# innodb设置

innodb_flush_log_at_trx_commit = 1

innodb_log_buffer_size = 1M

innodb_buffer_pool_size = 8M

innodb_log_file_size = 48M

innodb_thread_concurrency = 33

innodb_autoextend_increment = 64

innodb_buffer_pool_instances = 8

innodb_concurrency_tickets = 5000

innodb_old_blocks_time = 1000

innodb_open_files = 300

innodb_stats_on_metadata = 0

innodb_file_per_table = 1

innodb_checksum_algorithm = 0

# 其他设置

back_log = 80

flush_time = 0

join_buffer_size = 256K

max_allowed_packet = 4M

max_connect_errors = 100

open_files_limit = 4161

sort_buffer_size = 256K

table_definition_cache = 1400

binlog_row_event_max_size = 8K

sync_master_info  =  10000

sync_relay_log   =   10000

sync_relay_log_info   =   10000

#排除包

!includedir /etc/mysql/conf.d/

!includedir /etc/mysql/mysql.conf.d/

这些配置全部都粘进去

2. 下载mysql镜像

docker pull mysql:5.7

下载成功,如果不是这些的话,可能是docker配出问题了,这边建议重装系统

继续在mysql目录下创建一个启动mysql的脚本

vim startMysql.sh

进入到这个页面

然后配置你的启动mysql脚本

docker run -p 3306:3306 --name mysql \

--privileged=true \

--restart=always \

-v /docker/mydata/mysql/log:/var/log/mysql \

-v /docker/mydata/mysql/data:/var/lib/mysql \

-v /docker/mydata/mysql/conf/my.cnf:/etc/mysql/my.cnf \

-e MYSQL_ROOT_PASSWORD=数据库密码 \

-d mysql:5.7

把这个配置文件粘进去,这个-e MYSQL-ROOT-PASSWORD=数据库密码!!,这个是数据库密码,是你自定义的,你可以自己设置一个数据库密码,没有必要一定是这个,第一次启动之前就要改,不然这个密码就一直是这样了

输入:wq!保存并退出

底下给这个脚本设置一下权限

chmod -R 777 start.sh

设置完成之后输入ll查看权限是否设置成功

设置成功之后文件名会变成绿色的样子,普通权限则是白色的

输入./start.sh启动mysql

启动

启动完成之后查看一下是否启动成功

输入

docker ps -a

出现up代表启动成功

这边要注意一下,这个status是必须要是up状态的,如果这个不是up状态只有两种可能,一个是启动配置文件的问题,还有一个my.cnf配置文件的问题,到这一步就已经配置好了,如果想要关闭mysql,和tracker以及storage是一样的,先按照下面的id关闭,在按照下面所指的id删除,好了之后mysql就被关闭了

小编今天就给大家普及到这里,要是大家觉得对你有帮助的话给小编留个关注和赞赞!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/499517.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解密犯罪时间 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如 HH:MM 表示的时刻。 根据警察和线人的约定,为了隐蔽,该…

Java中几种常见的创建线程的方式

创建线程的几种方式 方法解释Thread()创建线程对象Thread(String name)创建线程对象,并给线程命名,不会影响线程Thread(Runnable runnable)使用Runnable对象创建线程Thread(Runnable runnable, String name)使用Runnable对象创建线程并给线程命名 方式…

AI论文速读 | 立场观点:时间序列分析,大模型能告诉我们什么?

题目:Position Paper: What Can Large Language Models Tell Us about Time Series Analysis 作者:Ming Jin ; Yifan Zhang ; Wei Chen ; Kexin Zhang ; Yuxuan Liang ; Bin Yang ; Jindong Wang ; Shirui Pan ; Qingsong Wen 机构:莫纳什大…

【C++】STL容器之string(修改操作)

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

MYSQL学习笔记:索引

MYSQL学习笔记:索引 文章目录 MYSQL学习笔记:索引索引的分类索引的创建删除索引优化B树索引B树InnoDB主键和二级索引树聚集索引与非聚集索引哈希索引INNODB的自适应哈希索引索引和慢查询 用索引也是要涉及磁盘I/O的操作的索引也是一种数据结构&#xff0…

连续小波变换

1 连续小波变换 连续小波变换(CWT)用于分解小波信号。小波是时间上小的、高度局部的振荡。傅里叶变换将信号分解为无限长的正弦和余弦,从而丢失了所有时间位置信息,而CWT 的基本功能是时间局部化父小波的缩放和移位版本。CWT 用于构建信号的时频表示&am…

LeetCode225. 用队列实现栈(C++)

LeetCode225. 用队列实现栈 题目链接代码 题目链接 https://leetcode.cn/problems/implement-stack-using-queues/description/ 代码 class MyStack { public:queue<int> q1;queue<int> q2;MyStack() {}void push(int x) {q1.push(x);}int pop() {int size q1…

45、WEB攻防——通用漏洞PHP反序列化POP链构造魔术方法原生类

文章目录 序列化&#xff1a;将java、php等代码中的对象转化为数组或字符串等格式。代表函数serialize()&#xff0c;将一个对象转换成一个字符&#xff1b;反序列化&#xff1a;将数组或字符串等格式还成对象。代表函数unserialize()&#xff0c;将字符串还原成一个对象。 P…

配置前端项目到 github-pages

Quickstart for GitHub Pages - GitHub Docs

MySQL:合并查询语句

1、查询表的数据 t_book表数据 SELECT * FROM db_book.t_book; t_booktype表数据 SELECT * FROM db_book.t_booktype; 提醒&#xff1a; 下面的查询操作的数据来自上图查询表的数据 2. 使用 UNION 查询结果合并&#xff0c;会去掉重复的数据 使用UNION关键字是&#xff0c;数…

刷题日记 | 字符串扩容和增强型for循环

for(char c:s)遍历字符串 增强型for循环 C for(char c:s)遍历字符串 增强型for循环_c for (char c : s)-CSDN博客 字符串使用前要进行扩容 reserve函数 【CString类成员函数辨析】resize(),size(),capacity(),reserve()函数的解析与对比_c reserve函数-CSDN博客 a.size() 用来…

kali安装ARL灯塔(docker)

1、root身份进入容器 ┌──(root㉿Kali)-[~/桌面] └─# su root ┌──(root㉿Kali)-[~/桌面] └─# docker 2、先更新再克隆 ┌──(root㉿Kali)-[~/桌面] └─# apt-get update …