news 2026/4/16 15:47:02

阿里云服务器上使用docker容器部署了mysql,但是现在想直接在服务器上部署mysql怎么操作?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
阿里云服务器上使用docker容器部署了mysql,但是现在想直接在服务器上部署mysql怎么操作?
在阿里云服务器上使用docker容器部署了mysql,但是在操作时发现明明数据库中有表但是使用select查询时却显示表不存在,应该是Linux环境中大小写敏感的原因,在MySQL中,控制大小写敏感的参数是lower_case_table_names。在Linux系统上,MySQL默认是大小写敏感的(即lower_case_table_names=0)。我们可以将其设置为1(表示不区分大小写)或2(表示存储为指定的大小写,但在比较时转换为小写)。但是想要在MySQL 8.0中,lower_case_table_names的修改限制,貌似只能在初始化之前设置。服务器之前已经使用Docker容器部署了MySQL数据,Docker的存储和网络性能可能影响数据库稳定性,所以想着干脆干掉Docker容器直接在服务器上部署。

步骤 1: 检查并停止 Docker MySQL 容器

首先,确认 Docker 容器中的 MySQL 是否在运行。如果容器占用 3306 端口,直接安装 MySQL 会失败。

  • 查看运行中的 Docker 容器(在服务器上输入以下命令):

    docker ps # 检查是否有名为 "mysql" 或其他 MySQL 容器在运行
  • 如果容器在运行,停止并移除它(可选,避免冲突):

    docker stop mysql # 停止容器 docker rm mysql # 移除容器(如果不再需要)这里最后参数mysql是你的mysql容器名称
  • 注意:如果需保留容器数据,仅停止容器即可(不运行docker rm)。Docker 容器停止后,3306 端口会释放 。

步骤2: 更新系统并安装MySQL

使用 Linux 包管理器在宿主机上安装 MySQL。

  • 更新软件包列表

sudo apt update # Ubuntu/Debian 或 sudo yum update # CentOS(根据系统执行,我用的阿里云执行的这个)
  • 安装MySQL服务器

    • Ubuntu/Debian:

      sudo apt install mysql-server -y
    • CentOS:

      sudo yum install mysql-server -y
    • 安装后自动启动服务。验证状态:

      sudo systemctl status mysql # 或 mysqld (CentOS)
    • 如果没有启动,则先执行启动命令

      sudo systemctl start mysql # Ubuntu/Debian 或 sudo systemctl start mysqld # CentOS
步骤3: 配置MySQL安全设置
  • 运行安全脚本以设置root密码、移除匿名用户等:

    sudo mysql_secure_installation
  • 根据提示操作:

    • 设置 root 密码(建议强密码)。

    • 移除匿名用户(选择Y)。

    • 禁止 root 远程登录(根据需求选择,如果需远程访问选N)。

    • 删除测试数据库(选择Y)。

    • 重新加载权限表(选择Y)。

步骤 4: 配置防火墙和阿里云安全组

确保本地防火墙和阿里云安全组允许 MySQL 端口(3306)。

  • 开放本地防火墙(如果使用 UFW):

    sudo ufw allow 3306/tcp # 允许 MySQL 端口 sudo ufw reload # 重新加载规则 或者 sudo firewall-cmd --list-all #查看防火墙列表 sudo firewall-cmd --permanent --add-port=3306/tcp #添加3306端口 sudo firewall-cmd --reload #重新加载规则
  • 阿里云控制台配置

    1. 登录阿里云控制台,进入ECS 实例>安全组

    2. 添加入站规则:协议类型TCP,端口范围3306,源 IP0.0.0.0/0(或你的 IP 段,建议尽量不要开放所有的ip)。

    3. 保存规则。

步骤 5: 验证 MySQL 连接

测试宿主机上的 MySQL 是否可访问:

mysql -u root -p # 输入步骤 3 设置的密码
  • 成功登录后,执行简单 SQL 命令:

    SHOW DATABASES; -- 查看数据库列表
  • 如果连接失败,检查端口冲突:

    sudo netstat -tunlp | grep 3306 # 查看 3306 端口占用
关键注意事项
  • 端口冲突处理:如果 Docker 容器未完全停止,或残留进程占用 3306 端口,使用sudo kill <进程ID>结束进程(见引用[4])4

  • 数据迁移:如果需要将 Docker 容器中的 MySQL 数据迁移到宿主机,先备份容器数据(docker exec -it mysql mysqldump -u root -p dbname > backup.sql),然后导入宿主机 MySQL。

  • 性能影响:直接部署 MySQL 通常比 Docker 容器性能更高,但需手动管理依赖和更新(参考引用[3] 的资源隔离对比)3

  • 安全性:避免同时运行 Docker MySQL 和宿主机 MySQL,防止资源竞争。

配完了发现忘记了最关键的一步,设置MySQL的大小写敏感权限。。

步骤 1: 停止 MySQL 服务

  • (在服务器上输入以下命令):

sudo systemctl stop mysqld

步骤 2: 备份所有数据

  • (当然我是新建的不需要,有需要的可以在服务器上输入以下命令):

    sudo mysqldump -u root -p --all-databases --routines --events > /root/mysql_full_backup_$(date +%F).sql

步骤 3. 删除原有数据目录

sudo rm -rf /var/lib/mysql/*

步骤4. 修改配置文件

sudo vi /etc/my.cnf

[mysqld]区块添加配置:

[mysqld] lower_case_table_names=1 # 1不区分大小写,0区分大小写

步骤5. 重新初始化数据库

sudo mysqld --initialize --user=mysql --lower-case-table-names=1

步骤6. 获取临时root密码

sudo grep 'temporary password' /var/log/mysqld.log

步骤7. 启动服务并修改密码

sudo systemctl start mysqld mysql -u root -p # 使用临时密码登录
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

步骤8. 恢复备份数据

mysql -u root -p < /root/mysql_full_backup_*.sql

步骤9. 重启Mysql

systemctl restart mysqld
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 7:28:53

计算机毕业设计springboot“小时光”儿童摄影管理系统 SpringBoot“童画时光”儿童影楼一站式管理平台 SpringBoot“萌影纪”儿童摄影服务运营系统

计算机毕业设计springboot“小时光”儿童摄影管理系统644iz033 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。儿童摄影门店每天既要接待满怀期待的家长&#xff0c;又要协调摄影…

作者头像 李华
网站建设 2026/4/1 10:06:32

银行联行号查询接口对接教程详解

在企业转账、代付、结算及清算系统中&#xff0c;银行联行号是银行系统识别分支机构的唯一编号。 联行号填写错误&#xff0c;常导致延迟到账、打款失败或清算异常。而传统的本地联行号库存在更新滞后、人工维护繁琐、数据不全等问题。 因此&#xff0c;更高效、准确的方式是…

作者头像 李华
网站建设 2026/4/16 13:55:50

FANUC机器人KAREL编程在工业4.0环境下的数据交互技术深度解析

FANUC机器人KAREL编程在工业4.0环境下的数据交互技术深度解析 【免费下载链接】Karel中文手册-FANUC机器人数据交互解决方案 **资源名称&#xff1a;** karel中文手册.pdf**资源概述&#xff1a;**这份详尽的《Karel中文手册》深入浅出地介绍了如何利用KAREL语言解决机器人与外…

作者头像 李华
网站建设 2026/4/15 16:55:49

15、Linux 网络工具与文件目录操作全解析

Linux 网络工具与文件目录操作全解析 1. 即时通讯(IM)问题排查 在使用网络时,有时会遇到能打开网站但即时通讯(IM)无法使用的情况。这种问题的出现可能有以下原因: - IM 服务维护 :IM 服务可能正在进行维护,导致暂时不可用。 - 网络流量过大 :互联网或 IM 服务…

作者头像 李华
网站建设 2026/4/16 10:53:10

别再把图片存进数据库了!从全栈视角看 OSS 的架构本质

从全栈部署实战&#xff0c;聊聊 OSS 对象存储的本质 在进行全栈开发时&#xff0c;新手往往会遇到文件存储的痛点。很多同学在初次接触云服务器部署时&#xff0c;对 OSS&#xff08;Object Storage Service&#xff0c;对象存储服务&#xff09;的概念感到模糊。本文将通过一…

作者头像 李华
网站建设 2026/4/16 14:10:33

精通 oil.nvim 排序配置:打造个性化文件管理体验

精通 oil.nvim 排序配置&#xff1a;打造个性化文件管理体验 【免费下载链接】oil.nvim Neovim file explorer: edit your filesystem like a buffer 项目地址: https://gitcode.com/gh_mirrors/oi/oil.nvim oil.nvim 是一款革命性的 Neovim 文件浏览器插件&#xff0c;…

作者头像 李华