时间:2022-10-02来源:www.pcxitongcheng.com作者:电脑系统城
环境:ubuntu20.04.1,mysql:8.0.22。
主:192.168.87.3
备:192.168.87.6
| 1 2 3 |
sudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get install libmysqlclient-dev |
首次安装后,使用sudo mysql -uroot -p直接进入,更改root密码操作如下:
| 1 2 3 |
use mysql;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';FLUSH PRIVILEGES; |
配置/etc/mysql/mysql.conf.d/mysqld.cnf如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
[mysqld]user = mysqlpid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockport = 3306datadir = /var/lib/mysqlbind-address = 192.168.87.3 # 本机ipmysqlx-bind-address = 127.0.0.1key_buffer_size = 16Mmyisam-recover-options = BACKUPmax_connections = 1000log_error = /var/log/mysql/error.logserver-id = 1log_bin = /var/log/mysql/mysql-bin.logmax_binlog_size = 100Mbinlog_do_db = testbinlog_ignore_db = mysqlbinlog_format = rowsync_binlog = 1innodb_flush_log_at_trx_commit = 1 |
更改完后重启数据库
| 1 | systemctl restart mysql.service |
创建同步账号
| 1 2 |
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。
查看配置是否生效

创建数据快照
| 1 | mysqldump --all-databases --master-data > dbdump.db |
–master-data这个选项会自动加上CHANGE_MASTER_TO给从机来开始复制过程。在备份时使用–databases(备份特定的数据库)和–ignore-tables(排除备份特定的表) 选项,各个数据库和表名之间用空格隔开。
| 1 2 3 4 |
use mysql;update user set host='%' where user = 'root';FLUSH PRIVILEGES;GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; |
如果此时仍无法访问,查看防火墙是否关闭。关闭命令:
| 1 | sudo ufw disable |
或者开放3306端口号。
配置/etc/mysql/mysql.conf.d/mysqld.cnf如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
[mysqld]user = mysqlpid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockport = 3306datadir = /var/lib/mysqlbind-address = 192.168.87.6mysqlx-bind-address = 127.0.0.1key_buffer_size = 16Mmyisam-recover-options = BACKUPlog_error = /var/log/mysql/error.logserver-id = 2log_bin = /var/log/mysql/mysql-bin.log# binlog_expire_logs_seconds = 2592000max_binlog_size = 100Mbinlog_do_db = testbinlog_ignore_db = mysql |
同步数据
在主库上dump的文件scp到从库上,然后登录mysql并执行如下命令:
| 1 2 |
set sql_log_bin=0;source /home/shitianming/Documents/dbdump.db |
配置slave
| 1 2 3 4 5 6 7 |
CHANGE MASTER TOMASTER_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数据库里添加数据,在从库上看到是否同步。
2023-10-30
windows上的mysql服务突然消失提示10061 Unkonwn error问题及解决方案2023-10-30
MySQL非常重要的日志bin log详解2023-10-30
详解MySQL事务日志redo log一、单表查询 1、排序 2、聚合函数 3、分组 4、limit 二、SQL约束 1、主键约束 2、非空约束 3、唯一约束 4、外键约束 5、默认值 三、多表查询 1、内连接 1)隐式内连接: 2)显式内连接: 2、外连接 1)左外连接 2)右外连接 四...
2023-10-30
Mysql删除表重复数据 表里存在唯一主键 没有主键时删除重复数据 Mysql删除表中重复数据并保留一条 准备一张表 用的是mysql8 大家自行更改 创建表并添加四条相同的数据...
2023-10-30