在windows7下安装mysql如下版本:
一、mysql-5.7.28
二、mysql-8.0.20:主库
三、mysql-8.0.20:从库
免安装版本:https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.28-winx64.zipmysql
安装版本:https://downloads.mysql.com/archives/community/sql
我使用的是免安装版本,把文件解压出来以下路径:F:mysqlmysql-5.7.28-winx64数据库
首先在F:mysqlmysql-5.7.28-winx64路径下新建my.ini文件,内容以下:windows
[mysqld] # 设置服务端使用的字符集为utf-8 character-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 = 3306 default-character-set=utf8
注意:basedir和datadir的路径不要出现中文和空格。编码
进入F:mysqlmysql-5.7.28-winx64bin,按住Shift+右键,选择"在此处打开命令窗口",执行以下命令:spa
mysqld install
出现Service successfully installed.表示安装成功。接下来继续执行mysqld --initialize --console插件
最后的=WsstAcIc4oh是数据库的初始化密码,记住它,后面须要用到它进行密码重置。日志
继续在CMD执行以下命令:net start mysqlcode
(net stop mysql 是中止服务,sc delete mysql是删除服务)cdn
一样在bin目录下,执行mysqld -nt --install用来开机时自动启动此服务。
1.5 重置密码
一样在bin目录下,执行:
mysql -uroot -p
而后输入初始密码。
进入mysql后,执行重置密码指令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
免安装版本:https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.20-winx64.zip
下载后解压到路径:F:mysqlmysql-8.0.20-winx64
首先在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 # 服务端使用的字符集默认为UTF8 character-set-server=utf8 # 建立新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 #mysql_native_password default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [client] # 设置mysql客户端链接服务端时默认使用的端口 port=3307 default-character-set=utf8
注意:basedir和datadir的路径不要出现中文和空格。
WIN+R键输入services.msc打开服务,中止全部在运行中的Mysql服务。
进入F:mysqlmysql-8.0.20-winx64bin,按住Shift+右键,选择"在此处打开命令窗口",执行以下命令:
mysqld --initialize --console
最后的_t:KDa)PP7nV是数据库的初始化密码,记住它,后面须要用到它进行密码重置。
接下来继续执行
mysqld --install MySQL8
若出现Service successfully installed.表示安装成功。
继续在CMD执行以下命令:
net start mysql8
(net stop mysql8 是中止服务,sc delete mysql8是删除服务)
一样在bin目录下,执行
mysqld -nt --install
用来开机时自动启动此服务。
一样在bin目录下,执行:
mysql -uroot -p
而后输入初始密码。
进入mysql后,执行重置密码指令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
安装前请中止全部正在运行中的数据库服务,详见2.3操做步骤。
另外数据库的版本号尽可能保持相同,以下图,我使用mysql-8.0.20-winx64做为主数据库,mysql-8.0.20-winx64-2做为从数据。
不论是主数据库仍是从数据库,安装配置的步骤跟上面第二步安排mysql8是相似的。
Master主数据库的my.ini配置,新增以下内容:
[mysqld] # 主库配置 server_id=1log-bin=mysql-bin # 须要同步的数据库 binlog-do-db=demo
Slave从数据的my.ini配置,新增以下内容:
[mysqld]# 从库配置 server_id=2 log-bin=mysql-bin #须要同步的数据库 binlog-do-db=demo
因为是在同一个windows环境下安装多个mysql服务,故每一个mysql服务的端口号不能重复。并且my.ini配置文件里面的server_id也不能同名。
因为操做步骤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
帐号admin01,密码admin123456
CREATE USER admin01@'%' IDENTIFIED WITH 'mysql_native_password' BY 'admin123456'; GRANT REPLICATION SLAVE ON *.* TO admin01@'%'; FLUSH PRIVILEGES;
show master status\G;
File的值为mysql-bin.000004。这个值能够在my.ini中指定:log_bin-index=master-bin.index,没有指定的话则由系统自动生成。
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的值
查看主从同步状态:
show slave status\G;
若是出现Slave_IO_State为Waiting for master to send event,以及Slave_IO_Running和Slave_SQL_Running为Yes,则表示从库已同步主库成功。