mysql主从配置记录
准备工作:
主数据库:192.168.1.77
从数据库:192.168.1.78
2台机器上编译安装msyql
在主服务器上操作:
在mysql的配置文件/etc/my.cnf中有添加如下参数。
[mysqld]
log-bin=mysql-bin
#启动二进制文件
server-id=1
#服务器ID
重启mysql服务。
/etc/init.d/mysqld restart
在msyql中添加授权账号
mysql -uroot -ppy.10isp.com
#登陆到mysql
>GRANT REPLICATION SLAVE ON *.* to 'py'@'192.168.1.78' identified by '10isp';
#授权py用户密码为10isp,从ip:192.168.1.78上访问主数据库
>flush privileges;
#刷新权限
>show master status;
#查看主数据库状态
###
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 106 | | |
+------------------+----------+--------------+------------------+
###
#此处的File和Position 在从数据库上配置时需要用到
在从服务器上操作:
在mysql的配置文件/etc/my.cnf中有添加如下参数。
[mysqld]
log-bin=mysql-bin
#启动二进制文件
server-id=10
#服务器ID(和主数据库id不一样)
重启mysql服务。
/etc/init.d/mysqld restart
mysql -uroot -ppy.10isp.com
#登陆到mysql
>change master to master_host='192.168.1.77',master_port=3306,master_user='py',master_password='10isp',master_log_file='mysql-bin.000001',master_log_pos=106;
#在从数据库上配置主数据库的信息ip:192.168.1.77账号:py密码10isp
>start slave;
#开启从数据库
检查从服务器复制功能状态
>show slave status\G;
###
Slave_IO_Running: Yes
#此状态必须YES
Slave_SQL_Running: Yes
#此状态必须YES
###
#############################################
主从服务器测试:
主服务器Mysql,建立数据库,并在这个库中建表插入一条数据:
mysql> create database py;
Query OK, 1 row affected (0.00 sec)
mysql> use py;
Database changed
mysql> create table py_tb(id int(3),name char(10));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into py_tb values(001,'panyan');
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| py |
| mysql |
| test |
+--------------------+
4 rows in set (0.00 sec)
从服务器Mysql查询:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| py | #py库已经被同步了
| mysql |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> use py
Database changed
mysql> select * from py_tb;
#可以看到在主服务器上新增的具体数据
+------+------+
| id | name |
+------+------+
| 1 | panyan|
+------+------+
1 row in set (0.00 sec)
##################
记录实际运行中遇到的问题
问题1: Last_Errno: 1062
###
mysql的主从同步需要先完整转移数据
关闭主数据库的写入
FLUSH TABLES WITH READ LOCK;
然后查看当前数据库的状态
show master status;
然后从数据库开启同步
stop slave;
mysql>change master to master_host='192.168.1.250', master_user='root',
master_password='10isp.com',
master_port=3306,
master_log_file='mysql-bin.000001',
master_log_pos=00006323;
start slave;
开启主数据库的写入
unlock tables; 解锁
回到从库 查看
show slave status \G
###
问题2: 手动重启主数据库
###
mysql数据库主从
mysql主从数据库问题,如果主库重启,从库是否就自动断了?谢谢回答
建议重启的时候在从机上运行
slave stop;
主机重启完再开启从机
slave start;
###