Mysql数据库进阶之(分表分库,主从分离)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql数据库进阶之(分表分库,主从分离),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3696字,纯文字阅读大概需要6分钟。
内容图文
![Mysql数据库进阶之(分表分库,主从分离)](/upload/InfoBanner/zyjiaocheng/505/05a85aee537c4de4a2fb6607b4429622.jpg)
create table cakes ( id int unsigned primary key auto_increment, cakename varchar(16) )charset=utf8 partition by range(id)( #分表名称cake1000,范围是id=1 to id=999 partition cake1000 values less than(1000), #分表名称cake1000,范围是id=1000 to id=1999 partition cake2000 values less than(2000) );
说明这里通过id标识来分表,主要表格的id如果超过了规定的值就会进入下一个表格
//这个功能主要是用在表格已经生成了但是后面添加的 alter table 表名 add partition ( partition 分表名称 values less than (范围) )
//删除分表的功能
alter table 表名 drop partition 分表名称;
2.垂直分表
create table goods ( id int unsigned comment ‘不能在list分表使用索引‘, proname varchar(10) not null, source varchar(20) comment ‘原料‘, `money` varchar(10) not null, addtime datetime not null comment ‘2018-03-25 11:22:33‘ )charset=utf8 partition by list( month(addtime) )( partition spring values in(3,4,5), #春季 partition summer values in(6,7,8), #夏季 partition autumn values in(9,10,11), #秋季 partition winter values in(12,1,2) #冬季 );
//注意这里是以月份进行分表的,并且id这个字段不能为主键和唯一键索引
//这个功能主要是用在表格已经生成了但是后面添加的
alter table 表名 add partition (
partition 分表名称 values in (范围)
)
create index normal_id on goodsYear(id); //通常都是以普通键索引来做为ID
alter table 表名 drop partition 分表名称;
(三)
如果希望当前服务器被其他服务器访问就需要使用 Grant 用户授权技术 //授权语句 GRANT ALL PRIVILEGES ON *.* TO ‘授权用户名‘@‘被授权服务器的IP‘ IDENTIFIED BY ‘授权密码‘; //立即生效 FLUSH PRIVILEGES;
//如果授权成功效果,通过命令查看mysql中的系统用户表:
select host,user from mysql.user where user=授权用户名
//测试是否能在别的服务器访问本服务器的数据库
mysql -u授权的用户名 -p授权的密码 -h访问的主机
(四)
-
-
show master status : 该函数主要查看用于Master数据库正在使用的binlog日志情况
-
show slave status \G: 该函数主要用于Slave数据库是否已经同步
以上函数如果不用于主从复制和读写分离的配置当中,等同没用
(五)读写分离和主从复制
1.主从首要条件:①关闭 selinux ②关闭 iptables ③ master 已经对 slave 进行 grant 授权
create database php32 charset utf8; 在 master 服务器中开启 binlog 日志和设置要发生主从同步数据库(my.cnf) #mysql的bin-log 日志配置选项,假设 做读写(主从)分离,这个选项在从服务器必须关闭 log-bin=mysql-bin #1.主服务器的id,这个 id 不一定设为 1,只要主从不一样就行 server-id=1 #2.要做同步的数据库名字,可以是多个数据库,之间用分号分割 binlog-do-db=php32
#3.保存重启mysql
service mysqld restart
#4.显示状态(里面显示的数据用在从服务器使用)
show master status;
#从服务器
servir-id = 2 (这里只要和主服务器不同就行了)
#登录
mysql -uxxx -pxxx
#认证从服务器
change master to master_host=‘主服务器的IP地址‘,
master_port=3306,#端口
master_user=‘xxx‘,#主服务器授权的用户名
master_password=‘xxx‘,#主服务器授权的用户密码
master_log_file=‘mysql-bin.000007‘,#主服务器上的bin-log日志
master_log_pos=106;#主服务器上的 bin-log日志值
#启动主从服务
start slave;
#登录slave服务器中,查看show slave status\G,看到如下选项代表主从复制同步成功:
show slave status\G
最后注意:如果开发中写的操作发生slave当中,主从同步马上宣告失败,因此开发中,我们必须清楚 master 和 slave 服务器,slave 我们只是让它负责 select,但是 slave 是可以 insert 数据的,但是清楚风险所在.
Mysql数据库进阶之(分表分库,主从分离)
标签:停止 无法访问 signed 进阶 三范式 str 水平 小白 name
本文系统来源:https://www.cnblogs.com/learningPHP-students2018/p/10176562.html
内容总结
以上是互联网集市为您收集整理的Mysql数据库进阶之(分表分库,主从分离)全部内容,希望文章能够帮你解决Mysql数据库进阶之(分表分库,主从分离)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。