一、背景
在开展工作与学习任务的进程中,时常会涉及到运用多个 MySQL 实例执行特定操作的需求。例如,在深入研习主从复制机制时,借助多个 MySQL 实例能够更为直观地观察数据的传输与同步过程,有效加深对其原理及应用场景的理解。同时,于数据库备份工作方面,利用多个实例可以灵活地制定备份策略,实现全量备份与增量备份的有机结合,从而确保数据的安全性与完整性,提升数据管理的可靠性与高效性。
然而,现实状况往往是我们手头通常并没有多个独立的服务器资源可供使用,在此情形下,于本地搭建多个 MySQL 服务便成为了满足上述需求的关键举措与有效途径。
二、实践,创建一个端口为 3316 的 MYSQL服务
1、复制 mysql 的安装目录
在 D 盘的 ProgramData 文件夹下的 innodb1 子目录之中,有 2 个文件目录,其中 MySQL 是复制过来的 MYSQL 安装实例而得到的一个副本,它完整保留了 MySQL 安装后的基本架构与相关文件。 mysql_data 是一个空文件夹,用来存放 MySQL 数据。
而对于配置文件 my.ini,存放在复制过来的 MYSQL 安装实例里面。
2. 修改 my.ini 配置文件
3、命令创建第二个服务
以管理员的身份打开命令行窗口,到安装目录的bin目录下,输入如下命令创建第二个 MySQL 服务
# 切换目录
C:\windows\system32>cd D:\ProgramData\innodb1\MySQL\bin# 创建服务名称为:mysql_test 的服务
# --defaults-file 指定默认配置文件的位置为:D:/ProgramData/innodb1/MySQL/my.ini
mysqld install mysql_test --defaults-file="D:/ProgramData/innodb1/MySQL/my.ini"
4. 初始化服务
D:\ProgramData\innodb1\MySQL\bin>mysqld --initialize --console
2024-12-12T02:36:39.638445Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2024-12-12T02:36:39.638507Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2024-12-12T02:36:40.517393Z 0 [Warning] InnoDB: New log files created, LSN=45790
2024-12-12T02:36:40.627090Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2024-12-12T02:36:40.702020Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: eafb237d-b831-11ef-b8c9-489ebd25cd12.
2024-12-12T02:36:40.707212Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2024-12-12T02:36:41.023536Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2024-12-12T02:36:41.023799Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2024-12-12T02:36:41.024932Z 0 [Warning] CA certificate ca.pem is self signed.
2024-12-12T02:36:41.112110Z 1 [Note] A temporary password is generated for root@localhost: DA%q&jl_-7(1
# 注意最后一行 A temporary password is generated for root@localhost: kDL1r,gw3;ul
# 其中 DA%q&jl_-7(1 为 root 初始化密码
初始化完成后,可以看一下 mysql_data 文件,我们发现数据已经初始化完成
5. 打开任务管理器切换到服务,查找到名称为 mysql_test 的服务并启动
6. 登录 mysql 并修改密码
# 登录密码为初始化最后一行:DA%q&jl_-7(1
D:\ProgramData\innodb1\MySQL\bin>mysql -P3316 -uroot -p
Enter password: ************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.19-logCopyright (c) 2000, 2022, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.# 修改 root 密码为 root
mysql> ALTER USER root@localhost IDENTIFIED BY 'root';
Query OK, 0 rows affected (0.00 sec)
到此,我们的另外一个服务器就搭建好了,在工作与学习过程中,为满足如主从复制学习、数据库备份等多样化需求,常常需要搭建多个 MySQL 服务。通过本次实践操作,对整个搭建流程及相关要点有了较为清晰的认识与深刻体会。