【Mysql】Linux 安装&主从配置全流程

这篇具有很好参考价值的文章主要介绍了【Mysql】Linux 安装&主从配置全流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装参考地址

https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html

"EL6"指的是Enterprise Linux 6,它是基于Red Hat Enterprise Linux (RHEL) 6版本的操作系统。这里可以指 Centos6

先更新再安装

sudo yum update
sudo yum install mysql80-community-release-el8-4.noarch.rpm  
sudo yum install mysql80-community-release-el7-7.noarch.rpm
weget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

没有 weget 用

sudo curl -LO https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

安装 weget

sudo yum update
sudo yum install wget

检查 MySQL Yum 存储库是否已成功添加

yum repolist enabled | grep "mysql.*-community.*"

安装 MySql

sudo yum install mysql-community-server

启动 MySql

systemctl start mysqld		

检测状态

systemctl status mysqld

查询 root 生成密码

sudo grep 'temporary password' /var/log/mysqld.log

使用临时生成的密码登录 mysql 并修改密码

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

关于配置

MySQL的默认配置文件路径的顺序如下:

  1. /etc/my.cnf
  2. /etc/mysql/my.cnf
  3. /usr/etc/my.cnf
  4. ~/.my.cnf

这些文件按照给定的顺序逐个进行读取,后面的文件会覆盖前面文件中相同选项的设置。默认情况下,MySQL会读取这些文件中的配置选项。

一般来说在 /etc/my.cnf 这个目录下进行配置操作

允许远程连接

要开启MySQL的远程访问,你需要执行以下步骤:

如果根据本文上述步骤安装默认的可以直接跳过 1-4 步

  1. 编辑MySQL配置文件:打开MySQL配置文件,通常位于/etc/my.cnf/etc/mysql/my.cnf,使用文本编辑器进行编辑。

    sudo vi /etc/my.cnf
    
  2. 注释绑定地址:在配置文件中找到类似于bind-address的行,并将其注释掉(在行前面添加#),或者将其值设置为0.0.0.0。这将允许MySQL接受来自任意IP地址的连接请求。

    #bind-address = 127.0.0.1
    
  3. 保存并关闭配置文件:保存对配置文件的修改,并关闭文本编辑器。

  4. 重启MySQL服务:使用适当的命令重启MySQL服务,以使配置更改生效。具体命令可能因你的Linux发行版和安装方式而异。

    • 使用Systemd启动的系统:

      sudo systemctl restart mysql
      
    • 使用SysVinit启动的系统:

      sudo service mysql restart
      
  5. 授权远程访问用户:默认情况下,MySQL仅允许本地连接。为了使远程访问生效,你需要为远程访问的用户授权。执行以下命令登录到MySQL命令行:

    mysql -u root -p
    

    替换root为你的MySQL用户名。

  6. 创建远程访问用户:使用以下命令创建允许远程访问的用户,并设置密码:

    CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password';
    

    remote_user替换为你想要创建的用户名,password替换为你想要设置的密码。

  7. 授予远程访问权限:为远程访问用户授予必要的权限。以下是授予用户所有权限的示例:

    GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';
    

    如果你只需要给予特定数据库的访问权限,可以将*.*替换为数据库名称和表名称。

  8. 刷新权限:在授权后,使用以下命令刷新MySQL权限:

    FLUSH PRIVILEGES;
    

    这将使授权生效。

现在,你应该能够使用远程主机上的MySQL客户端连接到MySQL服务器了。请确保在防火墙设置中允许MySQL的端口(默认为3306)通过,以便远程主机可以访问MySQL服务器。

进行集群配置

主节点配置

#服务节点的唯一标识。需要给集群中的每个服务分配一个单独的ID
server-id=101
## 设置连接端口 
port=3306
##开启binlog
log_bin=master-bin
log_bin-index=master-bin.index
## 允许最大连接数
max_connections=200
## 允许连接失败的次数。 
max_connect_errors=10

更改配置后重启数据库

service mysqld restart

登录 mysql 给 用户分配 个replication slave 的权限。

GRANT REPLICATION SLAVE ON *.* TO 'root'@'%';
flush privileges;
#查看主节点同步状态
show master status;

配置从节点

#主库和从库需要不一致 
server-id=77 
#打开MySQL中继日志 
relay-log-index=slave-relay-bin.index 
relay-log=slave-relay-bin 
#打开从服务二进制日志 
log-bin=mysql-bin 
#使得更新的数据写进二进制日志中 
log-slave-updates=1 
# 设置3306端口 
port=3306

重启服务

service mysqld restart

进入 mysql 服务配置同步

mysql -u root -p;
CHANGE MASTER TO
  MASTER_HOST = '主服务器的IP地址',
  MASTER_USER = '复制用户的用户名',
  MASTER_PASSWORD = '复制用户的密码',
  MASTER_LOG_FILE = '主服务器当前二进制日志文件的名称',
  MASTER_LOG_POS = 主服务器当前二进制日志文件的位置;
#设置同步主节点: 
CHANGE MASTER TO MASTER_HOST='100.61.11.23', MASTER_PORT=3306, MASTER_USER='root', MASTER_PASSWORD='MyNewPass4', MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=5277,GET_MASTER_PUBLIC_KEY=1; 
#开启slave 
start slave; 
#查看主从同步状态 
show slave status; 
或者用 
show slave status \G; 
这样查看比较简洁

需要注意的是

MASTER_LOG_FILE='master-bin.000001'

MASTER_LOG_POS=544

这两个值的设置需要和你查询的一致

默认的文件在 /var/lib/mysql 这个目录,具体看配置文件

ls /var/lib/mysql

查询主节点偏移

show master status;

对于之前没有开启 binlog 的情况,可以先手动同步数据到从库,然后开启主节点 binlog 直接在最新的 pos 开始同步

还有一件事,同步时如果你住服务器有全量的 binlog,你的从库需要先建立对应主库的数据库,否则是无法同步对应的表和数据的

动态更新主从复制

在配置主从复制时,你可以通过修改从服务器的复制参数来更新MASTER_LOG_FILEMASTER_LOG_POS。通常情况下,你不需要重启从节点来使更改生效。

以下是更新主从复制参数的一般步骤:

  1. 在从服务器上连接到 MySQL,并切换到管理员权限(例如,使用sudo mysql)。

  2. 停止复制进程,可以使用以下命令:

    STOP SLAVE;
    
  3. 使用CHANGE MASTER TO语句更新复制参数。将MASTER_LOG_FILEMASTER_LOG_POS设置为正确的值,例如:

    CHANGE MASTER TO MASTER_LOG_FILE = '新的日志文件名', MASTER_LOG_POS = 新的日志位置;
    
    CHANGE MASTER TO MASTER_LOG_FILE = 'master-bin.000001', MASTER_LOG_POS = 5277;
    
  4. 启动复制进程:

    START SLAVE;
    

更新参数后,从服务器会使用新的参数重新连接到主服务器,并从指定的位置继续复制数据变更操作。从服务器会自动追踪主服务器的二进制日志位置,无需重启从节点。

请注意,如果你在更新复制参数时出现任何错误或问题,可以检查 MySQL 错误日志以获取更多详细信息。使用以下命令可以查看错误日志的路径:

SHOW VARIABLES LIKE 'log_error';

在大多数情况下,更新主从复制参数后,从服务器应该能够继续同步数据变更操作,无需重启从节点。

上述属于简单的主从复制,并没有自动故障转移的功能,适用于商业化的小服务场景,配置简单。如果是大型项目,需要高容灾策略需要考虑高级的集群部署策略以提供故障自动转移等操作。
如:

MySQL InnoDB Cluster

MySQL InnoDB Cluster是一种官方支持的集群解决方案,提供了更高级的功能和自动化的管理工具。文章来源地址https://www.toymoban.com/news/detail-540603.html

到了这里,关于【Mysql】Linux 安装&主从配置全流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux环境下Mysql8的下载、安装、主从模式搭建

      下载地址:MySQL :: Download MySQL Community Server (Archived Versions) 文件名称:mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz 先解压xz xz -d mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz 再解压tar tar -xvf mysql-8.0.17-linux-glibc2.12-x86_64.tar mkdir data groupadd mysql useradd -g mysql mysql chown -R mysql.mysql /data/mysql8 /data/mysql8是解压

    2024年02月08日
    浏览(43)
  • 华为云云服务器评测|初始化配置SSH连接 & 安装MySQL的docker镜像 & 安装redis以及主从搭建 & 7.2版本redis.conf配置文件

    1.云耀云服务器L实例初始化配置,设置密码,ssh连接; 2.安装docker,安装运行mysql容器; 3.redis镜像的拉取,创建运行容器; 4.搭建redis主从,一主一从,7.2版本的redis.conf配置文件; 设置密码,官方要求复杂一点 进行远程登陆配置 添加开放的端口 在finalShell中新建SSH连接 系统

    2024年02月10日
    浏览(44)
  • 第90讲:MySQL数据库主从复制集群原理概念以及搭建流程

    1.1.什么是主从复制集群 主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主

    2024年01月20日
    浏览(44)
  • 使用本地mysql+linux实现mysql主从同步

    1.1修改该linux配置文件 1.2重启linux的mysql 1.3使用账户密码登录linux中的mysql,查看是否配置成功 若显示有FIile和Posttion就表示注linux的主节点配置成功 注意事项: 本地的这个数据库的权限必须是管理员权限,否则会出现数据库不能进行访问,配置就会失败 2.1修改本地mysql中的 my.ini 文

    2024年02月09日
    浏览(29)
  • 配置mysql的主从同步

    添加用户 添加用户权限 显示主库状态 配置从库 启动从库 如果要重新修改配置 ,需要先停止 最后查看从库状态

    2024年02月21日
    浏览(27)
  • mysql配置主从

    1.1、先部署好两台mysql数据库,部署mysql可以查看我的文档 写文章-CSDN创作中心 2.1、主机配置 vim /etc/my.cnf 或者 vi /etc/my.cnf #增加一下配置 log-bin=mysql-bin server_id=101 #选择增加的参数 binlog-do-db= 数据库名  #需要同步的数据库 binlog-ignore-db = 数据库名  #不需要同步的数据库  重启

    2024年02月15日
    浏览(17)
  • 【MySQL】主从异步复制配置

    您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦 。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通 😁 2. 毕业设计专栏,毕业季咱们不慌忙,几百款毕业设计等你选。 ❤️ 3. Python爬虫专栏,系统性的学习

    2024年02月03日
    浏览(28)
  • mysql 主从配置

    主从同步使得数据可以从一个数据库服,务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服

    2024年02月06日
    浏览(16)
  • docker配置MySQL主从模式

    首先我们去准备一个MySQL8+,docker即可 创建MySQL数据卷目录    // 主服务器容器卷创建    mkdir -p /mydata/mysql-master/conf 创建容器并运行   这个是主的    docker run -d -p 3307:3306 --privileged=true -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql -v /mydata/mysql-master/conf

    2024年02月03日
    浏览(27)
  • docker 配置 Mysql主从集群

    Docker version 20.10.17, build 100c701 MySQL Image version: 8.0.32 Docker container mysql-master is source. mysql-replica is replication. master == source. replica == slave.名称叫法不一样而已。 Choose one of the way,与replica同步数据两种情况: source有存在的数据并且你想同步到replica,这种需要mysqldump备份source数据,

    2023年04月14日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包