欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql 主从数据库配置

程序员文章站 2024-01-23 12:33:52
...
  1. 环境准备
    Windows系统 + mysql.zip(安装包解压版)

  2. 配置多mysql数据库
    将压缩包解压到自己电脑的一个目录,D:\soft\mysql-5.5.60-winx64;
    将该目录添加到系统的环境变量path中,
    在解压的目录之中复制my-small.ini的内容,新建一个文件,
    命名为my.ini,将内容粘贴进去,目录结构如下所示:
    Mysql 主从数据库配置
    3 修改 my.ini 文件

    [client]
    port=3310 // mysql端口号
    [mysql]
    default-character-set=utf-8 //默认编码格式

    basedir = D:/Program Files/mysql-5.7.10-winx64 //mysql安装路径
    datadir = D:/Program Files/mysql-5.7.10-winx64/data //存放数据
    port = 3306
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    [client]
    port=3306
    default-character-set=utf8

    之后保存文件,打开cmd命令行窗口,注意已管理员身份运行,进入mysql的目录,即D:\soft\mysql-5.5.60-winx64
    初始化配置
    mysqld –initialize
    执行以下命令,安装mysql
    mysqld -install
    安装多个mysql 时,需要改下 端口号 和mysql的安装路径。

3 主从配置
选定一个mysql 作为主库A 另一台作为从库B
打开 主库A 的my.ini 配置文件,修改如下信息
log-bin=mysql-bin // 日志路径。这么些就行
server-id=2 // 唯一ID
// binlog-ignore-db 同步时发忽略的数据名
binlog-ignore-db=mysql ,information_schema (多个用逗号隔开)
binlog-do-db=test2 // 需要同步的数据库名

然后重启mysql服务(A)

-- 赋予从库权限帐号,允许用户在主库上读取日志,赋予127.0.0.1也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以  

命令行进入mysql ,执行以下命令
GRANT FILE ON . TO ‘root’@’127.0.0.1’ IDENTIFIED BY ‘123(自己的密码)’;
GRANT REPLICATION SLAVE ON . TO ‘root’@’127.0.0.1’ IDENTIFIED BY ‘123’;
FLUSH PRIVILEGES;
这里使用的仍是 root 用户作为同步的时候使用到的用户,可以自己设定。

重启mysql,登录mysql,显示主库信息
mysql> show master status;
显示信息如下
Mysql 主从数据库配置
这里的 File 、Position 是在配置Salve的时候要使用到的,Binlog_Do_DB表示要同步的数据库,Binlog_Ignore_DB 表示Ignore的数据库,这些都是在配置的时候进行指定的。
至此,主库配置完成。

从库 配置

从库的配置,首先也是修改配置文件:my.ini 如下:
log-bin=mysql-bin
server-id=3
binlog-ignore-db=information_schema,mysql
replicate-do-db=test2
replicate-ignore-db=mysql,information_schema //忽略的库
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
//网上说,这么设置垮裤更新时会有问题,解决方案如下。(目前没有跨库需求,忽略该问题)

原因是设置replicate_do_db或replicate_ignore_db后,MySQL执行sql前检查的是当前默认数据库,所以跨库更新语句被忽略。


可以使用replicate_wild_do_table和replicate_wild_ignore_table来代替
如
replicate_wild_do_table=test.%
或
replicate_wild_ignore_table=mysql.%
这样就可以避免出现上述问题了

配置完成后,重启mysql(B) 服务
进入Slave mysql控制台,执行:

mysql> stop slave;  #关闭Slave
mysql> change master to master_host='127.0.0.1',master_user='root',master_password='123',master_log_file='mysql-bin.000006', master_log_pos=489;

mysql> start slave;  #开启Slave

// master_log_file=’mysql-bin.000006’, master_log_pos=489; 前面查看主库A时显示的信息,一定得配置正确。
然后可以通过mysql> show slave status; 查看配置的信息:
Mysql 主从数据库配置

红色标记的 为YES 时,说明设置成功。

至此完成所有主从 配置,即可开始测试。