经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Linux/Shell » 查看文章
Linux——配置主从数据库服务
来源:cnblogs  作者:王智刚  时间:2021/12/15 8:56:12  对本文有异议

主从数据库

Linux中,数据库服务有三种:互为主主,互为主从,一主一从(主从数据库)

互为主主:数据库时时更新
互为主从:数据库达到一定的的容量再更新
一主一从:在主数据库上面创建的,可以同步到从数据库;在从数据库上面创建的,并不可以同步到主数据库中

服务名 mariadb
协议名 mysql
进程名称 mysqld
端口号 3306

一、改主机名、写域名解析文件

前提:首先要配好网络,yum源

点击查看配置网络,yum
  1. # 配置网络
  2. # (1)虚拟交换机配置为192.168.100.0网段,网络适配器选择仅主机模式;
  3. # (2)编辑网络配置文件:
  4. [root@wzg ~]# cd /etc/sysconfig/network-scripts/
  5. [root@wzg network-scripts]# vim ifcfg-ens33
  6. #需要修改的参数为:
  7. BOOTPROTO=static
  8. ONBOOT=yes
  9. IPADDR=192.168.100.10
  10. PREFIX=24
  11. # (3)重启网络服务:
  12. [root@wzg network-scripts]# systemctl restart network
  13. # 配置yum源
  14. # (1)先进入虚拟机设置,把系统镜像连接到虚拟机的光驱上;
  15. # (2)挂载光驱里的镜像:
  16. [root@wzg ~]# mount /dev/cdrom /media/
  17. mount: /dev/sr0 is write-protected, mounting read-only
  18. # (3)修改yum源配置文件:
  19. [root@wzg ~]# cd /etc/yum.repos.d/
  20. [root@wzg yum.repos.d]# ls
  21. [root@wzg yum.repos.d]# vim local.repo
  22. [rhel]
  23. name=rhel
  24. baseurl=file:///media
  25. enabled=1
  26. gpgcheck=0
  27. # (4)清空yum源缓存并检索yum源
  28. [root@wzg yum.repos.d]# yum clean all
  29. [root@wzg yum.repos.d]# yum repolist

注意:mysql1和mysql2都要设置主机名和域名解析

  1. ################ mysql1和mysql2 ################
  2. # 主数据库改为mysql1
  3. hostnamectl set-hostname mysql1
  4. bash
  5. # 从数据库改为mysql2
  6. hostnamectl set-hostname mysql2
  7. bash
  8. ################ mysql1 ################
  9. # 做域名解析(两边都要做)
  10. vim /etc/hosts
  11. 加入:
  12. 192.168.100.10 mysql1
  13. 192.168.100.20 mysql2
  14. # 拷贝到mysql2
  15. scp /etc/hosts 192.168.100.20:/etc

二、安装服务

注意:mysql1和mysql2都要安装

  1. ################ mysql1和mysql2 ################
  2. # 安装数据库软件包
  3. yum -y install mariadb mariadb-server
  4. # 启动数据库服务
  5. systemctl start mariadb
  6. # 设置为开机自启
  7. systemctl enable mariadb

三、初始化数据库

注意:mysql1和mysql2都要初始化,并且要先启动才能初始化

  1. ################ mysql1和mysql2 ################
  2. # 初始化数据库
  3. mysql_secure_installation
  4. 回车 #默认为设置密码
  5. y #设置密码?密码设置为000000
  6. y #移除匿名用户?
  7. n #不允许root远程登录?
  8. y #移除测试数据库?
  9. y #重新加载数据库?

四、修改配置文件

分别修改mysql1和mysql2的配置文件

  1. ################ mysql1 ################
  2. # 编辑配置文件
  3. vi /etc/my.cnf
  4. 加入:
  5. [mysqld]
  6. log-bin = mysql-bin #设置为主数据库(也就是以二进制加载日志文件)
  7. server-id = 10 #根据IP的最后一个字段
  8. # 重启数据库服务
  9. systemctl restart mariadb
  10. # 配置防火墙
  11. firewall-cmd --permanent --add-service=mysql
  12. firewall-cmd --reload
  13. ################ mysql2 ################
  14. # 编辑配置文件
  15. vi /etc/my.cnf
  16. 加入:
  17. [mysqld]
  18. server-id = 20
  19. # 重启数据库服务
  20. systemctl restart mariadb

五、设置数据库权限

分别设置mysql1和mysql2的数据库权限

  1. ################ mysql1 ################
  2. # 进入数据库
  3. mysql -uroot -p000000
  4. # 设置权限(授权,复制权限)
  5. grant all privileges on *.* to root@'%' identified by "000000";
  6. grant replication slave on *.* to 'user'@'mysql2' identified by '000000';
  7. ################ mysql2 ################
  8. # 进入数据库
  9. mysql -uroot -p000000
  10. # 设置权限(从库连接主库)
  11. grant all privileges on *.* to root@'%' identified by "000000";
  12. change master to master_host='mysql1',master_user='user',master_password='000000';

六、启动从数据库

在mysql2上:

  1. ################ mysql2 ################
  2. # 启动从数据库
  3. start slave;
  4. # 查看状态
  5. show slave status\G
  6. # 可以看到Slave_SQL_Running: Yes,表示已开启从数据库

七、验证主从数据库

在mysql1上创建数据库,然后在mysql2上查看是否同步

  1. ################ mysql1 ################
  2. # 查看当前的数据库
  3. show databases;
  4. # 创建一个新的(class)库
  5. create database class;
  6. # 进入class数据库
  7. use class;
  8. # 创建一个student表
  9. create table student(ID int not null primary key,name varchar(20));
  10. # 在表中插入一条数据
  11. insert into student values(001,"wzg");
  12. ################ mysql2 ################
  13. # 查看当前的数据库(可以看到上面创建的class库)
  14. show databases;
  15. # 进入class数据库
  16. use class;
  17. # 查看class库中的表(可以看到上面创建的student表)
  18. show tables;
  19. # 查看student表的具体信息(可以看到上面插入的一条数据)
  20. select * from student;
  21. # 退出数据库quit或ctrl+C键

声明:未经许可,不得转载

原文链接:http://www.cnblogs.com/wzgwzg/p/15690547.html

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号