192.168.100.1主
设置权限
Grant all on*.* to user@192.168.100.2 identified by'123456';
测试从服务器是否能够登录到主服务器
./mysql-uuser-p -h192.168.100.1
设置同步权限(主)
grantreplication slave on *.* to user@192.168.100.2identified by '123456';
在主服务器导出数据
./mysqldump-uroot -p 44demo > /root/hello.sql;
ssh管道传输给从服务器
scp/root/hello.sql 192.168.100.2:/root/litianwen.sql;
在从服务器执行导入
./mysql -uroot-p 库名 < sql文件
主从服务器都执行刷新,将服务器的整个状态清零
reset master;
flush logs;
改主服务器配置文件
vi /etc/my.cnf
log-bin=mysql-bin //开启binlog
# binarylogging format - mixed recommended
binlog_format=mixed
# requiredunique id between 1 and 2^32 - 1
# defaults to 1if master-host is not set
# but will notfunction as a master if omitted
server-id = 1 、、服务器标号不能冲突
改从服务器配置文件
vi /etc/my.cnf
log-bin=mysql-bin
# binarylogging format - mixed recommended
binlog_format=mixed
# requiredunique id between 1 and 2^32 - 1
# defaults to 1if master-host is not set
# but will notfunction as a master if omitted
server-id = 2 //服务器标号改为2
重启进程
pkill mysqld
./mysqld_safe --user=mysql&
登陆查看同步信息
show slave status \G
一下两个值都为yes为配置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
同步binlog日志,如果不同步,先关闭从服务器:stop slave;再通过change master to来进行指定主服务器的相关参数,开启从服务器:start slave;
分库分表
user表变user库
写数据
用户名litianwen
数据路由
substr(0,1)得到l,检测表是否存在(表如果不存在创建后进行写入,存在则写入)
读数据
到l表中进行查询
如果单张表数据特别大
进行hash平均一次 md5('用户名');截取一位进行分表
需要解决的问题
1、有分页怎么办
如果以用户卡号或是事件来做的话,可以将几个表连在一起进行上一页下一页,搞不定总数
使用nosql单独计数,实现对某个用户的记录条件进行计数
2、原先有36张表,不够了,要扩展到1024张表,扩展怎么办
数据存两份
总表写一份,分表写一份,增删改和查询分开