mysql主从方案的实现-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 6315216
  • 博文数量: 162
  • 博客积分: 3600
  • 博客等级: 中校
  • 技术积分: 10366
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-19 11:23
个人简介

专注系统运维、网络架构,研究技术凯发app官方网站的解决方案,记录我的思想轨迹、工作学习、生活和关注的领域

文章分类
文章存档

2014年(2)

2013年(16)

2012年(27)

2011年(117)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: mysql/postgresql

2012-06-12 09:45:15

mysql主从方案介绍

mysql主从方案主要作用:

读写分离,使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。

发扬不同表引擎的优点。目前myisam表的查询速度比innodb略快,而写入并发innodbmyisam要好。那么,我们可以使用innodb作为master,处理高并发写入,使用master作为slave,接受查询。或在myisam slave中建立全文索引,解决innodb无全文索引的弱点。

热备,slavemaster的数据准实时同步。

准备工作。先分别安装两台mysql

系统环境:

osrhel5.4

主:192.168.10.197

从:192.168.10.198

1、mysql 的安装这里就不介绍了,详见安装文档。

2、my.cnf配置

a、配置master

点击(此处)折叠或打开

  1. [client]

  2. port = 3306

  3. socket = /tmp/mysql.sock

  4. [mysqld]

  5. port = 3306

  6. socket = /tmp/mysql.sock

  7. basedir=/usr/local/mysql

  8. datadir=/home/mysqldata

  9. log-slow-queries=slow_query.txt

  10. log-bin=mysql-bin197

  11. long_query_time=2

  12. skip-locking

  13. skip-name-resolve

  14. skip-innodb

  15. bind-address=192.168.10.197

  16. max_allowed_packet = 256m

  17. query_cache_size=256m

  18. max_connections=2000

  19. max_connect_errors=10000

  20. key_buffer_size=6000m

  21. read_buffer_size=32m

  22. read_rnd_buffer_size = 32m

  23. myisam_sort_buffer_size=256m

  24. tmp_table_size=512m

  25. old-passwords

  26. interactive_timeout=60

  27. wait_timeout=60

  28. connect_timeout=120

  29. table_cache=8192

  30. thread_cache_size=256

  31. sort_buffer_size=64m

  32. back_log = 500

  33. thread_concurrency=32

  34. server-id=1

  35. log-bin=mysql-bin240

  36. binlog-do-db=phpcmsv9

  37. binlog-ignore-db=mysql

  38. expire_logs_days=10

  39. [mysqldump]

  40. quick

  41. max_allowed_packet = 1024m

  42. [mysql]

  43. no-auto-rehash

  44. [isamchk]

  45. key_buffer = 1024m

  46. sort_buffer_size = 32m

  47. read_buffer = 2m

  48. write_buffer = 2m

  49. [myisamchk]

  50. key_buffer = 1024m

  51. sort_buffer_size = 32m

  52. read_buffer = 2m

  53. write_buffer = 2m

  54. [mysqlhotcopy]

  55. interactive-timeout

注释:红色是修改的部分。

其中,作为主机,server-id必须为1.

binlog_do_db为需要复制的db。 binlog_ignore_db为忽略复制的db。需要增加db的话,就增加相应的一行。

重启master数据库,运行检查:

点击(此处)折叠或打开

  1. mysql> show master status; #检查是否以master形式启动了。

  2. --------------------- ---------- -------------- ------------------

  3. | file | position | binlog_do_db | binlog_ignore_db |

  4. --------------------- ---------- -------------- ------------------

  5. | mysql-bin240.000001 | 2342775 | phpcmsv9 | mysql |

  6. --------------------- ---------- -------------- ------------------

  7. 1 row in set (0.00 sec)

  8. mysql> show variables like "%log%";

#需要看到这样的一行,说明binlog已经开启了: log_bin | on

master上为slave建立用户

点击(此处)折叠或打开

  1. mysql> grant replication slave, reload, super on *.* to 'backup'@'192.168.10.198' identified by '123';
这样,主机配置完毕。
b
slave配置

点击(此处)折叠或打开

  1. [client]

  2. port = 3306

  3. socket = /tmp/mysql.sock

  4. [mysqld]

  5. port = 3306

  6. socket = /tmp/mysql.sock

  7. basedir=/usr/local/mysql

  8. datadir=/home/mysqldata

  9. log-slow-queries=slow_query.txt

  10. log-bin=mysql-bin198

  11. long_query_time=2

  12. skip-locking

  13. bind-address=192.168.10.198

  14. skip-name-resolve

  15. skip-innodb

  16. max_allowed_packet = 256m

  17. query_cache_size=256m

  18. max_connections=2000

  19. max_connect_errors=10000

  20. key_buffer_size=6000m

  21. read_buffer_size=32m

  22. read_rnd_buffer_size = 32m

  23. myisam_sort_buffer_size=256m

  24. tmp_table_size=512m

  25. old-passwords

  26. interactive_timeout=60

  27. wait_timeout=60

  28. connect_timeout=120

  29. table_cache=8192

  30. thread_cache_size=256

  31. sort_buffer_size=64m

  32. back_log = 500

  33. thread_concurrency=8

  34. server-id=2

  35. master-host=192.168.10.197

  36. master-user=backup

  37. master-password=123

  38. master-port=3306

  39. replicate-do-db=phpcmsv9

  40. replicate-ignore-db=mysql

  41. master-connect-retry=60

  42. expire_logs_days=10

  43. [mysqldump]

  44. quick

  45. max_allowed_packet = 1024m

  46. [mysql]

  47. no-auto-rehash

  48. [isamchk]

  49. key_buffer = 1024m

  50. sort_buffer_size = 32m

  51. read_buffer = 2m

  52. write_buffer = 2m

  53. [myisamchk]

  54. key_buffer = 1024m

  55. sort_buffer_size = 32m

  56. read_buffer = 2m

  57. write_buffer = 2m

  58. [mysqlhotcopy]

  59. interactive-timeout

注释:红色部分为修改的地方

1.启动主服务器和从服务器服务,在从服务器192.168.17.2上使用命令slave start启动复制;

2.随便使用命令show slave status;

如果出现主从复制报错了

点击(此处)折叠或打开

  1. mysql> show slave status \g;

  2. *************************** 1. row ***************************

  3. slave_io_state: connecting to master

  4. master_host: 192.168.10.197

  5. master_user: backup

  6. master_port: 3306

  7. connect_retry: 60

  8. master_log_file: mysql-bin240.000001

  9. read_master_log_pos: 2342431

  10. relay_log_file: localhost-relay-bin.000001

  11. relay_log_pos: 4

  12. relay_master_log_file: mysql-bin240.000001

  13. slave_io_running: no

  14. slave_sql_running: yes

  15. replicate_do_db: phpcmsv9

  16. replicate_ignore_db: mysql

  17. replicate_do_table:

  18. replicate_ignore_table:

  19. replicate_wild_do_table:

  20. replicate_wild_ignore_table:

  21. last_errno: 0

  22. last_error:

  23. skip_counter: 0

  24. exec_master_log_pos: 2342431

  25. relay_log_space: 106

  26. until_condition: none

  27. until_log_file:

  28. until_log_pos: 0

  29. master_ssl_allowed: no

  30. master_ssl_ca_file:

  31. master_ssl_ca_path:

  32. master_ssl_cert:

  33. master_ssl_cipher:

  34. master_ssl_key:

  35. seconds_behind_master: null

  36. master_ssl_verify_server_cert: no

  37. last_io_errno: 1130

  38. last_io_error: error connecting to master 'backup@192.168.10.197:3306' - retry-time: 60 retries: 86400

  39. last_sql_errno: 0

  40. last_sql_error:

  41. 1 row in set (0.00 sec)

  42. error:

  43. no query specified

这是由于master没有赋予权限的关系

3在从服务器192.168.17.2运行slave stop;停止复制命令

4输入

点击(此处)折叠或打开

  1. mysql>change master to master_host='192.168.15.197', master_port=3306, master_user='backup', master_password='123', master_log_file=’mysql-bin240.000001';, master_log_pos=2342775;

5然后重新启动slave start 命令后

点击(此处)折叠或打开

  1. mysql> show slave status \g;

  2. *************************** 1. row ***************************

  3. slave_io_state: waiting for master to send event

  4. master_host: 192.168.10.197

  5. master_user: backup

  6. master_port: 3306

  7. connect_retry: 60

  8. master_log_file: mysql-bin240.000001

  9. read_master_log_pos: 2342775

  10. relay_log_file: localhost-relay-bin.000002

  11. relay_log_pos: 598

  12. relay_master_log_file: mysql-bin240.000001

  13. slave_io_running: yes

  14. slave_sql_running: yes

  15. replicate_do_db: phpcmsv9

  16. replicate_ignore_db: mysql

  17. replicate_do_table:

  18. replicate_ignore_table:

  19. replicate_wild_do_table:

  20. replicate_wild_ignore_table:

  21. last_errno: 0

  22. last_error:

  23. skip_counter: 0

  24. exec_master_log_pos: 2342775

  25. relay_log_space: 757

  26. until_condition: none

  27. until_log_file:

  28. until_log_pos: 0

  29. master_ssl_allowed: no

  30. master_ssl_ca_file:

  31. master_ssl_ca_path:

  32. master_ssl_cert:

  33. master_ssl_cipher:

  34. master_ssl_key:

  35. seconds_behind_master: 0

  36. master_ssl_verify_server_cert: no

  37. last_io_errno: 0

  38. last_io_error:

  39. last_sql_errno: 0

  40. last_sql_error:

  41. 1 row in set (0.00 sec)

  42. error:

  43. no query specified

在从库192.168.17.2 select查询,发现后面插入的两条语句已经同步过来了,随后继续插入测试没有发现问题。

阅读(32096) | 评论(0) | 转发(6) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图