mysql主从库同步读写分离搭建
Posted MustangLQT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql主从库同步读写分离搭建相关的知识,希望对你有一定的参考价值。
一、说明
数据库名称 端口号 角色
mysql-m1 3320 master
mysql-s1 3321 slave1
二、免安装数据库
1、免安装mysql 下载地址:https://dev.mysql.com/downloads/mysql/ ;注意下载(mysql-8.0.20-winx64.zip)
2、本地找个位置创建文件夹分别为:mysql-m1(主)、mysql-s1(从),将解压文件夹内的文件分别拷贝到文件夹,并分别在目录下创建my.ini文件
3、my.ini文件配置 (以下的D:\\\\worksoftware\\\\mysql-zc 替换成你本地的位置)
mysql-m1:
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
log_bin = log
basedir = D:\\\\worksoftware\\\\mysql-zc\\\\mysql-m1
datadir = D:\\\\worksoftware\\\\mysql-zc\\\\mysql-m1\\\\data
port = 3320
character_set_server=utf8
server_id = 20
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
mysql-s1:
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#log_bin = log 从库可以不开启binlog
basedir = D:\\\\worksoftware\\\\mysql-zc\\\\mysql-s1
datadir = D:\\\\worksoftware\\\\mysql-zc\\\\mysql-s1\\\\data
port = 3321
character_set_server=utf8
server_id = 21
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
四、初始化mysql操作(主,从操作一样)
1、以管理员身份打开命令行窗口(组合键win+R,在打开中输入cmd,点击确定)
2、在命令行窗口中,切换至mysql-m1/bin目录下,然后执行mysqld install mysql-m1 –defaults-file="D:\\worksoftware\\mysql-zc\\mysql-m1\\my.ini",提示Service successfully installed。
3、初始化数据,执行mysqld --initialize,稍等片刻,执行成功没有任何提示。执行成功后在mysql-m1目录下多出一个data文件夹
4、启动数据库
通过服务窗体,找到数据库实例名称,点击启动。
在命令行窗口中输入:net start mysql-m1
5、重置mysql密码
在实例化mysql数据库时,系统会自动生成一个root用户密码。我们可以用记事本打开data目录下的*.err文件(*一般是计算机名),找到A temporary password is generated for root@localhost: (iQ4?Ilk2p0.
。其中“(iQ4?Ilk2p0.”就是系统默认生成的密码。
6、然后在命令行窗口下执行命令,mysql -P3320 -uroot -p,然后输入密码:(iQ4?Ilk2p0.。登录成功后,执行以下命令修改root用户密码为root(以下操作能保证在navicat正常登陆)。
ALTER USER \'root\'@\'localhost\' IDENTIFIED BY \'root\' PASSWORD EXPIRE NEVER;
alter user \'root\'@\'localhost\' identified with mysql_native_password by \'root\';
flush privileges;
7、在master库中创建slave用户
登录主库:mysql -P3320 -uroot -p123456
登录之后创建从库登陆主库账号:
create user \'test\'@\'localhost\' identified by \'test\';
GRANT REPLICATION SLAVE ON *.* to \'test\'@\'localhost\'(或者GRANT all ON *.* to \'test\'@\'localhost\')
新建test账号需要以下操作:
mysql -P3320 -uroot -proot
alter user \'test\'@\'localhost\' identified by \'test\' password expire never;
alter user \'test\'@\'localhost\' identified with mysql_native_password by \'test\';
flush privileges;
8、查看主库信息
show master status; 记录下file和position信息(log.000003和448)。
9、配置从库信息
登录从库:mysql -P3321 -uroot -proot
配置从库的mster: change master to master_host=\'127.0.0.1\',master_port=3320,master_user=\'test\',master_password=\'test\',master_log_file=\'log.000003\',master_log_pos=448;
10、从库开启数据库复制功能
start slave;
11、查看从库信息
show slave status \\G(不需要;分号结尾)
五、以上操作执行完就可以测试了,navicat登陆主从库,在主库中新建数据库,表,数据,从库同时会出现。(其他工具测试应该也没问题)
六、遇到问题解决方案
1、slave_io_running connecting 问题
参考:https://blog.csdn.net/mbytes/article/details/86711508
1、计算机丢失vcruntime140_1.dll
参考: https://blog.csdn.net/mr__sun__/article/details/104669448
2、navicat 登录不上 报1251 解决办法: cmd 管理员运行,cd到mysqlbin路径下执行以下命令
mysql -P3320 -uroot -proot
alter user \'root\'@\'localhost\' identified by \'root\' password expire never;
alter user \'root\'@\'localhost\' identified with mysql_native_password by \'root\';
flush privileges;
以上是关于mysql主从库同步读写分离搭建的主要内容,如果未能解决你的问题,请参考以下文章
Linux—Centos7.4之搭建Mysql数据库主从同步读写分离