当前位置: 首页 > news >正文

1130 - Host ‘xxx.x.xx.xxx‘is not allowed to connect to this MySQL server

以下为本次问题的解决办法:

1、暂停mysql容器: docker stop mysql

2、删除mysql容器:docker rm mysql

3、查看mysql容器是否被删除:docker ps -a #没有mysql容器就是删除成功

4、run mysql容器:

docker run -d --name mysql-server --restart always -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234  -e MYSQL_USER=rootname -e MYSQL_PASSWORD=1234  -e MYSQL_DATABASE=your_database -p 3306:3306 mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

以下为解析:

  1. -d
    后台运行容器(detached mode),避免阻塞终端。

  2. --name mysql-server
    为容器指定名称,便于后续管理(如 docker start mysql-server)。

  3. --restart always
    设置容器自动重启策略:

    • 容器退出时自动重启
    • Docker 服务重启时自动启动
    • 适用于需要高可用性的服务(如数据库)。
  4. mysql:8.0
    指定镜像版本为 MySQL 8.0(建议使用具体版本号而非 latest,确保环境稳定性)。

  5. -v mysql-data:/var/lib/mysql
    创建名为 mysql-data 的命名卷(volume),将容器内 /var/lib/mysql 目录(MySQL 数据存储路径)挂载到卷中。
    作用
    • 避免容器删除时数据丢失
    • 支持多容器共享数据
    • 便于数据备份与迁移  
  6. MYSQL_ROOT_PASSWORD=1234
    设置 MySQL root 用户密码(必填)。
    注意

    • 生产环境建议使用强密码(至少 16 位,包含大小写、数字、符号)
    • 避免在命令行中明文传递敏感信息(可用 --env-file 加载环境变量文件)
  7. MYSQL_USER=rootname
    创建新用户 rootname(非 root 用户)。
    注意

    • 不要将新用户命名为 root(会与系统默认 root 用户冲突)
    • 建议使用业务相关的用户名(如 app_user
  8. MYSQL_PASSWORD=1234
    设置 rootname 用户的密码。
    注意

    • 与 MYSQL_ROOT_PASSWORD 相同密码存在安全风险
    • 生产环境需使用不同的强密码
  9. MYSQL_DATABASE=your_database
    初始化一个名为 your_database 的数据库(容器启动时自动创建)。

  10. -p 3306:3306
    将容器内的 MySQL 服务端口(3306)映射到主机的 3306 端口。
    访问方式
    • 主机本地:mysql -h 127.0.0.1 -u rootname -p
    • 外部网络:mysql -h [主机IP] -u rootname -p
      注意
    • 确保主机 3306 端口未被占用(可用 netstat -tulpn | grep 3306 检查)
    • 生产环境建议修改映射端口(如 3307:3306)减少暴露风险
  11. --character-set-server=utf8mb4
    设置服务器默认字符集为 utf8mb4(支持 emoji 等特殊字符)。

  12. --collation-server=utf8mb4_unicode_ci
    设置默认排序规则为 utf8mb4_unicode_ci(不区分大小写,支持更广泛的语言排序)。
    对比

    • utf8mb4_unicode_ci:更标准的 Unicode 排序
    • utf8mb4_general_ci:性能略高,但部分语言排序可能不准确
http://www.lqws.cn/news/92377.html

相关文章:

  • 70道Hive高频题整理(附答案背诵版)
  • 如何合理设计缓存 Key的命名规范,以避免在共享 Redis 或跨服务场景下的冲突?
  • Java并发编程:读写锁与普通互斥锁的深度对比
  • 【ROS2】各种相关概念汇总解释
  • 动态规划-1143.最长公共子序列-力扣(LeetCode)
  • 机器学习——随机森林算法
  • 【如何在IntelliJ IDEA中新建Spring Boot项目(基于JDK 21 + Maven)】
  • Linux Maven Install
  • 【论文笔记】High-Resolution Representations for Labeling Pixels and Regions
  • 3.2 HarmonyOS NEXT跨设备任务调度与协同实战:算力分配、音视频协同与智能家居联动
  • 机器学习——SVM
  • Foundation Models for Generalist Geospatial Artificial Intelligence论文阅读
  • 微软Build 2025:Copilot Studio升级,解锁多智能体协作未来
  • 论文阅读:CLIP:Learning Transferable Visual Models From Natural Language Supervision
  • 谷歌地图手机版(Google maps)v11.152.0100安卓版 - 前端工具导航
  • 力扣刷题 -- 225. 用队列实现栈
  • Spring 中创建 Bean 有几种方式?
  • 深入理解Android进程间通信机制
  • 秋招Day12 - 计算机网络 - IP
  • 蓝桥杯 k倍区间
  • docker创建postgreSql带多个init的sql
  • openharmony5.0.0中kernel子系统编译构建流程概览(rk3568)
  • Dockerfile 使用多阶段构建(build 阶段 → release 阶段)前端配置
  • 5.Nginx+Tomcat负载均衡群集
  • PyTorch——非线性激活(5)
  • Docker 插件生态:从网络插件到存储插件的扩展能力解析
  • SQL Indexes(索引)
  • 安全大模型的思考
  • JVM-内存结构
  • Flink 失败重试策略 :restart-strategy.type