Mysql的安装和主从复制

安装mysql服务

步骤一:首先下载mysql的yum源配置 ,下载mysql的yum源

wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

步骤二:安装mysql的yum源

yum -y install mysql57-community-release-el7-11.noarch.rpm

步骤三:yum方式安装mysql

yum -y install mysql-server

步骤四:使用mysql , 

  1. 启动mysql
  2. 命令行进入mysql ,查询临时密码
    [root@server01 ~]# cat /var/log/mysqld.log| grep password
    2020-08-04T08:11:17.928665Z 1 [Note] A temporary password is generated for root@localhost: Es*QZhbOs0%(

    使用临时密码进入命令行

    mysql  -uroot -p    敲回车,输入临时密码

  3. 修改密码root密码 ,5.7要求必须修改密码 ,不修改所有命令不可以使用
    ALTER USER USER() IDENTIFIED BY '123456Admin@123';    #密码必须复杂点,否则不能修改
    mysql -uroot -pEs*QZhbOs0%;

    #给其他机器授权能够访问
    mysql
    grant all privileges on *.* to 'root'@'%' identified by '123456Admin@123' with grant option;
    flush privileges;

mysql的主从复制配置

主机配置如下:

步骤一:修改配置文件实现日志归档功能

vi /etc/my.cnf

              添加两个参数

log-bin=mybak   开启日志归档功能,日志文件名为mybak
server-id =10  集群中的唯一标识,一般使用的是ip地址的最后一位。因为主机的ip为192.168.11.100.
lower_case_table_names = 1  不区分大小写
log-slave-updates=1   让备机有操作日志的功能

从机配置如下:

步骤二:如果是从主机直接克隆过来的mysql,需要删除uuid文件 rm -rf /var/lib/mysql/auto.cnf

                 从机修改两行就可以

server-id =11  集群中的唯一标识,一般使用的是ip地址的最后一位。因为主机的ip为192.168.11.100.
lower_case_table_names = 1  不区分大小写

步骤三:都重新启动mysql ,service mysqld restart

                查看主机状态

                

步骤四:开始同步主机数据 ,下面的命令需要在从机上执行

change master to master_host='192.168.65.12',master_user='root',master_password='Es*QZhbOs0%',master_log_file='mybak.000008',master_log_pos=458;

master_host 主机的ip地址     #192.168.65.10
master_user 用户名          #数据库用户名
master_password 密码        #数据库密码
master_log_file 主机的日志文件    #对应File列
master_log_pos 日志文件的位置     #对应Position列

         然后同步数据

        

      下面的命令是查看mysql当前的进程

                show   slave   statusG

     34 #修改在配置文件中配置只读和修改默认存储引擎,重新启动mysql。
     35 default-storage-engine=MYISAM
     36 read_only=on
     37 super_read_only=on

效果: 从表不能增删改操作 ,只能读写操作

 

注:如果主从发生以下故障,则:

mysql> show slave statusG
Slave_IO_Running: Yes
Slave_SQL_Running: No
....
Seconds_Behind_Master:NULL

出现上述情况说明数据主从发生故障。

问题原因:

1、可能是主库的表,在从库中没有找到。

解决方法:

1、先停止同步:mysql>stop slave;

2、使用命令:mysql>set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

3、开启同步:mysql>start slave;

4、使用命令:mysql>show slave statusG,查看Slave_SQL_Running的值,如果不为Yes,则重复上述3步,直到为Yes

 mysql的主从复制(双主双从)

1) 步骤一:将之前的主从机器克隆一份

2) 步骤二:修改配置文件

在master1和master2上加入下面的内容

log-slave-updates=1   #此配置只在从机做主机(在主机上)的时候需要开启
加入之后,两台主机也要同步数据,设置互为备份(
change master to master_host='192.168.65.12',master_user='root',master_password='Es*QZhbOs0%',master_log_file='mybak.000008',master_log_pos=154;

3) 步骤三:测试(要以上重复步骤四

  1. 在master1上写,master2,salve1,slave2可以查询
  2. 在master上写,master1,slave1,slave2可以查询

4) 步骤三:通过keepalived实现双主双从的高可用集群

 

原文地址:https://www.cnblogs.com/cwshuo/p/13434702.html