(转)Mysql数据库读写分离配置
环境模拟
实现读写分离 减轻数据库的负荷 
主服务器  master   10.0.0.12
从服务器 slave    10.0.0.66
------------------------------------------------------------------------------------------------------------------------
配置主服务器: 在10.0.0.12服务器操作
  创建数据库
  create database mydemo;
  
1.修改配置文件
vi /etc/my.cnf
    在[mysqld] 后面添加下面的代码
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | sync_binlog=1binlog-do-db=mydemo #设置需要同步的数据库名binlog_ignore_db=mysql  #不需要同步的数据库  如果有多个不需要同步则依次列出# binlog_ignore_db=xxxx    保存退出  :wq   2. 重新启动mysql 服务器     service mysqld restart   3.进入mysql平台 设置需要同步的用户账号    create user '用户名'@'从服务器ip地址'identified by'密码'    create user 'eduask'@'10.0.0.66'identified by'test123'#创建一个从服务器用户同步到主服务器    4. 给slave 用户赋权限         grant all  on*.* to 'eduask'@'10.0.0.%'identified by'test123'     grant replication slave  on*.* to 'eduask'@'10.0.0.66'identified by'test123'允许从服务器用户远程登录    5.刷新授权表    flush privileges    6.给数据库创建测试数据库    create table userinfo(        uid  intprimary key auto_increment,        uname char(30) not null,        upwd  char(30) not null    );    insert intouserinfo (`uid`,`uname`,`upwd`) values(null,'aaa','test123')      7.退出系统       \q  exit      ------------从服务器配置完成后再操作-----------    8. 导出主服务器数据库 传递到从服务器    /usr/local/web/mysql/bin/mysqldump -uroot -ptest123 数据库名 > /home/数据库名.sql        scp  从哪里  到哪里    scp  /home/数据库名.sql  root@10.0.0.66:/home    [提示: 如果系统提示你是否远程传输 yes]    系统会提示你输入密码: test123    9.重新启动主服务器    service mysqld stop     service mysqld start    10. 进入mysql 平台      /usr/local/web/mysql/bin/mysql -uroot -ptest123       11.查询主服务器状体 master        show master status;        运行后mysql 会显示一个当前master 的服务器日志状况表,我们需要记住两个字段的值    file: mysql-bin.000006 #这是需要同步的master 的二进制文件    position:519-----------------------------------------------------------------------------------------------------------------------配置从服务器   (在 10.0.0.66)    1.进入mysql 平台     /usr/local/web/mysql/bin/mysql -uroot -ptest123    2.创建数据库    create database mydemo;    eixt    3.导入master 的数据库     /usr/local/web/mysql/bin/mysql -uroot -ptest123 数据库名 < /home/数据库名.sql    4.配置从服务器mysql 配置文件    vi /etc/my.cnf    找到 server-id=1 改成 2  (注意:server-id 必须要比master 的大 关键是不能重复)    在 [mysqld] 后面添加     replicate-do-db=mydemo  #配置需要同步的数据库名         保存文件    :wq    5.重启mysqld     service mysqld restart    6.以root用户登录mysql 平台     /usr/local/web/mysql/bin/mysql -uroot -ptest123     stop slave;     change master to  master_host='10.0.0.12', #master ip                master_user='eduask',  #master 用户名                master_password='test123', #master 密码                master_port=3306,   #master 端口                master_log_file='mysql-bin.000006', #master 需要同步的二进制                master_log_pos=519,  #master pos                master_connect_retry=60; #连接master 的时间    7.启动slave    start slave;    8. 查看是否连接同步成功        show slave status\G;          如果 SLAVE_IO_running  yes        slave_sql_running yes           这两个参数都为 yes 则表示成功 否则失败----------------------------------------------------------------------------------------------------------------------测试主从数据库同步  1.进入主服务器     /usr/local/web/mysql/bin/mysql -uroot -ptest123    use  mydemo;    insert intouserinfo(uid,uname,upwd) values(nuull,'111','222'); 2. 进入从服务器     /usr/local/web/mysql/bin/mysql -uroot -ptest123    use  mydemo;   select* fromuserinfo; 如果从服务器中有master 的数据 成功 | 
    QQ:413708116 仅作技术交流
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号