yup*_*guy 5 server lamp mysql mariadb
状态
我目前在 Ubuntu 20.04 上运行 LAMP 服务器,该服务器有一个包含多个 Drupal 和 Wordpress 数据库以及 PHPMYADMIN 数据库的 MySQL 服务器。
请求
是否有一些超级聪明的 MySQL 数据库专家愿意发布关于如何将工作数据库从 LAMP(MySQL 服务器)迁移到 LAMP(MariaDB 服务器)的“权威指南”,包含从
1.)“第1步”=导出所需的工作数据库,
2.)完全删除MySQL服务器,#如果有必要,我知道Mariadb是一个dropin
3.)安装到MariaDB服务器,
4.)和“最后一步" = 导入所需的工作数据库?
我在网上搜索了好几天,可以在网上找到“零碎”的教程。我认为 MariaDB 获得了市场份额,这样的教程对于 Ubuntu 18.04 / 20.04 用户来说很有价值。如果这样的指南已经存在,请转发:-)
小智 11
由于每个服务器都不同,因此很难针对每种情况编写“权威指南”。必须考虑版本以及数据库引擎等。也就是说,基本原理如下:
\n第一个 \xe2\x80\x94 和最重要的 \xe2\x80\x94 是您首先导出所有数据库。不过,有些内容您以后不需要继续,所以让我们只导出您关心的内容:
\nmysqldump -u {user} -p --events --routines --triggers wordpress > wordpress-export.sql\nmysqldump -u {user} -p --events --routines --triggers drupal > drupal-export.sql\nmysqldump -u {user} -p --events --routines --triggers phpmyadmin > phpmyadmin-export.sql\nRun Code Online (Sandbox Code Playgroud)\n请务必更改{user}为数据库中具有最高权限的用户帐户,否则可能会导致导出不完整。请务必将数据库名称更改为其正确名称,并将导出名称更改为唯一的名称。
我不建议--all-databases在此处使用该标志,因为它将包含三个特定于 MySQL 的表,这些表不应针对即将创建的 MariaDB 安装进行安装。
当您构建新数据库时,确保所有重要用户帐户都存在非常重要。我们可以查询数据库来查看用户帐户名称,更重要的是,我们可以查询数据库来构建CREATE我们稍后在本指南的第 5 步中需要的语句。
登录到您的 MySQL 安装并运行以下查询:
\nSELECT CONCAT(\'CREATE USER \'\'\', `User`, \'\'\'@\'\'\', `Host`, \'\'\' IDENTIFIED BY \'\'CorrectHorseBatteryStaple\'\';\') as `username`\n FROM mysql.user\n WHERE `User` NOT LIKE \'mysql.%\' and `User` NOT LIKE \'slave%\'\n and `User` NOT IN (\'root\', \'debian-sys-maint\')\n ORDER BY `username`;\nRun Code Online (Sandbox Code Playgroud)\n这将输出类似:
\nCREATE USER \'wordpress\'@\'localhost\' IDENTIFIED BY \'CorrectHorseBatteryStaple\';\nCREATE USER \'drupal\'@\'localhost\' IDENTIFIED BY \'CorrectHorseBatteryStaple\';\nCREATE USER \'admin\'@\'%\' IDENTIFIED BY \'CorrectHorseBatteryStaple\';\nRun Code Online (Sandbox Code Playgroud)\n将此列表保存到某个文件中,因为您很快就会需要它。
\n如果您 100% 确定从 MySQL 数据库中获得了所需的所有内容,那么现在是时候将其从服务器中清除了。
\nsudo systemctl stop mysqlsudo apt purge mysql-server \\\xc2\xa0\n mysql-client \\\xc2\xa0\n mysql-common \\\xc2\xa0\n mysql-server-core-* \\ \n mysql-client-core-*\nRun Code Online (Sandbox Code Playgroud)\nsudo rm -Rf /etc/mysql /var/lib/mysql /var/log/mysql\nRun Code Online (Sandbox Code Playgroud)\napt:sudo apt autoremove\nsudo apt autoclean\nRun Code Online (Sandbox Code Playgroud)\n接下来是 MariaDB 安装。我不会逐步介绍您可能想要安装的所有不同配置选项,但会指出一些可能使您的生活更轻松的选项。首先,让我们安装它:
\nsudo apt install mariadb-server\nsudo mysql_secure_installation\nRun Code Online (Sandbox Code Playgroud)\n虽然 MariaDB安装在您的服务器上,但您将使用的大多数工具都将针对 MySQL。这就是为什么第二个命令的mysql_secure_installation名称更合适。
当您运行时,mysql_secure_installation系统会询问您以下问题:
Enter current password for root (enter for none):\xe2\x87\xa0 按一下Enter键Set root password? [Y/n]\xe2\x87\xa0 选择YEnter password\xe2\x87\xa0 输入一个好的值,然后在要求确认时再次输入。root现在,由于您无法在没有 的情况下登录sudo,因此您可能需要创建具有您可能需要的所有管理员权限的帐户。
sudo mysql -u root -pCREATE USER \'admin\'@\'localhost\' IDENTIFIED BY \'CorrectHorseBatteryStaple\';admin为您希望为您的帐户命名的任何名称,以及CorrectHorseBatteryStaple您会记住的鲜为人知的密码。GRANT ALL PRIVILEGES ON *.* TO \'admin\'@\'localhost\' WITH GRANT OPTION;FLUSH PRIVILEGES;\xe2\x87\xa0非常重要使用您之前准备的列表,重新创建 WordPress、Drupal 和(可能)phpMyAdmin 所需的各种用户帐户。
\nCREATE USER \'wordpress\'@\'localhost\' IDENTIFIED BY \'CorrectHorseBatteryStaple\';\nCREATE USER \'drupal\'@\'localhost\' IDENTIFIED BY \'CorrectHorseBatteryStaple\';\nRun Code Online (Sandbox Code Playgroud)\n注意:请务必将用户名和密码设置为您真正想要的。
\n对于您需要的每个数据库,在 MariaDB 中运行以下命令:
\nCREATE DATABASE wordpress CHARACTER SET = utf8 COLLATE = utf8_general_ci;\nRun Code Online (Sandbox Code Playgroud)\n当然,更改wordpress为您要创建的数据库的实际名称。
mysql -u {user} -p wordpress < wordpress-export.sql\nRun Code Online (Sandbox Code Playgroud)\n对导出的每个数据库执行此操作,用正确的名称和 SQL 文件替换数据库名称和 SQL 文件。如果您犯了错误并将文件导入到错误的数据库中,请不要担心,您可以像这样“修复”它:
\nmysql -u admin -pDROP DATABASE whoopsie;CREATE DATABASE whoopsie CHARACTER SET = utf8 COLLATE = utf8_general_ci;现在我们可以为之前创建的帐户设置权限:
\nGRANT ALL PRIVILEGES ON wordpress.* TO \'wordpress\'@\'localhost\';\nRun Code Online (Sandbox Code Playgroud)\n再次对每个帐户执行此操作,确保他们有权访问正确的数据库。完成后,刷新权限以确保它们处于活动状态:
\nFLUSH PRIVILEGES;\nRun Code Online (Sandbox Code Playgroud)\n现在,在此阶段,您可以仔细检查所有网站的数据库名称、帐户名称和密码是否正确。如果一切正常,请重新启动您的网络服务器并进行测试。
\n我会推荐一件事,提前测试一下。我见过很多 MySQL\xe2\x87\xa2MariaDB 迁移出现问题,然后人们以疯狂的速度叫我来解决问题。测试,测试,测试。MySQL 中的某些功能在 MariaDB 中无法透明地工作。您不希望在迁移过程中发现表需要更改排序规则或导入文件已损坏。
\n如果您有使用虚拟机的经验,那么这些是测试迁移的理想选择。
\n| 归档时间: |
|
| 查看次数: |
6049 次 |
| 最近记录: |