windows与linux中的mysql配置主从

最近在给学生讲解数据库的主从配置,由于学生电脑里面装的虚拟机是linux的,但是本机的系统是windows的,所以需要用windows中的mysql与linux中的mysql进行主从配置。下面说一下主要步骤:

如果将windows中的当主机,那么配置如下(如果linux中的当主机,那么反过来配置就行):

Windows中的主机配置:

1. 首先,找到windows中mysql的配置文件路径。

使用主机的root用户登录mysql,然后在命令行输入:select @@basedir;显示的结果即为mysql配置文件的路径,找到该路径,如果有my.ini文件那么此文件即为配置文件,如果没有就创建一个。

2. 创建一个新用户用来远程连接使用:

例如此处:create user 'abc'@'%' IDENTIFIED BY '123456'

3. 授权

例如此处:GRANT ALL ON test1.* TO 'abc'@'%';

(此处假设test1数据库设置为主从配置的数据库)

4. 修改my.ini文件

在[mysqld]模块中添加以下配置:

[mysqld]

server-id = 1

log_bin = (此处写my.ini所在的文件夹路径)/mysql-bin.log

binlog_do_db = test1

binlog_ignore_db = mysql

5. 授予从机复制表权限

例如此处:GRANT REPLICATION SLAVE ON *.* TO 'abc'@'%' IDENTIFIED BY '123456';

6. 在windows的服务中重启mysql

7. 重新使用root用户登录Mysql,执行如下sql:

master status;

显示结果如下:

+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+

| mysql‐bin.000001 | 154 | test1 | mysql |

+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+

1 row in set (0.00 sec)

记住此处的file名称和position。

Linux中的从机配置:

1. 修改MySQL配置文件

sudo vi /etc/mysql.conf.d/mysqld.cnf

在[mysqld]中添加:

server‐id = 2

relay‐log = slave‐relay‐bin

relay‐log‐index = slave‐relay‐bin.index

2. 重启Slave从服务器MySQL,命令:

sudo /etc/init.d/mysql restart

3. 登录Slave从服务器,连接Master主服务器 输入以下命令:

change master to master_host = '47.93.193.110', master_port=3306, master_user='abc', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=154;

备注:master_host对应主服务器的外网IP地址,master_port对应主服务器的端口(3306),master_log_file对应show master status显示的File列:mysql‐bin.000001,master_log_pos对应Position列:154,否则有可能出现同步失败。

4. 重启mysql服务器。

5. 登录MySQL状态下,启动Slave数据同步。

start slave;

6. 最后可以查看下状态:

show slave status;

上一篇:php 的文件操作类


下一篇:Django聚合查询 orm字段及属性