|
本帖最后由 创世魂 于 2025-1-22 23:16 编辑
一、Windows环境,同一个服务器安装多个相同版本的mysql数据库(其它平台自行网络搜索)
1、下载mysq数据库。
可以打开mysql官网自行下载,或者下载我提供的绿色包,我这里提供的是mysql8,也是从官网下载的。
链接: https://pan.baidu.com/s/1CrXUQoTcllqXUTIOLz_TVw?pwd=1234 提取码: 1234
2、解压。
比如:E:\MySQL\mysql-8.0.40-winx64
3、配置my.ini(如果没有就自己创建一个)
- [mysqld]
- # 设置3306端口
- port=3306
- # 设置mysql的安装目录 ----------此处修改为自己的配置------------
- basedir=<span style="background-color: rgb(255, 255, 255);">E:\MySQL\mysql-8.0.40-winx64</span>
- # 设置mysql数据库的数据的存放目录 ---------此处修改为自己的配置--
- datadir=<span style="background-color: rgb(255, 255, 255);">E:\MySQL\mysql-8.0.40-winx64</span>\data
- # 允许最大连接数
- max_connections=200
- # 允许连接失败的次数。
- max_connect_errors=10
- # 服务端使用的字符集默认为utf8
- character-set-server=utf8
- # 创建新表时将使用的默认存储引擎
- default-storage-engine=INNODB
- #主服务器唯一ID
- server-id=1
- #启用二进制日志
- log-bin=txmysql-bin
- #设置不要复制的数据库(可设置多个)
- binlog-ignore-db=mysql
- #设置需要复制的数据库(注意修改成自己的)
- binlog-do-db=test
- #设置binlog格式,MIXED,ROW,STATEMENT
- binlog_format=STATEMENT
- [mysql]
- # 设置mysql客户端默认字符集
- default-character-set=utf8
- [client]
- # 设置mysql客户端连接服务端时默认使用的端口
- port=3306
- default-character-set=utf8
复制代码
4、配置环境变量。
5、初始化数据库
通过cmd(使用管理员模式运行cmd)进入到mysql的bin目录,然后运行指令:
- mysqld --initialize --console
复制代码
红框内的为数据库初始密码,将其复制出来,账号为root。
6、安装mysql服务。
- mysqld --install MySQL3306
复制代码
执行cmd命令:net start MySQL3306 启动mysql服务。
打开mysql管理工具,我这里用的是Navicat Premium,输入账号root和初始密码,连接登陆。
这时候会提示密码过期,然后让你修改密码,修改密码后登录即可。
到此第一个数据库部署完毕,开始部署第二个数据库。
1、将文件夹复制一份,并改名。
这里改名增加了一个后缀3307.
同时删除data文件夹。
2、修改my.ini
- [mysqld]
- # 设置3307端口
- port=3307
- # 设置mysql的安装目录 ----------此处修改为自己的配置------------
- basedir=E:\MySQL\mysql-8.0.40-winx64_3307
- # 设置mysql数据库的数据的存放目录 ---------此处修改为自己的配置--
- datadir=E:\MySQL\mysql-8.0.40-winx64_3307\data
- # 允许最大连接数
- max_connections=200
- # 允许连接失败的次数。
- max_connect_errors=10
- # 服务端使用的字符集默认为utf8
- character-set-server=utf8
- # 创建新表时将使用的默认存储引擎
- default-storage-engine=INNODB
- #主服务器唯一ID
- server-id=2
- #启用中继日志
- relay-log=mysql-relay
- #设置需要复制的数据库
- binlog-do-db=test
- [mysql]
- # 设置mysql客户端默认字符集
- default-character-set=utf8
- [client]
- # 设置mysql客户端连接服务端时默认使用的端口
- port=3307
- default-character-set=utf8
复制代码
3、环境变量设置上。
4、初始化数据库。
管理员模式打开cmd进入“E:\MySQL\mysql-8.0.40-winx64_3307\bin”
执行命令:
- mysqld --defaults-file=E:\MySQL\mysql-8.0.40-winx64_3307\my.ini --initialize --console
复制代码 这时候会和上面的数据库一样生成一堆信息,里面有数据库的初始密码,记着保存起来。
5、安装mysql服务。
执行命令:
- mysqld install MySQL3307 --defaults-file="E:\MySQL\mysql-8.0.40-winx64_3307\my.ini"
复制代码 执行命令运行服务:
同样使用Navicat登陆端口号为3307数据库,这时候依然会提示你密码过期,按照提示修改密码登录即可。
到此,两个数据库配置完毕。
二、数据库主从同步配置
在主数据库执行下面的命令。
- CREATE USER 'slave'@'localhost' IDENTIFIED BY '123456';
- GRANT REPLICATION SLAVE ON *.* TO 'slave'@'localhost';
- ALTER USER 'slave'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
- FLUSH PRIVILEGES;
复制代码
可以直接在数据库工具里面执行。
第一行命令是创建用户,用户名为slave 密码为 123456
第二行授权复制权限。
第三行修改认证插件,如果不修改还得启用ssl,比较麻烦,所以这里改掉认证,忽略ssl。
第四行刷新命令。
主数据库继续执行命令。
记住上面红框中的两个值。
切换从数据库执行命令。
- #master_host 主数据库地址
- CHANGE MASTER TO master_host ='127.0.0.1',
- #上一步中主数据库创建的从库用户
- master_user ='slave',
- #上一步中主数据库创建的从库密码
- master_password ='123456',
- #上一步中保存的file
- master_log_file ='txmysql-bin.000004',
- #上一步中保存的position
- master_log_pos = 10769;
复制代码
执行时确保数据库修改成了从数据库。
继续在从数据库执行命令,用于启动主从复制。
从库上执行命令查看复制状态。
Slave_IO_Running和Slave_SQL_Running的值都为“YES”,则表示从服务器已经成功连接到主服务器并开始复制。
如果出现异常,查看Last Error和Last_IO_Error 两个字段内的异常错误信息。
这时候使用数据库工具分别在主库和从库中创建一个名为 test 的数据库,数据库名称要保证在my.ini中配置过。
这时候如果你在主库(写数据库)中创建一个user表,从库(读数据库)会自动生成一个同样的表。
这也就意味着主从同步配置成功。
在主库(写数据库)test库中任何的增删改都会自动同步到从库(读数据库)的test库中。
|
|