【知识分享】mysql 8.0 搭建主从(基于已有数据的数据库)

您所在的位置:网站首页 mysql8导入备份 【知识分享】mysql 8.0 搭建主从(基于已有数据的数据库)

【知识分享】mysql 8.0 搭建主从(基于已有数据的数据库)

2024-07-11 22:57| 来源: 网络整理| 查看: 265

MySQL 8.0 搭建主从(基于已存在数据库搭建)

MySQL 8.0 搭建主从(基于已存在数据库搭建)第一步:检查主库配置文件第二步:拷贝配置文件到从库服务器第三步:安装从库第四步:备份主库第五步:从库导入数据第六步:主库创建备份线程用户第七步:从库开启复制第八步:检查运行状况TOC

第一步:检查主库配置文件

在主库服务器操作

检查主库的配置文件中是否设置了以下参数:

#【read_only】虽然主库不需要这个参数,但可能以后会发生主从切换,会需要此参数,所以添加此参数并设置为=on,但是注释掉使其不生效 # read_only=on #【log_bin】主从复制依赖于mysql的二进制日志,开启主从复制的必要前提,需要设置这个参数 # 例子:log_bin=/dbdata/mysql3306/log/mysql-bin log_bin=参照例子 #【server_id】主从复制中各节点的身份id,主库与从库的server_id不能相同,一般设置为正整数 server_id=正整数类型,主库从库的server_id不能相同 #【relay_log】从节点回放日志存放路径,主库也需要设置,方便后期主从切换 # 例子:relay_log=/dbdata/mysql3306/log/mysql-relay-bin relay_log=参照例子 # 固定参数 gtid_mode=ON enforce-gtid-consistency=true log-slave-updates=1 relay-log-info-repository=TABLE relay_log_recovery=1 master-info-repository=TABLE binlog-format=row

如果发现配置文件中没有这些参数怎么办? 其中一部分参数支持动态修改即mysql不关机在线修改,另一部分不支持在线修改,我们先讨论可在线修改的参数

read_only,server_id,gtid_mode,enforce-gtid-consistency,relay-log-info-repository,master-info-repository,binlog-format 以上的参数支持在线动态修改,在主库不关机的情况下,可以登录mysql进行设置,设置完成后,在配置文件中添加上,保证运行时的参数和配置文件的参数设置保持一致就行。 mysql -uroot -p mysql > set global read_only=off; mysql > set global server_id=数字类型,与从库不同; mysql > set global gtid_mode=on; mysql > set global enforce-gtid-consistency=on; mysql > set global relay-log-info-repository=table; mysql > set global master-info-repository=table; mysql > set global binlog-format=row; 以下参数不支持动态修改,如果配置文件没有设置请找DBA解决,最好不要自行操作 relay_log log_bin relay_log_recovery log_slave_updates log_slave_updates 第二步:拷贝配置文件到从库服务器

主库配置文件检查无误后,直接将主库的配置文件拷贝到从库服务器,并修改与检查以下参数:

【read_only】从库不允许一般用户进行写操作,请配置read_only=on即删掉read_only=on前的“#”(取消注释)

read_only=on

【server_id】主从间的身份id,不能与主库的server_id相同,可以设置为IP地址最后两位

server_id=正整数类型,主库从库的server_id不能相同 第三步:安装从库 【保证版本相同】请选择与主库版本相同的MySQL,下载其二进制压缩包 【保证结构相同】为了保证从库与主库的高度一致,我们使其软件目录结构也一致,方便后期主从切换等一系列操作! 补充说明:以下从库设置的所有路径都是在模仿主库的设置,真实情况下,请根据自己服务器的文件路径情况进行设置。 安装步骤1 【解压压缩包 + 创建目录 + 目录授权】 对照截图右侧从库服务器执行的命令进行操作。注意!!!!下方截图中tree命令指定是只指定了3层,一般3层足以,但建议多指定几层,观察具体情况。

安装步骤2 【移动配置文件】 将修改好的从库配置文件放到对应目录,因为例子中主库的配置文件放在了/dbdata/mysql3306/下,所以此时也放在这下面 cp 修改好的从库配置文件 /dbdata/mysql3306/ # 再授权一次 chown -R mysq.mysql /dbdata/mysql3306/ 安装步骤3 【初始化】 注意!!!!此时将初始化mysql,下方的命令为非安全初始化,可以免密登录,完成后可以启动从库,但务必不要修改root密码,不要操作从库,不要对从库做任何修改 下方命令除了--basedir 和 --datadir可以根据具体情况修改,其他参数不需要修改 /dbdata/mysql3306/bin/mysqld --initialize-insecure --lower_case_table_names=1 --user=mysql --basedir=/dbdata/mysql3306 --datadir=/dbdata/mysql3306/data

安装步骤4 【配置systemctl】 使用systemctl start mysqld即可启动 ExecStart和ExecStop中的路径要写清楚,改成你服务器上对应的路径。 cat > /etc/systemd/system/mysqld.service /etc/profile.d/mysql.sh source /etc/profile 安装步骤6 【客户端连接配置】 mysql -uroot命令,会去默认路径找socket文件连接数据库,如果我们自己指定了socket路径,需要人为在/etc/下添加my.cnf文件指明socket文件路径 cat > /etc/my.cnf 备份文件名.sql

将数据库备份发给从库服务器

scp 备份文件名.sql root@从库服务器:/tmp/ 第五步:从库导入数据

在从库服务器操作

如果数据库没有启动,请启动数据库,启动后不要做任何操作!!!

systemctl start mysqld

导入备份数据,此时从库还是非安全初始化后的状态,不需要输出密码也可以导入数据

mysql -uroot < /tmp/备份文件名.sql

导入完成后,保留当前会话窗口不要关闭,等待后续操作

第六步:主库创建备份线程用户

在主库服务器操作

登录主库mysql

mysql -uroot -p密码

创建用户

mysql > create user repl@'从库IP' identified with mysql_native_password by '对应的密码'; mysql > grant replication slave on *.* to repl@'从库IP'; mysql > flush privileges; 第七步:从库开启复制

在从库服务器操作

登录从库mysql,因为是非安全初始化,可以免密登录mysql

mysql -uroot

配置主从连接信息

mysql > CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repl',MASTER_PASSWORD='复制用户对应的密码', MASTER_PORT=3306, MASTER_AUTO_POSITION=1;

开启复制线程

mysql > start slave; 第八步:检查运行状况

运行截图上的命令,对照框起来的相应ID,号码是否相同,是否出现两个yes

来自为知笔记(Wiz)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3