MySQL主从实验

来源:互联网 发布:帝国仿内涵吧网源码 编辑:程序博客网 时间:2024/05/29 13:46

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张表,扩展怎么办

数据存两份

总表写一份,分表写一份,增删改和查询分开