mysql主从配置
主从数据库的配置
参考资料
http://blog.****.net/hguisu/article/details/7325124/
实现思路:
开两个虚拟机,一个作mysql
主服务器,一个作mysql
从服务器
问题:
开两个虚拟机会出现mysql uuid
重复的问题
拷贝的整个镜像。所以mysql
的整个data
目录也是一样的,把auto.cnf
文件也拷贝过来了,里面记录了数据库的uuid
,每个库的uuid
应该是不一样的。
解决方案:
1.查看主服务器中的mysql中uuid是否一样
show variables like "server_uuid";
2.在从服务器mysql
中查看uuid
show variables like 'server_uuid';
如果一样,查看当前mysql的文件位置show variables like 'datadir';
datadir : /var/lib/mysql/
3.使用管理员身份进入该目录
sudo -s
cd /var/lib/mysql/
mv auto.cnf auto.cnf.bk
对该文件重命名
4.重启下mysql
数据库,会自动重新生成一个uuid
sudo service mysql restart
配置主从服务器具体步骤
1.让主服务器数据库与副服务器数据库一致
1. 主服务器输入命令,备份主服务器数据
主服务器输入:
mysqldump -uroot -pmysql --all-databases --lock-all-tables > ~/master_db.sql
2. 主服务器备份文件上传到副服务器
主服务器输入:
sudo scp -r /home/python/master_db.sql [email protected]:/tmp
3. 副服务器导入数据
副服务器输入:mysql –uroot –pmysql < master_db.sql
2.配置主服务器
1. sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
2. 重启服务器
sudo service mysql restart
3. 在主服务器创建一个mysql用户用来同步数据
GRANT REPLICATION SLAVE ON . TO ‘slave’@’%’ identified by ‘slave’;
4. 在mysql中刷新权限
FLUSH PRIVILEGES;
3.配置副服务器
1. 修改副服务器配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf;
2. 重启服务器
sudo service mysql restart
3. 查看主服务信息
数据库>SHOW MASTER STATUS;
3. 连接mater(主服务器)
change master to master_host='172.16.251.132', master_user='slave', master_password='slave',master_log_file='mysql-bin.000003', master_log_pos=154;
master_host:主机地址
master_user:用户名
master_password:密码
master_log_file:前面查询到的主服务器日志文件名
master_log_pos:前面查询到的主服务器日志文件位置
4. 开启同步
start slave;
5. 查看同步状态
show slave status\G;