分享

mysql读写分离的实现方法

 王老虎888 2013-12-10
mysql读写分离软件实现:
1:amoeba
2:MySQL proxy
3:SQL RELAY
4:其它

软件方法实现,性能和功能上并不完美,在生产中,我也没有使用过,所以不作过多的说明

我在生产中用的mysql读写分离方法是在 程序 上实现的
在线上,一般有MYSQL主和MYSQL从服务器

在MYSQL主服务器上,建立写的账号并给予相关权限(如:SELECT, INSERT, UPDATE, DELETE ),然后在程序上写个相关的类或函数,在写的时候,调用这个类或函数。
在MYSQL从服务器上,建立读的账号并给予相关权限(如:SELECT),然后在程序上写个相关的类或函数,在读的时候,调用这个类或函数。





以下内容来自老男孩linux实战培训

生产环境如何确保从库只读?

1)mysql从服务器中加入read-only参数或者在从服务器启动时加该参数。
read-only
2)忽略mysql库及information_schema库同步。
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
3)授权从库用户仅授权select权限。
4)授权案例:
a.生产环境主库用户的授权:
GRANT SELECT, INSERT, UPDATE, DELETE ON `blog`.* TO 'blog'@'10.0.0.%' identified by 'oldboy456';
b.生产环境从库用户的授权:
GRANT SELECT ON `blog`.* TO 'blog'@'10.0.0.%' identified by 'oldboy456';
说明:这里表示给10.0.0/24的用户blog管理blog数据库的所有表(*表示所有表)只读权限(SELECT),密码为oldboy456。
当然从库除了做SELECT的授权外,还可以加read-only等只读参数。


生产环境读写分离的账户设置建议

给开发人员的读写分离用户设置
主库(尽量提供写服务):blog  oldboy456  ip:10.0.0.179 port 3306
从库(仅提供读服务):  blog  oldboy456  ip:10.0.0.180 port 3306
提示:除了IP没办法修改之外,我们尽量为开发人员提供方便。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多