准备:服务器2台(主服务器172.16.1.200,从服务器172.16.1.201),安装ubuntu 16.04系统
1、安装mysql
sudo apt-get install mysql-server mysql-client
安装过程中输入数据库root用户密码。
2、配置远程访问。
sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
注释bind-address=127.0.0.1,保存退出。
登录mysql,设置远程访问权限。
mysql -uroot -p
grant all on *.* to root@'%' identified by '数据库密码' with grant option;
flush privileges;
退出mysql,重启mysql服务。
service mysql restart
配置Mysql主服务器(172.16.1.200)
1、修改mysql配置
sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
log-bin = /var/log/mysql/mysql-bin.log #开启二进制日志,默认是注释掉的,我们去掉注释
server-id = 1 #设置server-id,默认是注释掉的,我们去掉注释
2、保存退出后,重启mysql服务。
3、登录mysql,查询server-id值。
mysql>show variables like '%server_id%';
4、创建用于同步的账户。
mysql>CREATE USER 'slave'@'172.16.1.201' IDENTIFIED BY '数据库密码';
mysql>grant all privileges on *.* to 'slave'@'172.16.1.201';
5、查询主机状态。
show master status;
在配置从机时需要用到这两个值。
配置从服务器(172.16.1.201)
1、修改mysql配置
sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
log-bin = /var/log/mysql/mysql-bin.log #开启二进制日志,默认是注释掉的,我们去掉注释
server-id = 2 #设置server-id,默认是注释掉的,我们去掉注释
replicate_ignore_db = mysql #不同步mysql系统数据库
slave_skip_errors = all
2、保存后重启mysql服务,然后登录mysql。
mysql>change master to master_host='172.16.1.200',master_user='slave',master_password='数据库密码',master_log_file='mysql-bin.000003',master_log_pos=512;
3、开启主从同步。
start slave;
4、查询从机状态。
mysql> show slave status\G;
找到Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES才表示主从同步正常。
5、在主服务器创建一个测试数据库和数据表,创建完成后查看从服务器数据库,应自动同步创建的数据库及数据表,至此完成mysql主从同步配置