You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacBook Pro M2环境下Vagrant配置MySQL失败的修复方案

解决Vagrant Ubuntu环境中MySQL初始化脚本的问题

错误原因分析

  1. SQL语法不兼容:MySQL 8.0及以上版本已取消GRANT语句中附带IDENTIFIED BY创建用户的语法,必须先单独创建用户再执行授权操作。
  2. root登录认证问题:Ubuntu系统默认安装的MySQL,root用户采用socket认证而非密码认证,直接用-p参数带密码登录会被拒绝。
  3. 文件权限不足:修改/etc/mysql/mysql.conf.d/mysqld.cnf需要管理员权限,原脚本中部分操作未加sudo导致权限报错。

修改后的mysql.sh脚本

#!/bin/bash

# MYSQL_VERSION    $1
# RT_PASSWORD      $2
# DB_USERNAME      $3
# DB_PASSWORD      $4
# DB_NAME          $5
# DB_NAME_TEST     $6

# Install MySQL
apt-get update
apt-get -y upgrade

debconf-set-selections <<< "mysql-server mysql-server/root_password password $2"
debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $2"

apt-get -y install mysql-server

# 切换root用户认证方式为密码认证,解决后续登录问题
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$2';"
sudo mysql -e "FLUSH PRIVILEGES;"

# 创建数据库并授权:先创建用户(如果不存在),再分配权限
sudo mysql -uroot -p$2 -e "CREATE DATABASE IF NOT EXISTS $5;"
sudo mysql -uroot -p$2 -e "CREATE USER IF NOT EXISTS '$3'@'%' IDENTIFIED BY '$4';"
sudo mysql -uroot -p$2 -e "GRANT ALL PRIVILEGES ON $5.* TO '$3'@'%';"

sudo mysql -uroot -p$2 -e "CREATE DATABASE IF NOT EXISTS $6;"
sudo mysql -uroot -p$2 -e "GRANT ALL PRIVILEGES ON $6.* TO '$3'@'%';"
sudo mysql -uroot -p$2 -e "FLUSH PRIVILEGES;"

# 修改MySQL配置文件,添加sudo确保权限
sudo sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/mysql.conf.d/mysqld.cnf
sudo grep -q "^sql_mode" /etc/mysql/mysql.conf.d/mysqld.cnf || sudo echo "sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" >> /etc/mysql/mysql.conf.d/mysqld.cnf

sudo service mysql restart

关键修改说明

  • 拆分用户创建与授权:将原GRANT语句拆分为CREATE USER和GRANT两步,适配MySQL 8.0+的语法规范。
  • 调整root认证方式:通过ALTER USER语句将root用户的认证方式改为mysql_native_password,确保可以用密码正常登录。
  • 补全sudo权限:所有修改系统文件、执行MySQL管理命令的操作都添加sudo,避免权限不足的问题。
  • 简化命令结构:移除冗余的命令变量,直接在执行时拼接参数,减少变量展开可能带来的意外问题。

内容的提问来源于stack exchange,提问作者Pedro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 05:12:48