安装参考地址
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的默认配置文件路径的顺序如下:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/etc/my.cnf
~/.my.cnf
这些文件按照给定的顺序逐个进行读取,后面的文件会覆盖前面文件中相同选项的设置。默认情况下,MySQL会读取这些文件中的配置选项。
一般来说在 /etc/my.cnf 这个目录下进行配置操作
允许远程连接
要开启MySQL的远程访问,你需要执行以下步骤:
如果根据本文上述步骤安装默认的可以直接跳过 1-4 步
-
编辑MySQL配置文件:打开MySQL配置文件,通常位于
/etc/my.cnf
或/etc/mysql/my.cnf
,使用文本编辑器进行编辑。sudo vi /etc/my.cnf
-
注释绑定地址:在配置文件中找到类似于
bind-address
的行,并将其注释掉(在行前面添加#
),或者将其值设置为0.0.0.0
。这将允许MySQL接受来自任意IP地址的连接请求。#bind-address = 127.0.0.1
-
保存并关闭配置文件:保存对配置文件的修改,并关闭文本编辑器。
-
重启MySQL服务:使用适当的命令重启MySQL服务,以使配置更改生效。具体命令可能因你的Linux发行版和安装方式而异。
-
使用Systemd启动的系统:
sudo systemctl restart mysql
-
使用SysVinit启动的系统:
sudo service mysql restart
-
-
授权远程访问用户:默认情况下,MySQL仅允许本地连接。为了使远程访问生效,你需要为远程访问的用户授权。执行以下命令登录到MySQL命令行:
mysql -u root -p
替换
root
为你的MySQL用户名。 -
创建远程访问用户:使用以下命令创建允许远程访问的用户,并设置密码:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password';
将
remote_user
替换为你想要创建的用户名,password
替换为你想要设置的密码。 -
授予远程访问权限:为远程访问用户授予必要的权限。以下是授予用户所有权限的示例:
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';
如果你只需要给予特定数据库的访问权限,可以将
*.*
替换为数据库名称和表名称。 -
刷新权限:在授权后,使用以下命令刷新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_FILE
和MASTER_LOG_POS
。通常情况下,你不需要重启从节点来使更改生效。
以下是更新主从复制参数的一般步骤:
-
在从服务器上连接到 MySQL,并切换到管理员权限(例如,使用
sudo mysql
)。 -
停止复制进程,可以使用以下命令:
STOP SLAVE;
-
使用
CHANGE MASTER TO
语句更新复制参数。将MASTER_LOG_FILE
和MASTER_LOG_POS
设置为正确的值,例如:CHANGE MASTER TO MASTER_LOG_FILE = '新的日志文件名', MASTER_LOG_POS = 新的日志位置;
CHANGE MASTER TO MASTER_LOG_FILE = 'master-bin.000001', MASTER_LOG_POS = 5277;
-
启动复制进程:
START SLAVE;
更新参数后,从服务器会使用新的参数重新连接到主服务器,并从指定的位置继续复制数据变更操作。从服务器会自动追踪主服务器的二进制日志位置,无需重启从节点。
请注意,如果你在更新复制参数时出现任何错误或问题,可以检查 MySQL 错误日志以获取更多详细信息。使用以下命令可以查看错误日志的路径:
SHOW VARIABLES LIKE 'log_error';
在大多数情况下,更新主从复制参数后,从服务器应该能够继续同步数据变更操作,无需重启从节点。
上述属于简单的主从复制,并没有自动故障转移的功能,适用于商业化的小服务场景,配置简单。如果是大型项目,需要高容灾策略需要考虑高级的集群部署策略以提供故障自动转移等操作。
如:文章来源:https://www.toymoban.com/news/detail-540603.html
MySQL InnoDB Cluster
MySQL InnoDB Cluster是一种官方支持的集群解决方案,提供了更高级的功能和自动化的管理工具。文章来源地址https://www.toymoban.com/news/detail-540603.html
到了这里,关于【Mysql】Linux 安装&主从配置全流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!