mysql主从数据库学习笔记

 mysql主从数据库基本原理

1  配置master主服务器

   1.1 在Master MySQL上创建一个用户'repl',并允许其他Slave服务器可以通过远程访问Master;

//创建用户repl
create user repl;
//repl用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,
//IDENTIFIED by 表示repl的用户密码为mysql;
//对repl用户进行replication授权;
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'slave_host' IDENTIFIED BY 'mysql';

  1.2 通过命令vim /ect/my.cnf来修改mater数据库的配置文件my.cnf:

//在[mysqld]部分添加如下内容:
//给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号
server-id=1; 
//开启二进制日志  
log-bin=master-bin; 
//开启二进制日志index;
log-bin-index=master-bin.index;

  1.3   通过命令service mysqld restart 重启服务器;
          通过命令show master status查看master数据库服务状态;

2  配置slave从服务器

  2.1 通过命令vim /ect/my.cnf来修改slave数据库的配置文件my.cnf:

server-id=2
relay-log=slave-relay-bin 
relay-log-index=slave-relay-bin.index

   2.2 通过命令 /etc/init.d/mysql stop 来终止mysql服务;
         通过命令 /etc/init.d/mysql start 开启mysql服务;

3  连接master数据库服务

      3.1 重启slave数据库服务之后,连接master数据库服务;

change master to master_host='xxxx',
master_port=3306,
master_user='repl',
master_password='mysql', 
master_log_file='master-bin.000001',
master_log_pos=0;

       3.2 通过命令start slave开启slave数据库服务;
            通过命令show slave status \G 查看slave数据库服务相关的状态;
            如果有错误,可以通过命令stop slave来停止主从同步;

4 验证master-slave主从数据库是否配置好

最简单的:
分别在master/slave数据库服务上执行命令show databases查看数据库列表;
在master上通过命令create database xxxx并通过命令show databases查看数据库列表;
在slave上通过show databases查看数据库列表,查看xxxx是否同步到slave数据库服务中去;

5 实现读写分离

master数据库服务创建新账号work:
create user work;
GRANT select,insert,update,delete ON *.* TO 'work'@'%' IDENTIFIED BY 'work123' WITH GRANT OPTION;
slave数据库服务创建账号work;
create user work;
GRANT select,insert,update,delete ON *.* TO 'work'@'%' IDENTIFIED BY 'work123' WITH GRANT OPTION;

重点说明

1. slave数据库服务只能进行read操作
2. master/slave数据库服务版本:一致最好;可以不一致,但是slave的版本要高于master的版本;
因为mysql向后兼容;

相关知识补充

1 终端连接数据库命令
	mysql -uroot -proot123 -h127.0.0.1 -P3306
	其中:
	-u username
	-p password
	-h ip
	-P port;
2 导出数据和表结构:将特定数据库特定表中的数据和表格结构和数据全部返回
	mysqldump -uroot -proot123 -h127.0.0.1 -P3306 database_name > database_name.sql;
	//从本地数据库127.0.0.1端口号为3306,用户名root密码为root123的数据库database_name中导出数据和表结构;
3 文件拷贝
	scp 原文件 目标文件
4 本地数据库迁移到服务器mater数据库服务器上:把本地test数据库迁移到服务器master上去;
	使用命令mysqldump -uroot -proot123 test > test.sql;
	使用命令scp test.sql root@host:目标路径 将test.sql上传到服务器目标路径;
	使用命令登录到master数据库服务,在目标路径下使用ls查看test.sql是否上传成功;
	使用命令create database test 在服务器上创建test数据库
	使用show databases查看test数据库是否创建完成并且使用use test命令切换到test数据库;
	使用命令source 目标路径/test.sql 来引入数据库文件
	使用命令show tables查看服务器对应test数据库的表;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值