Ubuntu搭建mysql主从。

实验环境: Ubuntu16.04 两台,mysql 5.7

本次实例为master -slave。

1)安装mysql

在Ubuntu环境中,使用apt-get install mysql-server 安装mysql。

      *1)初次使用apt-get 需要进行升级 sudo apt-get update,

      *2)apt-get安装命令若提示报错,使用ps -A |grep apt, 查看是否有相关进程在使用。)

遇y确定,安装过程中,弹窗输入密码,两次OK确认之后,安装结束。

可以通过 sudo netstat -tap | grep mysql 发现 mysql 的socket处于 listen 则安装成功。使用mysql -u root -p 进入查看 u代表登录名,p 代表密码。

2)编辑mysqld.cnf

 修改参数配置的mysql.cnf在Ubuntu变成了mysqld.cnf,默认在是在/etc/mysql/mysqld.conf.d/mysqld.cnf)下

    (1)master 库配置

在[mysqld]下面修改以下参数,不带*为非必要参数,

*user                      = mysql 
*pid-file                  = /var/run/mysqld/mysqld.pid
*socket                  = /var/run/mysqld/mysqld.sock
*port                      = 3306
*basedir                 = /usr
*datadir                  = /var/lib/mysql
*server-id             = 1   //用来唯一的标识某个数据库实例的值,数值随意,但不可以重复 
*log_bin                = /var/log/mysql/mysql-bin.log  //开启binlog
*binlog_format          =mixed  //binlog的格式,包括mixed,statement,mixed
sync_binlog             =1 // 控制bin日志刷新到磁盘,1表示表示每次事务提交,都把binlog刷新下去(最安全,高并发会影响性能);0表示MySQL不控制binlog的刷新
binlog_do_db            = ceshi //指定binlog记录ceshi数据库,多个数据库需分行添加
binlog_do_db            = ceshi2
binlog_ignore_db        = mysql  //指定binlog记录忽略的mysql数据库。

特别注意 bind-address 默认为本地地址,如果需要远程访问,则需要修改指定为从库的地址,或者直接注释掉-.-,否则后面从库同步的时候会报错,提示无法连接 (╥﹏╥)都是泪。

     

配置完成后,重启mysql 。进入后 执行 show master status \G;显示以下信息

mysql> show master status \G;                                                  

*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 712
     Binlog_Do_DB: ceshi,ceshi2
 Binlog_Ignore_DB: mysql
Executed_Gtid_Set: 
1 row in set (0.01 sec)

记下file和position值,后面从库需要,

(2)slave 端的配置

同样在[mysqld]下面

*server-id               = 2 
log_bin                 = mysql-bin
replicate_do_db         = ceshi
replicate_do_db         = ceshi2
replicate_ignore_db     = mysql

重启从库。

3 )在master 添加主从同步的账号,并授权

mysql> create user repl;
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从库ip地址' IDENTIFIED BY '密码'; // 加粗部分修改为自己的参数。
mysql> flush privileges;

4)在slave库中执行

        mysql>change master to master_host='主库ip地址',master_port=3306,master_user='repl',master_password='密码',master_log_file='mysql-bin.000001',master_log_pos=712;  

file 及pos值 即上文主库的相应值。

mysql>start slave;

mysql> show slave status \G;查看主从库状态。

如图,表示主从正常。

5)测试下。在主库建立表,数据。看从库是否同步过去。

猜你喜欢

转载自blog.csdn.net/igxuyr_/article/details/81186969