我已经在我的 MAC 机器上安装了 MAMP,并且正在尝试将其升级以使用 MySQL 8。但是,我没有任何运气。我已尝试以下脚本,但数据库迁移失败。
此外,sequelPro 无法连接到数据库,但是 phpmyadmin 连接没有问题。
#!/bin/sh
curl -OL https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.17-macos10.14-x86_64.tar.gz
tar xfvz mysql-8.0.*
echo "stopping mamp"
sudo /Applications/MAMP/bin/stop.sh
sudo killall httpd mysqld
echo "creating backup"
sudo rsync -arv --progress /Applications/MAMP ~/Desktop/MAMP-Backup
echo "copy bin"
sudo rsync -arv --progress mysql-8.0.*/bin/* /Applications/MAMP/Library/bin/ --exclude=mysqld_multi --exclude=mysqld_safe
echo "copy share"
sudo rsync -arv --progress mysql-8.0.*/share/* /Applications/MAMP/Library/share/
echo "fixing access (workaround)"
sudo chmod -R o+rw /Applications/MAMP/db/mysql/
sudo chmod -R o+rw /Applications/MAMP/tmp/mysql/
#sudo chmod -R o+rw "/Library/Application Support/appsolute/MAMP PRO/db/mysql/"
echo "starting mamp"
sudo /Applications/MAMP/bin/start.sh
echo "migrate to new version"
/Applications/MAMP/Library/bin/mysql -u root --password=root -h 127.0.0.1
在 MAMP 中升级 MySQL 可能有点棘手,但您的脚本似乎基本正确。但是,升级到 MySQL 8 时您可能需要考虑一些额外的步骤。这是脚本的更新版本,进行了一些调整:
#!/bin/bash
# Download and extract MySQL 8
curl -OL https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.17-macos10.14-x86_64.tar.gz
tar xfvz mysql-8.0.*
# Stop MAMP services
echo "Stopping MAMP..."
sudo /Applications/MAMP/bin/stop.sh
sudo killall httpd mysqld
# Create a backup
echo "Creating backup..."
sudo rsync -arv --progress /Applications/MAMP ~/Desktop/MAMP-Backup
# Copy MySQL binaries
echo "Copying binaries..."
sudo rsync -arv --progress mysql-8.0.*/bin/* /Applications/MAMP/Library/bin/ --exclude=mysqld_multi --exclude=mysqld_safe
# Copy MySQL share files
echo "Copying share files..."
sudo rsync -arv --progress mysql-8.0.*/share/* /Applications/MAMP/Library/share/
# Fix file permissions
echo "Fixing permissions..."
sudo chmod -R o+rw /Applications/MAMP/db/mysql/
sudo chmod -R o+rw /Applications/MAMP/tmp/mysql/
sudo chmod -R o+rw "/Library/Application Support/appsolute/MAMP PRO/db/mysql/"
# Start MAMP services
echo "Starting MAMP..."
sudo /Applications/MAMP/bin/start.sh
# Migrate MySQL data to the new version
echo "Migrating to new version..."
/Applications/MAMP/Library/bin/mysql_upgrade -u root --password=root -h 127.0.0.1
更改和补充:
#!/bin/bash
:Bash 更常用于脚本编写。mysql
命令,而是使用mysql_upgrade
来确保现有MySQL数据正确迁移到新版本。运行此脚本后,尝试使用适当的 MySQL 客户端连接到 MySQL 8 以确认迁移成功。请记住在执行任何重大升级之前始终备份您的数据。