拉取Mysql数据库镜像-- 拉取最新的MySQL数据库镜像 docker pull mysql -- 拉取指定版本的MySQL数据库镜像 docker pull mysql:8.3.0查看拉取的MySQL数据库镜像docker images编写MySQL配置文件注意配置文件后缀是.cnfvi /docker/mysql/conf/my.cnf[client] # 端口号 port3306 [mysql] no-beep # 配置了 MySQL 客户端的默认字符集 default-character-setutf8mb4 [mysqld] # 端口号 port3306 # 数据目录 datadir/var/lib/mysql # 设置了 MySQL 服务器的字符集为 UTF-8 character-set-serverutf8mb4 # 设置了 MySQL 服务器的排序规则为 utf8mb4_unicode_ci通常用于支持国际化和多语言字符的正确排序 collation-serverutf8mb4_unicode_ci # 用于禁用客户端字符集握手允许客户端和服务器之间的字符集设置更加灵活 skip-character-set-client-handshake # 禁用了主机名解析以提高连接性能 skip-name-resolve # 默认存储引擎 default-storage-engineINNODB # 将 SQL 模式设置为严格 sql-modeSTRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # 最大连接数 max_connections1024 # 表缓存 table_open_cache2000 # 表内存 tmp_table_size16M # 线程缓存 thread_cache_size10 # 设置大小写不敏感 lower_case_table_names1 # 设置默认时区 default_time_zone8:00 # myisam设置 myisam_max_sort_file_size100G myisam_sort_buffer_size8M key_buffer_size8M read_buffer_size0 read_rnd_buffer_size0 # innodb设置 innodb_flush_log_at_trx_commit1 innodb_log_buffer_size1M innodb_buffer_pool_size8M innodb_log_file_size48M innodb_thread_concurrency33 innodb_autoextend_increment64 innodb_buffer_pool_instances8 innodb_concurrency_tickets5000 innodb_old_blocks_time1000 innodb_open_files300 innodb_stats_on_metadata0 innodb_file_per_table1 innodb_checksum_algorithm0 # 其他设置 back_log80 flush_time0 join_buffer_size256K max_allowed_packet4M max_connect_errors100 open_files_limit4161 sort_buffer_size256K table_definition_cache1400 binlog_row_event_max_size8K sync_master_info10000 sync_relay_log10000 sync_relay_log_info10000安装MySQL数据库镜像安装最新版本的数据库 sudo docker run -p 3306:3306 --name mysql \ -v /docker/mysql/log:/var/log/mysql \ -v /docker/mysql/data:/var/lib/mysql \ -v /docker/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORDroot \ -d mysql 安装指定版本的数据库 sudo docker run -p 3306:3306 --name mysql \ -v /docker/mysql/log:/var/log/mysql \ -v /docker/mysql/data:/var/lib/mysql \ -v /docker/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORDroot \ -d mysql:8.3.0docker run:在docker中启动一个容器实例 -d:该容器在后台运行 -p 3306:3306容器与主机端口映射 --name mysql容器运行后的名称 -v /docker/mysql/log:/var/log/mysql将容器/var/log/mysql目录下的数据备份到主机的 /docker/mysql/log目录下 -v /docker/mysql/data:/var/lib/mysql将容器/var/lib/mysql目录下的数据备份到主机的 /docker/mysql/data目录下 -v /docker/mysql/conf:/etc/mysql将容器/etc/mysql目录下的数据备份到主机的 docker/mysql/conf目录下 -e MYSQL_ROOT_PASSWORDroot设置当前mysql实例的密码为root mysql:8.3.0 :需要运行的容器名称以及版本号最新版本的数据库省略后面的版本查看进程如果按照以上的步骤执行进程名称是mysqldocker ps -a进入docker容器中的MySQL数据库并登录进入docker容器中的MySQL数据库。格式docker exec -it mysql名称 bash docker exec -it mysql bash 登录mysql使用root账号登录需要单独输入密码 mysql -u root -p查看/修改远程访问权限sql命令 进入数据库 use mysql; 查看用户和连接 select host,user from user; -- 修改用户和连接 -- 刷新 flush privileges; 把root用户的密码改成 mysql_native_password 模式即可远程连接设置/取消开机启动-- 获取MySQL容器ID docker ps -- 设置开机启动 docker update --restartalways 容器ID -- 取消开机启动 docker update --restartno 容器ID启动MySQL-- 启动mysql docker start mysql重启mysqldocker restart mysql-- 重启mysql docker restart mysql停止mysqldocker stop mysql-- 停止mysql docker stop mysql常用命令-- 查看MySQL日志 docker logs mysql