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;

 

posted @ 2020-06-18 09:55  MustangLQT  阅读(236)  评论(0编辑  收藏  举报