MySQL Server 的迁移过程
先决条件
•必须安装源 SQL Server 实例和目标 SQL Server 实例。它们可能托管在不同的计算机上。
•MySQL 工具必须至少在其中一台计算机(mysqldump 和 mysql 客户端)上可用。
有用链接
•https://dev.mysql.com/doc/refman/8.0/en/copying-databases.html
•https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html
•https://dev.mysql.com/doc/refman/8.0/en/mysql.html
迁移过程
在命令(配置文件或下面的 SQL 语句)中,请始终进行以下替换: •将 SRCHOST 替换为源数据库服务器的地址 •将 SRCROOTLOGIN 替换为源 MySQL 服务器根用户登录 •将 SRCDBNAME 替换为要备份的源 ESET PROTECT 数据库的名称 •将 BACKUPFILE 替换为将用于存储备份的文件的路径 •将 TARGETROOTLOGIN 替换为目标 MySQL 服务器根用户登录 •将 TARGETHOST 替换为目标数据库服务器的地址 •将 TARGETDBNAME 替换为目标 ESET PROTECT 数据库的名称(在迁移后) •将 TARGETLOGIN 替换为目标数据库服务器上的新 ESET PROTECT 数据库用户的登录名 •将 TARGETPASSWD 替换为目标数据库服务器上的新 ESET PROTECT 数据库用户的密码 |
不必通过命令行执行以下 SQL 语句。如果存在可用的 GUI 工具,您可以使用您熟悉的应用程序。
1.停用 ESET PROTECT 服务器/MDM 服务。
2.创建源 ESET PROTECT 数据库的完整数据库备份(您打算迁移的数据库):
mysqldump --host SRCHOST --disable-keys --extended-insert --routines -u SRCROOTLOGIN -p SRCDBNAME > BACKUPFILE |
3.在目标 MySQL 服务器上准备空数据库:
mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=CREATE DATABASE TARGETDBNAME /*!40100 DEFAULT CHARACTER SET utf8 */;" |
请在 Linux 系统上使用撇号字符 ' 而不是双引号 "。 |
4.将目标 MySQL 服务器上的数据库还原为之前准备的空数据库:
mysql --host TARGETHOST -u TARGETROOTLOGIN -p TARGETDBNAME < BACKUPFILE |
5.在目标 MySQL 服务器上创建 ESET PROTECT 数据库用户:
mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=CREATE USER TARGETLOGIN@'%' IDENTIFIED BY 'TARGETPASSWD';" |
TARGETLOGIN 的建议字符:
•小写 ASCII 字母、数字和下划线“_”
TARGETPASSWD 的建议字符:
•仅限 ASCII 字符,包括大写和小写 ASCII 字母、数字、空格和特殊字符
•不要使用非 ASCII 字符、大括号 {} 或 @
请注意,如果未使用上述建议的字符,那么可能会遇到数据库的连接出现问题;在数据库连接字符串修改期间的稍后步骤中,需要避免使用特殊字符。本文档中不包含字符转义规则。
6.为目标 MySQL 服务器上的 ESET PROTECT 数据库用户授予适当的访问权限:
mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=GRANT ALL ON TARGETDBNAME.* TO TARGETLOGIN;" |
请在 Linux 系统上使用撇号字符 ' 而不是双引号 "。 |
7.删除 tbl_authentication_certificate 表的内容(否则,服务器代理可能无法连接到新服务器):
mysql --host TARGETHOST -u root -p "--execute=DELETE FROM era_db.tbl_authentication_certificate where certificate_id = 1;" |