MySQL主从数据库搭建
一、安装步骤如下
1.my.cnf配置文件添加相关配置
配置说明:
主配置log-bin指定文件的名字
主配置service-id 默认为1
从配置service-id 不能与主重复
vim /etc/my.cnf
添加配置
log-bin=user_mysql
server-id=1
MySQL从配置my.cnf配置
添加配置
server-id=2
分别重启两台MySQL服务
service mysqld restart
2.MySQL主操作
登录MySQL服务器,回车输入密码
mysql -uroot -p
主创建备份账号并授权
mysql> create user 'repl'@'%' identified by 'test@2022';
Query OK, 0 rows affected (0.01 sec)
mysql> grant replication slave on *.* to 'repl'@'%';
Query OK, 0 rows affected (0.00 sec)
刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
主进行锁表,锁表后往主库表里添加一条数据暂时让那条数据卡住
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.01 sec)
主找到 log-bin的位置
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| user_mysql.000003 | 747 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
主备份数据(注意不能在MySQ里面dump,可以退出到根目录)
mysqldump --all-databases --master-data > dbdump.db -uroot -p
主解锁
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
3.MySQL从操作
从导入主dump的数据(使用scp密令远程复制)
scp root@ip(从数据库服务器ip):~/dbdump.db .
从执行dump下来的数据
mysql < dbdump.db -uroot -p
在从上设置主的配置
mysql> change master to
-> master_host='主服务器IP地址',
-> master_user='创建的备份授权账号',
-> master_password='密码',
-> master_log_file='主进入MySQL执行show master status查看file(例如看上文我这里是user_mysql.000003)',
-> master_log_pos='主进入MySQL执行show master status查看Position (例如看上文我这里是747)'
-> ;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)