Linux安装mysql5.7+主从复制配置已完结

mysql概述

MysQL是一个关系型数据犀管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。

MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

Mysq是开源的,所以你不需要支付额外的费用。Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。MysQL使用标准的SQL数据语言形式。

Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C.C++、Python. Java. Perl. PHP, Eiffel. Ruby和Tc等。

Mysql对PHP有很好的支持, PHP是目前最流行的Web开发语言。MySQL支持大型数据库,支持5000万条记录的数据仓库, 32位系统表文件最大可支持4GB, 64位系统支持最大的表文件为8TB.Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。 

高级mysql必备技能

mysql内核

sql优化攻城狮

mysql服务器的优化

各种参数常量设定

查询语句优化

主从复制

软硬件升级

容灾备份

sql编程 

完整的mysql需要很深的功底

下载地址 

https://downloads.mysql.com/archives/community/

mysql5.7

我选择的是5.7.30

上图显示第一个是二进制源码包,第二个是二进制测试包,第三个是源码包。我们选择第一个
二进制版本的mysql是已经编译好的,无需 configure ,make make install 等步骤,只需配置一下即可使用,卸载也方便,直接删除即可。可以自行调整编译参数,最大化地定制安装结果。

下载之后,通过上传的方式上传到你服务器指定的目录即可
 

检查当前系统是否安装过mysql 

rpm -qa | grep -i mysql 

把软件应该放到opt目录下 为了省事我还是放到了usr/local目录下 解压 并改名方便后续操作

 tar -xvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql-5.7.30
 

 或者使用mysqladmin --version

有的话代表安装成功

查看用户和组 

cat /etc/passwd | grep mysql

cat /etc/group | grep mysql

没有则添加用户组和用户

groupadd mysql
useradd -r -g mysql mysql

创建mysq数据目录

回到根目录

赋予权限

chown mysql:mysql -R /data/mysql

 开始配置参数

vim /etc/my.cnf

然后 按 i 进入编辑模式,把下面内容复制进去

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql-5.7.30
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0

保存完退出进入下一步 初始化mysql

cd /usr/local/mysql-5.7.30/bin/

 ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-5.7.30/ --datadir=/data/mysql/ --user=mysql --initialize

启动mysql服务 ./mysql.server start

然后 查看初始密码,复制出来0

vim /data/mysql/mysql.err

连接mysql

mysql -u root -p

如果出现这个错误需要将配置文件生成的mysql.sock 移动到/var/lib/mysql 目录下再次启动就可以

安装成功之后需要修改密码

执行以下命令

 SET PASSWORD = PASSWORD('123456');
 
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
 
flush privileges;

 ok成功了

主从复制 

原理

原则

每个slave只有一个master

每个slave只能有一个唯一的服务器id

每个master可以有多个salve

复制的最大问题

网络延时

一主一从常见配置

mysql版本一致且后台以服务运行

主从配置都配置在【mysqld】下,都是小写

修改my.cnf配置文件 

主机修改my.cnf配置文件

 server-id 主服务器唯一标识,log_bin 启动MySQL二进制日志,binlog_do_db 指定记录二进制日志的数据库,binlog_ignore_db 指定不记录二进制日志的数据库。

server-id = 1 #服务器唯一标识
log_bin = master-bin #启动MySQL二进制日志
log_bin_index = master-bin.index 
#binlog_do_db = test #指定记录二进制日志的数据库
#binlog_ignore_db = mysql 指定不记录二进制日志的数据库

 从机修改my.cnf配置文件

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

 重启mysql

 ./mysql.server  restart
 

进入下一步 在主机上建立账户并授权slave 让从机以什么账号什么密码来抄主机的数据

使用主机登录mysql 执行 

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Root_Pass1' WITH GRANT OPTION;

然后

show master status;

将这三个值记录下来 

执行完之后不要在操作主服务mysql,防止主服务器状态值发生变化

在linux上从机配置需要复制的主机

change master to master_host='47.102.204.72', master_port=3306, master_user='mysql', master_password='123456', master_log_file='master-bin.00001', master_log_pos=154; 

 flush privileges;

如果之前做过同步请先停止

stop slave;

 

start slave; 启动从机配置

show s'lave status\G; 都为yes则配置成功 ,否则有可能是serverid 相同导致 需要更改下并重启服务 mysql

 说明配置成功了开始主从测试

如果有no请看我这篇文章

https://blog.csdn.net/qq_44658169/article/details/119971751

建库建表插入数据

主机建库test 

从机选择test库

 主机建表

从机查testa表

主机插入数据

从机查询 

主从配置成功

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值