mysql5.7.29 双机主从配置-linux环境下

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: mysql5.7.29 双机主从配置-linux环境下
说明:此处用mysql5.7.29分别在两台机器实例化安装部署。
106.13.145.174/3306(主)和39.101.213.45/3306(从)

1.分别在两台机器上安装, mysql-5.7.29解压版安装

1.1上传安装包到/usr/lcoal下

tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

1.2重命名并创建服务进程的日志文件

mv mysql-5.7.29-linux-glibc2.12-x86_64 mysql
 
cd mysql
 
mkdir log
 
mkdir data
 
echo "" > /usr/local/mysql/log/mysqld.log
 
chown -R root:root /usr/local/mysql/log/mysqld.log

1.3执行安装脚本(5.6版本的)

/usr/local/mysql/scripts/mysql_install_db --user=root --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
``
### 1.4执行安装脚本(5.7版本的)

/usr/local/mysql/bin/mysql_install_db --user=root --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

### 1.5 创建配置文件且修改配置文件
注:mysql5.7.18之后的版本没有默认的配置文件需要自己创建

直接上传找好的my.cnf文件 上传到 /etc/下面即可(此处若需要可以联系我获取)

启动前先修改

vim /usr/local/mysql/support-files/mysql.server

20210715175454836.png

找到start模块,添加--user=root到mysqld_safe 即可 增加mysql环境变量

vim /etc/profile

增加

/usr/local/mysql/bin

20210715175538624.png

保存退出Esc,:wq! 配置生效

source /etc/profile

创建自己的 mysql 服务启动脚本mysqlserver.sh,脚本内容如下:

!/bin/sh

if [ -z $1 ]; then

    echo "ERROR::you must input a name(start/restart/stop/status)"
    exit 0

fi

/usr/local/mysql/support-files/mysql.server $1


赋予脚本可执行权限(/www/shell此路径为我自己的脚本存放路径)

chmod +x /www/shell/mysqlserver.sh

启动mysql

/www/shell/mysqlserver.sh start

cd /usr/local/mysql/bin

./mysql -uroot -p

若启动有如下报错:
**ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mysql/data/mysql.sock' (2)**

先查找mysql.sock 路径

find / -name mysql.sock

发现路径在
/tmp/mysql.sock
修改配置文件中mysql.sock路径为/tmp/mysql.sock

vim /etc/my.cnf

再重启mysql服务

cd /usr/local/mysql/bin

客户端连接mysql(此处可设置环境变量使得任意处可执行mysql)

./mysql -uroot -p

Enter password:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

查看初始密码

cat /root/.mysql_secret

20210715180305312.png

mysql -uroot -p 再次登录后,设置远程登录并修改root初始密码

alter user 'root'@'localhost' identified by '123abc';

GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123abc' WITH GRANT OPTION;

flush privileges;

## 2.mysql主从配置
### 2.1设置主库(106.13.145.174)配置文件:
vim /etc/my.cnf找到[mysqld]模块增加下面内容

server_id=3306

log-output=file

slow_query_log = 1

long_query_time = 1

slow_query_log_file = /usr/local/mysql/log/slow.log

binlog_format = mixed

log-bin = /usr/local/mysql/log/mysql3306_bin

20210715180748995.png

重启数据库

/www/shell/mysqlserver.sh restart

20210715180809210.png

mysql -uroot -p

登录成功后

SHOW MASTER STATUS;

20210715180822761.png

记住File和Position的值,后面配置从库时需要的参数 mysql3306_bin.000001和154 ### 2.2设置从库(39.101.213.45)配置文件: vim /etc/my.cnf找到[mysqld]模块增加下面内容

server_id=3307

log-output=file

slow_query_log = 1

long_query_time = 1

slow_query_log_file = /usr/local/mysql/log/slow.log

binlog_format = mixed

log-bin = /usr/local/mysql/log/mysql3307_bin

和设置主库类似,wq!保存重启mysql并登录mysql -uroot -p

设置从库链接主库

change master to master_host='106.13.145.174',master_port=3306,master_user='root',master_password='123abc',master_log_file='mysql3306_bin.000001',master_log_pos=154;

运行完会有如下信息:

20210715181111285.png

start slave;

show slave status \G

20210715181200855.png

到此主从设置完毕。 ## 3.测试主从 ### 3.1登录master(106.13.145.174)主库创建test01数据库,并创建表slave_test

mysql -uroot -p

mysql> create database test01;

mysql> use test01;

mysql> create table slave_test(id int(6),name varchar(10));

mysql> insert into slave_test values(000001,'zhaoyanfei');

mysql> show tables;

20210715181424977.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
SQL 关系型数据库 MySQL
mysql主从复制概述和配置
【10月更文挑战第22天】MySQL 主从复制是一种将主服务器的数据复制到一个或多个从服务器的技术,实现读写分离,提高系统性能和可用性。主服务器记录变更日志,从服务器通过 I/O 和 SQL 线程读取并应用这些变更。适用于读写分离、数据备份和恢复、数据分析等场景。配置步骤包括修改配置文件、创建复制用户、配置从服务器连接主服务器并启动复制进程。
|
9天前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
98 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
3天前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
8 1
|
5天前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
5天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
40 3
|
5天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
37 2
|
6天前
|
Linux UED iOS开发
|
11天前
|
Ubuntu 应用服务中间件 Linux
Linux下搭建Nginx环境的搭建
Linux下搭建Nginx环境的搭建
|
9天前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
27 2
|
10天前
|
SQL 关系型数据库 MySQL
Mysql中搭建主从复制原理和配置
主从复制在数据库管理中广泛应用,主要优点包括提高性能、实现高可用性、数据备份及灾难恢复。通过读写分离、从服务器接管、实时备份和地理分布等机制,有效增强系统的稳定性和数据安全性。主从复制涉及I/O线程和SQL线程,前者负责日志传输,后者负责日志应用,确保数据同步。配置过程中需开启二进制日志、设置唯一服务器ID,并创建复制用户,通过CHANGE MASTER TO命令配置从服务器连接主服务器,实现数据同步。实验部分展示了如何在两台CentOS 7服务器上配置MySQL 5.7主从复制,包括关闭防火墙、配置静态IP、设置域名解析、配置主从服务器、启动复制及验证同步效果。
Mysql中搭建主从复制原理和配置