需求:现有两台服务器192.168.137.129和192.168.137.130;在这两台服务器之间搭建一主一从MySQL。129为主,130为从。
步骤:
-
通过 CentOS 8通过二进制安装 MySQL 的步骤在 129 和 130 服务器上安装MySQL,并且 MySQL 在外部机器能正常连接。
-
对129主数据库服务器进行操作
修改129主MySQL的配置文件
vim /usr/local/mysql/my.cnf
在 [mysqld] 下配置:server-id值要唯一不能与从数据库重复;log-bin 设置为 mysql-bin;
关闭129的MySQL服务
netstat -lnpt | grep mysql
kill -9 1045
再次打开MySQL服务, 输入你的MySQL启动命令,下面是我的启动MySQL的命令
/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf &
-
对130从数据库服务器进行操作
修改130主MySQL的配置文件
vim /usr/local/mysql/my.cnf
在 [mysqld] 下配置:server-id值要唯一不能与主数据库重复;log-bin 设置为 mysql-bin;
关闭130的MySQL服务
netstat -lnpt | grep mysql
kill -9 1640
再次打开MySQL服务, 输入你的MySQL启动命令,下面是我的启动MySQL的命令
/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf &
-
使用数据库连接工具连接129数据库
创建一个用户用于同步复制,当然也可以直接使用root用户进行主从复制,但不建议使用root用户。
create user 'repl'@'%' identified by 'password';
说明:此时创建了名为repl的用户,密码为password,% 表示任意地址都可远程登录。
给repl用户授权同步复制权限
grant replication slave on *.* to 'repl'@'%';
flush privileges;
查看主服务器的状态
show master status;
记录File和Position下的值,此时不要再操作129数据库,防止Position的值发生变化。 -
使用数据库连接工具连接130数据库
输入以下语句
change master to master_host='192.168.137.129', master_port=3306, master_user='repl', master_password='password', master_log_file='mysql-bin.000007', master_log_pos=899;
注意:- master_host 为主服务器的地址
- master_port 为MySQL端口号。
- master_user 为主服务器的用户名。
- master_password 为用户密码。
- master_log_file 为主数据库中File处的值。
- master_log_pos 为主数据库中Position处的值。
最后执行
start slave;
在小黑窗执行show slave status;可以看到从数据库的状态。
-
测试
在129主数据库中增加数据库,130也会增加对应的数据库。