数据库读写分离
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了数据库读写分离,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2434字,纯文字阅读大概需要4分钟。
内容图文
![数据库读写分离](/upload/InfoBanner/zyjiaocheng/514/3324de4b09894089855b13e5da598b5b.jpg)
在工作当中有的时候会因为数据量大,导致单个数据库已经不足以支撑业务需求,因此常常将数据库的读和写的功能分离开,这样读取数据在一个数据库上,写数据在一个数据库上,就减少了单个数据库的工作,下面就描述一下具体步骤
实验环境
两台虚拟机
安装mysql mariadb mariadb-server
开启服务
systemctl start mariadb
配置远程访问的用户
mysql -uroot -p 进到数据库(root的默认密码为空所以输入命令后直接回车就行)
use mysql
GRANT ALL PRIVILEGES ON . TO ‘wl’@’%‘IDENTIFIED BY ‘123’ WITH GRANT OPTION; (设置远程登陆用户wl ,IP为本机IP 密码为123)
主数据库设置:
vim /etc/my.cnf
在[mysqld]标签下面增加以下代码:
server-id=1
log-bin=master-bin
重启服务
systemctl restart mariadb.service
mysql -uroot -p 进到数据库
在主服务器的数据库上查询主服务状态
SHOW MASTER STATUS
这里会出现日志文件的File和position,这个在后面会用的到
从数据库设置
1.用vim打开my.cnf:
vim /etc/my.cnf
2.在[mysqld]标签下面增加以下代码:
server-id=2 #这个id必须不能和主数据库相同
read-only=on #设置该数据库是只读状态
relay-log=relay-bin
重启服务
systemctl restart mariadb.service
进入到数据库
mysql -uroot -p
执行下面语句,
change master to master_host=‘192.168.0.220’,master_user=‘wl’,master_password=‘123’, master_log_file=‘master-bin.000003’,master_log_pos=2077;
(master_host:主数据库IP
master_user:主数据库所设置的远程连接用户名
master_password:主数据库所设置的远程连接密码
master_log_file=‘master-bin.000003’:所生成的二进制日志文件,在上一张图片中有显示)
master_log_pos=2077:二进制日志文件的端口号(上张图片有显示)
启动slave同步(在数据库中)
START SLAVE;
7.在slave服务器上查看slave同步的状态
show slave status\G
当图片中的内容为YES是说明两个数据库同步设置完成
你可以利用mysql工具进行测试
下图是我用mysql链接的两个数据库的图片
其中master是主数据库,slave是从数据库,两个数据库进行数据同步是根据二进制的日志文件进行的,一开始的状态两个数据库必须保持数据库名字相同,和表的名字相同,否则会出现找不到数据库的错误
出现这个错误的主要原因是因为当时的日志文件只保存了当时的数据库状态,将当下的两个数据库进行了连接,当主数据库新增加一个数据库时,从数据库无法匹配到主数据库,就出现了找不到数据库的错误
解决方法:
1 将主数据库新建的数据库删除,在原有的数据库上进行增删操作,再重新执行上面的操作
2 在从数据库中增加与主数据库相同的数据库,再重新执行上面的操作
数据库读写分离
标签:rest 完成 etc show use -o 工作 实验 user
本文系统来源:https://www.cnblogs.com/gxc888/p/11609970.html
内容总结
以上是互联网集市为您收集整理的数据库读写分离全部内容,希望文章能够帮你解决数据库读写分离所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。