目的: 让两台mysql服务器可以互为主从提供同步服务. 优点:
步骤:
GRANT REPLICATION SLAVE ON . TO 'slave'@'%' IDENTIFIED BY 'slave'; 为slave用户赋予任何数据库中任何表上的REPLICATION SLAVE权限, 此用户可以在网络任意位置访问, 访问时以密码slave标记. 当使用的是ubuntu的时候, 需要注意一点, /etc/mysql/my.cnf配置文件下的bind-address = 127.0.0.1这一行需要注释, 不然从机在请求时是连接不到的.(我的是ubuntu, 其他版linux不知道会不会一样) 为了保证工作的步骤明细, 可以采用在配置完用户相关信息之后, 在另一台机器上以分配的用户密码连接一次, 能成功则能保证当前步骤是正确的.
编辑mysql配置文件, linux: /etc/mysql/my.cnf, windows: c:/program files/mysql/mysql 5.0/my.ini 找到[mysqld]这个标签, 在它的下面有两行 #server-id = 1 打开这两行的注释, 注意这里的server-id是服务器编号, 所以, 两台服务器上的值要设置的不一样. 比如1和2
sudo /etc/init.d/mysql restart 或者windows下在服务里重启mysql服务
在mysql命令模式下: FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; 此时请保证执行这两条命令的mysql控制台不要退出.
CHANGE MASTER TO MASTER_HOST = 'host', #另一台机器的地址 MASTER_PORT = 3306, #另一台机器的端口 MASTER_USER = 'slave',#另一台机器上第一步分配的用户名 MASTER_PASSWORD = 'slave', #另一台机器上第一步分配的密码 MASTER_LOG_FILE = 'mysql-bin.000001',#另一台机器上执行SHOW MASTER STATUS得到的文件名 MASTER_LOG_POS = 192; #另一台机器上执行SHOW MASTER STATUS得到的偏移量
START SLAVE;
SHOW SLAVE STATUS; 如果返回的结果第一列是Waiting for master to send event或者Queueing就说明配置是正确的, 当然, 还可能会有其他的信息也是正确的, 只不过我这里没有收集到...呵呵 如果有说的不合适的地方, 请拍砖. 来源:https://www./content-2-675651.html |
|