linux下安装mysql和主从配置

安装mysql

卸载之前的版本

1.查看系统是否安装了mysql

yum list installed | grep mysql

2.如果有则卸载之前的版本

例如查询出来的mysql-libs.x86_64

则执行:yum -y remove mysql-libs.x86_64

3.查找相关的mysql文件并删除

查找

find / -name mysql

删除相关文件:rm -rf  [文件]

安装wget命令

yum install wget -y

若已经安装了则不管

给CentOS添加rpm源,并且选择较新的源

可以在官网上找到

这里使用

wget wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

安装下载好的rpm文件

yum install mysql80-community-release-el7-3.noarch.rpm

结果如下:

安装成功后会在/etc/yum.repos.d生成两个文件

修改mysql-community.repo文件

打开如下:

可以发现mysql8的enabled为1,其他的为0,这里使用mysql5.7所以需要修改mysql5.7enabled为1,其他为0.

安装mysql

yum install mysql-community-server -y

启动mysql服务并设置开机启动

启动之前需要生成临时密码,需要用到证书,可能证书过期,需要进行更新操作

yum update -y

启动mysql服务

service mysqld start

设置mysql开机启动

systemctl enable mysqld.service

获取mysql的临时密码

grep "password" /var/log/mysqld.log

使用临时密码登录数据库

修改密码

set global validate_password_policy=0;
set global validate_password_length=1;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

这里修改密码为123456

修改远程访问权限

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;

修改之后如果开启了防火墙则还需要配置防火墙才能进行远程访问

设置字符集为utf-8

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置

character-set-server=utf8

#在文件末尾新增[client]段,并在[client]段添加:

default-character-set=utf8

修改完之后重启服务

service mysqld restart

如果启动失败,可以查看/var/log/mysqld.log日志信息

 

启动navicat客户端

输入

show variables like '%character%'

结果如下:

mysql主从复制安装配置

首先在两台服务器上安装好数据库

在两台数据库中分别创建数据库

创建数据库,两台服务器上创建的数据库要一样

配置主服务器

1.修改配置文件/etc/my.cnf

在mysqld模块中添加如下配置信息

log-bin=master-bin #二进制文件名称
binlog-format=ROW  #二进制日志格式,有row、statement、mixed三种格式,row指的是把改变的内容复制过去,而不是把命令在从服务器上执行一遍,statement指的是在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。mixed指的是默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。
server-id=1		   #要求各个服务器的id必须不一样
binlog-do-db=xboot   #同步的数据库名称

如图配置:

2.配置从服务器登录主服务器的账号授权

--授权操作
set global validate_password_policy=0;
set global validate_password_length=1;
grant replication slave on *.* to 'root'@'%' identified by '123456';
--刷新权限
flush privileges;

从服务器的配置

1.修改配置文件/etc/my.cnf

在mysqld模块中添加如下配置信息

log-bin=master-bin	#二进制文件的名称
binlog-format=ROW	#二进制文件的格式
server-id=2			#服务器的id

配置如图:

重启主服务器的mysqld服务

1.重启mysqld服务

service mysqld restart

2.登入数据库查看master状态

登录数据库:mysql -uroot -p

查看master状态

show master status;

 

重启从服务器并进行相关配置

1.重启mysqld服务

2.登录数据库

3.连接主服务器

change master to master_host='192.168.94.142',master_user='root',master_password='123456',master_port=3306,master_log_file='master-bin.000001',master_log_pos=154;

4.启动slave

start slave;

5.查看slave的状态

这里sql没有“;”符号

show slave status\G

结果如图:

当master上数据有变化时发现从机数据也会发生变化

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值