mysql主从搭建总结
一.mysql主从数据库搭建的前提
1.mysql版本必须一致
2.改变防火墙和selinux的策略,防止测试失败
二.修改主服务器配置文件, 文件位置/etc/my.cnf
[mysqld]
datadir=/home/bymiao/lib/mysql
socket=/home/bymiao/lib/mysql/mysql.sock
lower_case_table_names=1
character_set_server=utf8
query_cache_type=1
query_cache_limit=10485760
port=3306
log-bin=/home/bymiao/mysqldata/mysql-bin //放置文件的路径随便你定,不过要记得目录的所有者必须是mysql,否则mysql会启动失败
log-bin-index=/home/bymiao/mysqldata/mysqld-bin
server-id=1 //必须要设置server-id,且在同一集群中是唯一的
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
三.修改从服务器配置文件,文件位置/etc/my.cnf
[mysqld]
…..部分省略……
log-bin=/home/bymiao/mysqldata/mysql-bin
server-id=2
四.配置完成以后所有服务器重新启动
service mysqld restart
五.在主服务器上建立授权账号
mysql> GRANT REPLICATION SLAVE ON *.* to‘master‘@‘%‘ identified by ‘123456‘;
为了安全起见,一般不用root直接授权,新建管理员账号进行授权。
六.登陆主服务器,查询master状态
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB |Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 120 | | | |
+------------------+----------+--------------+------------------+-------------------+
七.配置从服务器
1.mysql> change master to master_host=‘z主服务器的IP地址‘,master_user=‘刚主服务器授权的账号‘,master_password=‘刚主服务器授权的密码‘,master_log_file=‘mysql-bin.000002‘,master_log_pos=120; -->刚查看主服务器状态获取的文件和位置
2.配置完成后,启动从服务器复制功能 mysql> start slave;
3.查看从服务器复制状态,标注的两行出现yes字符则表示配置成功
mysql> show slave statusG
*************************** 1. row***************************
Slave_IO_State: Waiting formaster to send event
Master_Host: 192.168.1.54
Master_User: master
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 120
Relay_Log_File:mysqld-relay-bin.000003
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
配置过程中可能出现的问题:
Last_IO_Error: Fatal error: The slave I/Othread stops because master and slave have equal MySQL server UUIDs; theseUUIDs must be different for replication to work.
产生这种原因是因为两台mysql的uuid是一样的:
因为你可能是装系统的时候偷懒,另一台用的克隆出来的机器,
解决方法:进入该目录
vim /home/bymiao/lib/mysql/auto.cnf
随便改一下uuid,再重启一下数据库就行了。
八.测试
测试主从数据库是否能同步数据
测试方法:
1. 在主服务器上面创建一个库test,如有该库,去其他名字的库也可以;
2. 在从库上检查有没有该库;
有该库说明主从数据能同步,达到我们的要求,实验成功。
本文出自 “10696204” 博客,请务必保留此出处http://10706204.blog.51cto.com/10696204/1693814
原文地址:http://10706204.blog.51cto.com/10696204/1693814