docker之mysql的安装

一、安装步骤

  1、安装mysql第一步是查看宿主机是否存在mysql的镜像,通过docker images查看,否则通过docker pull拉取镜像到本机,可以拉取不同版本到环境。在https://hub.docker.com/中查询相关版本信息。

  2、启动一个镜像运行容器,通过拷贝这个容器的配置文件为后续的数据卷挂载做准备,如下命令:

-- 运行一个容器
docker run -p 3307:3306 --name mysql-server -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20
--查看运行
docker ps -a

  3、通过创建的容器拷贝容器内的文件或者文件夹,如下命令:

-- 将容器7c62eeb99e52的mysql文件夹拷贝宿主机到docker文件夹下
docker cp 7c62eeb99e52:/etc/mysql /home/docker

  完成上述操作后,已经将容器的配置文件拷贝到宿主机,后续在挂载数据卷时可以关联上。

  4、停止、删除上述的容器,在重新运行容器,如下命令:

docker stop 7c62eeb99e52
docker rm   7c62eeb99e52

  5、启动mysql ,挂载配置文件,数据持久化到宿主主机,如下所示:

docker run --name mysqlserver -d --restart=always --privileged=true 
-v /home/docker/mysql:/etc/mysql 
-v /home/docker/mysql/logs:/logs 
-v /home/docker/mysql/data:/var/lib/mysql 
-v /etc/localtime:/etc/localtime 
-e MYSQL_ROOT_PASSWORD=123456 
-p 3307:3306 mysql:8.0.20

注意:docker run --name 的后续参数的“-”符号是中文输入,还是英文输入,中文输入会提示命令异常,并且两种输入法一样,难于发现问题

 

上述文件夹data、logs是通过命令挂载创建的文件(数据文件夹、日志文件夹),开始创建一个容器是为了获取mysql的配置文件,也可以传入配置文件。

二、mysql配置

 mysql的配置,参数、路径、模式的设置,如下命令:

复制代码
[mysqld]
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
datadir     = /var/lib/mysql
log-error  = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address   = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
#lower_case_file_system = ON
lower_case_table_names = 1

[client]
#password       = your_password
port            = 3306
socket          = /tmp/mysql.sock

[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
datadir = /www/server/data
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 100G
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 4K
read_buffer_size = 4M
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
query_cache_size = 128M
tmp_table_size = 128M
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
lower_case_table_names = 1

explicit_defaults_for_timestamp = true
#skip-name-resolve
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535

log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 10
slow_query_log=1
slow-query-log-file=/www/server/data/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on
early-plugin-load = ""

innodb_data_home_dir = /www/server/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /www/server/data
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 512M
innodb_log_buffer_size = 128M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 8
innodb_write_io_threads = 8

[mysqldump]
quick
max_allowed_packet = 500M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
复制代码

三、安装验证

  在navicat软件中输入IP地址,端口号3307,用户名root,密码123456,验证连接,在安装中主要注意配置文件,命令的输入法。

posted @   tuqunfu  阅读(135)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示