在windows7下装置mysql以下版本:
1、mysql-5.7.28
2、mysql-8.0.20:主库
3、mysql-8.0.20:从库
一、mysql-5.7.28装置和启用
1.1 下载安装
免装置版本:https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.28-winx64.zip
装置版本:https://downloads.mysql.com/archives/community/
我应用的是免装置版本,把文件解压进去如下门路:F:mysqlmysql-5.7.28-winx64
1.2 配置信息
首先在F:mysqlmysql-5.7.28-winx64门路下新建my.ini文件,内容如下:
[mysqld]# 设置服务端应用的字符集为utf-8character-set-server=utf8# 设置mysql的端口号port = 3306# 设置mysql的装置目录(能看到bin即可)basedir=F:\mysql\mysql-5.7.28-winx64# 设置mysql数据库的数据的寄存目录(即data文件夹,必须是空目录)datadir=F:\mysql\mysql-5.7.28-winx64\data# 容许最大连接数max_connections=2000# 创立新表时将应用的默认存储引擎default-storage-engine=INNODB# 设置mysql以及数据库的默认编码[mysql]default-character-set=utf8[mysql.server]default-character-set=utf8# 设置客户端默认字符集[client]port = 3306default-character-set=utf8
留神:basedir和datadir的门路不要呈现中文和空格。
1.3 装置及初始化
进入F:mysqlmysql-5.7.28-winx64bin,按住Shift+右键,抉择"在此处关上命令窗口",执行如下命令:
mysqld install
呈现Service successfully installed.示意装置胜利。接下来继续执行mysqld --initialize --console
最初的=WsstAcIc4oh是数据库的初始化明码,记住它,前面须要用到它进行明码重置。
1.4 启动服务
持续在CMD执行如下命令:net start mysql
(net stop mysql 是进行服务,sc delete mysql是删除服务)
同样在bin目录下,执行mysqld -nt --install用来开机时主动启动此服务。
1.5 重置明码
同样在bin目录下,执行:
mysql -uroot -p
而后输出初始密码。
进入mysql后,执行重置明码指令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
二、mysql-8.0.20装置和启用
2.1 下载安装
免装置版本:https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.20-winx64.zip
下载后解压到门路:F:mysqlmysql-8.0.20-winx64
2.2 配置信息
首先在F:mysqlmysql-8.0.20-winx64门路下新建data文件夹和my.ini文件,内容如下:
[mysqld]# 设置3307端口(原先的mysql5曾经占用3306)port=3307# 设置mysql的装置目录(你本人的目录)basedir=F:\mysql\mysql-8.0.20-winx64# 设置mysql数据库的数据的寄存目录datadir=F:\mysql\mysql-8.0.20-winx64\data# 容许最大连接数max_connections=200# 容许连贯失败的次数。max_connect_errors=10# 服务端应用的字符集默认为UTF8character-set-server=utf8# 创立新表时将应用的默认存储引擎default-storage-engine=INNODB# 默认应用“mysql_native_password”插件认证#mysql_native_passworddefault_authentication_plugin=mysql_native_password[mysql]# 设置mysql客户端默认字符集default-character-set=utf8[client]# 设置mysql客户端连贯服务端时默认应用的端口port=3307default-character-set=utf8
留神:basedir和datadir的门路不要呈现中文和空格。
2.3 敞开原先的mysql服务
WIN+R键输出services.msc关上服务,进行所有在运行中的Mysql服务。
2.4 装置及初始化
进入F:mysqlmysql-8.0.20-winx64bin,按住Shift+右键,抉择"在此处关上命令窗口",执行如下命令:
mysqld --initialize --console
最初的_t:KDa)PP7nV是数据库的初始化明码,记住它,前面须要用到它进行明码重置。
接下来继续执行
mysqld --install MySQL8
若呈现Service successfully installed.示意装置胜利。
2.5 启动服务
持续在CMD执行如下命令:
net start mysql8
(net stop mysql8 是进行服务,sc delete mysql8是删除服务)
同样在bin目录下,执行
mysqld -nt --install
用来开机时主动启动此服务。
2.6 重置明码
同样在bin目录下,执行:
mysql -uroot -p
而后输出初始密码。
进入mysql后,执行重置明码指令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
三、mysql-8的主从配置
装置前请进行所有正在运行中的数据库服务,详见2.3操作步骤。
另外数据库的版本号尽量放弃雷同,如下图,我应用mysql-8.0.20-winx64作为主数据库,mysql-8.0.20-winx64-2作为从数据。
不论是主数据库还是从数据库,装置配置的步骤跟下面第二步安顿mysql8是相似的。
1、别离配置my.init文件:
Master主数据库的my.ini配置,新增如下内容:
[mysqld]# 主库配置server_id=1log-bin=mysql-bin# 须要同步的数据库binlog-do-db=demo
Slave从数据的my.ini配置,新增如下内容:
[mysqld]# 从库配置server_id=2log-bin=mysql-bin#须要同步的数据库binlog-do-db=demo
因为是在同一个windows环境下装置多个mysql服务,故每个mysql服务的端口号不能反复。而且my.ini配置文件外面的server_id也不能同名。
2、注册不同的服务名称
因为操作步骤2.5中生成了服务名称:mysql8。我打算用它来当作主数据库,故应用sc delete mysql8先删除掉,之前为主数据库注册一个容易记住的新名称。
进入F:mysqlmysql-8.0.20-winx64bin目录下执行:
mysqld --install MySQL8-master
同样的F:mysqlmysql-8.0.20-winx64-2bin目录下执行:
mysqld --install MySQL8-slave
3、开启主从同步
1、首先进入master,创立一个给slave的拜访账号
账号admin01,明码admin123456
CREATE USER admin01@'%' IDENTIFIED WITH 'mysql_native_password' BY 'admin123456';GRANT REPLICATION SLAVE ON *.* TO admin01@'%';FLUSH PRIVILEGES;
2、查看master的状态:
show master status\G;
File的值为mysql-bin.000004。这个值能够在my.ini中指定:log_bin-index=master-bin.index,没有指定的话则由零碎主动生成。
3、登录slave从库,进入mysql后输出以下指令,用于从库设置主库的连贯信息:
CHANGE MASTER TOMASTER_HOST='192.168.0.212',MASTER_PORT=3307,MASTER_USER='admin01',MASTER_PASSWORD='admin123456',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=832;
阐明:
MASTER_HOST:主数据库的主机ip
MASTER_PORT:主数据库的端口,不设置则默认是3306
MASTER_USER:主数据库被授予同步复制权限的用户名
MASTER_PASSWORD:对应的用户明码
MASTER_LOG_FILE:在主数据库执行命令show master status 查问到的二进制日志文件名称
MASTER_LOG_POS:在主数据库执行命令show master status 查问到的地位 Position的值
4、开启主从同步:start slave;
查看主从同步状态:
show slave status\G;
如果呈现Slave_IO_State为Waiting for master to send event,以及Slave_IO_Running和Slave_SQL_Running为Yes,则示意从库已同步主库胜利。