mysql8.0主从复制搭建与配置方案
作者:天山琴子 时间:2024-01-15 11:26:25
mysql主从搭建
环境:ubuntu20.04.1,mysql:8.0.22。
主:192.168.87.3
备:192.168.87.6
安装数据库
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
数据库配置
设置数据库密码
首次安装后,使用sudo mysql -uroot -p
直接进入,更改root密码操作如下:
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;
主库设置
配置/etc/mysql/mysql.conf.d/mysqld.cnf
如下:
[mysqld]
user= mysql
pid-file= /var/run/mysqld/mysqld.pid
socket= /var/run/mysqld/mysqld.sock
port= 3306
datadir= /var/lib/mysql
bind-address= 192.168.87.3 # 本机ip
mysqlx-bind-address= 127.0.0.1
key_buffer_size= 16M
myisam-recover-options = BACKUP
max_connections = 1000
log_error = /var/log/mysql/error.log
server-id= 1
log_bin= /var/log/mysql/mysql-bin.log
max_binlog_size = 100M
binlog_do_db = test
binlog_ignore_db = mysql
binlog_format = row
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
更改完后重启数据库
systemctl restart mysql.service
创建同步账号
CREATE USER 'sync'@'192.168.87.6' IDENTIFIED WITH mysql_native_password BY 'sync';
grant replication slave on *.* to 'sync'@'192.168.87.6';
192.168.87.6为从数据库的IP。
查看配置是否生效
创建数据快照
mysqldump --all-databases --master-data > dbdump.db
–master-data
这个选项会自动加上CHANGE_MASTER_TO给从机来开始复制过程。在备份时使用–databases
(备份特定的数据库)和–ignore-tables
(排除备份特定的表) 选项,各个数据库和表名之间用空格隔开。
设置远程访问
use mysql;
update user set host='%' where user = 'root';
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
如果此时仍无法访问,查看防火墙是否关闭。关闭命令:
sudo ufw disable
或者开放3306端口号。
从数据库配置
配置/etc/mysql/mysql.conf.d/mysqld.cnf
如下:
[mysqld]
user= mysql
pid-file= /var/run/mysqld/mysqld.pid
socket= /var/run/mysqld/mysqld.sock
port= 3306
datadir= /var/lib/mysql
bind-address= 192.168.87.6
mysqlx-bind-address= 127.0.0.1
key_buffer_size= 16M
myisam-recover-options = BACKUP
log_error = /var/log/mysql/error.log
server-id= 2
log_bin= /var/log/mysql/mysql-bin.log
# binlog_expire_logs_seconds= 2592000
max_binlog_size = 100M
binlog_do_db= test
binlog_ignore_db= mysql
同步数据
在主库上dump的文件scp到从库上,然后登录mysql并执行如下命令:
set sql_log_bin=0;
source /home/shitianming/Documents/dbdump.db
配置slave
CHANGE MASTER TO
MASTER_HOST='192.168.87.3',
MASTER_USER='sync',
MASTER_PASSWORD='sync',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=730;
SHELL 复制 全屏
上述参数在主库的mysql客户端上运行
show master status
可看到。
进行测试
在主库的test
数据库里添加数据,在从库上看到是否同步。
来源:https://www.cnblogs.com/shitianming/p/16739989.html
标签:mysql,主从复制
0
投稿
猜你喜欢
ADO.NET数据连接池剖析
2023-06-27 17:23:29
php for 循环语句使用方法详细说明
2023-11-17 21:43:21
Python读取excel文件中的数据,绘制折线图及散点图
2023-09-12 11:47:31
MySQL 那些常见的错误设计规范,你都知道吗
2024-01-25 18:19:36
一行两列背景自适应的简单写法 DIV+CSS
2008-07-15 12:51:00
MYSQL中有关SUM字段按条件统计使用IF函数(case)问题
2024-01-29 09:14:28
Vue中使用vee-validate表单验证的方法
2024-06-05 15:29:04
sublime text配置node.js调试(图文教程)
2023-07-04 14:07:57
go-zero源码阅读之布隆过滤器实现代码
2024-05-08 10:23:06
浅谈python内置函数callable的用法
2023-01-28 11:12:42
Python中高阶函数的小实践分享
2022-05-24 11:59:04
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
2023-06-12 21:30:21
PHP字典树(Trie树)定义与实现方法示例
2023-11-15 00:39:50
Python pandas中read_csv参数示例详解
2021-05-14 06:17:12
Python使用Beautiful Soup实现解析网页
2022-11-21 19:17:22
利用Python将多张图片合成视频的实现
2022-09-16 07:10:26
Python批量添加图片水印的实现
2021-11-04 17:53:12
Dreamweaver虚拟在线试衣室
2009-07-05 18:54:00
详解使用navicat连接远程linux mysql数据库出现10061未知故障
2024-01-24 22:12:44
详解OpenCV和PIL读取和显示图像的差异
2021-07-06 22:17:22