mysql如何在虚拟机中安装_mysql虚拟环境配置说明

5次阅读

安装mysql虚拟机前须确认内存≥1.5g、根分区≥2gb、架构为x86_64;ubuntu/centos用原生包管理器安装并立即执行mysql_secure_installation;连接失败时重点检查bind-address、防火墙、socket路径及认证插件;配置需精简,如调低innodb_buffer_pool_size、禁用performance_schema等。

mysql如何在虚拟机中安装_mysql虚拟环境配置说明

MySQL 虚拟机安装前必须确认的三件事

直接装 mysql-server 很可能失败,不是因为命令不对,而是虚拟机环境缺基础依赖或资源不足。先检查:free -h 看内存是否 ≥1.5G;df -h / 确保根分区剩余 ≥2GB;uname -m 确认是 x86_64(ARM 架构的 MySQL 官方包支持有限)。

Ubuntu/CentOS 虚拟机中安装 MySQL 8.0 的最小可行命令

跳过图形化安装器和 snap,用原生包管理器直装最稳:

  • Ubuntu 22.04+:sudo apt update && sudo apt install mysql-server -y,装完自动启动,无需额外 systemctl start
  • CentOS 7:sudo yum install mysql-community-server -y(需先配置 MySQL 官方 repo,否则默认只有 5.7)
  • CentOS 8+/Rocky 8+:sudo dnf install mysql-server -y,但注意默认启用 mysql.service 而非 mysqld.service

装完立刻执行 sudo mysql_secure_installation,否则 root 默认空密码 + 允许远程登录,虚拟机里等于裸奔。

连接不上 localhost:3306?重点查这四个位置

虚拟机里 MySQL 启动了但连不上,90% 出在绑定地址、防火墙、socket 路径或认证插件上:

  • sudo grep "bind-address" /etc/mysql/mysql.conf.d/mysqld.cnf —— 如果是 127.0.0.1,宿主机用 localhost 能连,但用虚拟机 IP 就拒绝;改成 0.0.0.0 才允许外部访问(仅测试环境)
  • sudo ufw status(Ubuntu)或 sudo firewall-cmd --list-ports(CentOS)—— 检查 3306 是否开放,没开就加规则
  • mysql -u root -S /var/run/mysqld/mysqld.sock —— 如果提示 Can't connect to local MySQL server,先确认 socket 文件是否存在,再看 ps aux | grep mysqld 进程是否真在跑
  • select user, host, plugin FROM mysql.user WHERE user='root'; —— 若 plugin 是 auth_socket,本地 socket 登录没问题,但用密码登录会失败,需执行 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpass';

别把虚拟机当开发机:MySQL 配置要精简

虚拟机资源有限,MySQL 默认配置(尤其 innodb_buffer_pool_size)容易吃光内存导致 OOM 或卡死:

  • 编辑 /etc/mysql/mysql.conf.d/mysqld.cnf,在 [mysqld] 下加:innodb_buffer_pool_size = 256M(1G 内存虚拟机)或 512M(2G)
  • 注释掉或删掉 skip-networking(它会让 MySQL 只监听 socket,不启 TCP 端口)
  • 避免启用 performance_schemaslow_query_log(调试阶段可关,省 100MB+ 内存)
  • 如果只做本地测试,把 max_connections = 50(默认 151),防止并发高时撑爆虚拟机

改完配置必须 sudo systemctl restart mysql,且建议用 sudo systemctl status mysql 看日志末尾有没有 ready for connections,而不是只看 active (running)。

text=ZqhQzanResources