mysql主从配置流程如下
环境准备,准备2台服务器,安装好2个数据库192.168.226.128是主库192.168.226.130是从库主库配置
编辑主库的/etc/my.cnf 写入如下配置
[mysqld]
server-id=1log-bin=s18mysql-bin #s18mysql是日志的名字2.改了配置文件,重启数据库
systemctl restart mariadb3.登录数据库,创建一个用于远程复制数据的账户
create user'yazhou'@'%' identified by 'yazhouhao';4.授予yazhou这个账号,从库的身份
grant replication slave on*.* to 'yazhou'@'%';
#立即刷新权限表
flush privileges;5.锁住主库,防止数据写入,保证主从库数据一致,如果配置的时候没有人写入数据,可以不写 (可写可不写,如果写了,必须执行第9步进行解锁)
flush table with readlock;6.登出数据库,导出当前所有的数据,发送给从库
mysqldump-uroot -p --all-databases > /opt/all.sql7.发送这个数据给从库
scp/opt/all.sql root@192.168.226.130:/opt/ #192.168.22.130为从库ip8.登录主库数据库,查看主库的binlog状态
show master status;9.进行解锁
unlock table;
查看slave从库的配置如下:1.登录从库数据库,修改从库的配置文件/etc/my.cnf
在[mysqld]下写入如下配置
server-id=10
重启数据库 systemctl restart mariadb
2.导入主库的数据库
#导入数据的第一种方式
登出数据库,然后
mysql-uroot -p < /opt/all.sql
#导入数据的第二种方式
先登录从库mysql
然后source /opt/all.sql;3.此时主从数据库已经在同一个起始点了,开始数据同步
这是一段sql语句,在从库mysql中执行的
change master to master_host='192.168.226.128',#192.168.226.128主库的ip
master_user='yazhou', #主库授权的用户
master_password='yazhouhao',
master_log_file='s18mysql-bin.000001', #主库binlog状态信息里面的信息
master_log_pos=709; #主库binlog状态信息里面的信息4.开启从库同步(在从库mysql中输入的命令)
start slave ;5.检测是否主从成功 ,
show slave status\G
检查这2个参数
Slave_IO_Running: Yes
Slave_SQL_Running: Yes6.此时主从数据库配置完成,已经可以在主库写入数据,从库实时写入了,但是从库权限太大,不止能读主库数据,还能给从库数据库写入数据,所以需要配置读写分离(第7步)7.配置mysql主从复制,读写分离
修改从库的/etc/my.cnf 添加只读参数
在[mysqld]下面写入如下
read-only=true
8.在主库上创建一个普通用户,在从库上进行登录,查看是否可以读写数据库
create user"ywy"@"%" identified by "ywyacd";9.给这个普通用户查看数据库的权限
grantselect on *.* to ywy@"%" ;
刷新权限