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,验证连接,在安装中主要注意配置文件,命令的输入法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?