Mysql 主从同步
mysql主从同步
- 主机win10
- 从机centos7
1、虚拟机中安装mysql
网盘链接:
https://pan.baidu.com/s/1XL5k1y9nmMReFpbaF-EAGA
提取码:yyds
- 解压到 /usr/local/
tar -xvf mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz
- 改名为mysql

- 进入到/usr/local目录下,创建用户和用户组并授权
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql ./
- 在/usr/local/msyql目录下,创建data文件夹

- 初始化数据库 要记住这一步生成的随机密码,之后要用
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
- 修改/usr/local/mysql当前目录得用户
chown -R root:root ./
chown -R mysql:mysql data

- 创建my.cnf 文件
[root@localhost mysql]# cd support-files/
[root@localhost support-files]# touch my-default.cnf
[root@localhost support-files]# chmod 777 ./my-default.cnf
[root@localhost support-files]# ll
总用量 20
-rwxrwxrwx. 1 root root 0 1月 21 18:46 my-default.cnf
-rwxr-xr-x. 1 root root 1061 9月 20 20:08 mysqld_multi.server
-rwxr-xr-x. 1 root root 2048 9月 20 20:08 mysql-log-rotate
-rwxr-xr-x. 1 root root 10576 9月 20 20:08 mysql.server
[root@localhost support-files]# cp my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? yes
- 配置my.cnf
vi /etc/my.cnf
[root@localhost support-files]# cat /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
init-connect='SET NAMES utf8'
basedir=/usr/local/mysql #根据自己的安装目录填写
datadir=/usr/local/mysql/data #根据自己的mysql数据目录填写
socket=/tmp/mysql.sock
max_connections=200 # 允许最大连接数
character-set-server=utf8 # 服务端使用的字符集默认为8比特编码的latin1字符集
default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎
- 开机自启,进入/usr/local/mysql/support-files进行设置
[root@localhost support-files]# cp mysql.server /etc/init.d/mysql
[root@localhost support-files]# chmod +x /etc/init.d/mysql
- 注册服务
[root@localhost support-files]# chkconfig --add mysql
[root@localhost support-files]# chkconfig --list mysql
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。
mysql 0:关 1:关 2:开 3:开 4:开 5:开 6:关
- 配置路径 etc/ld.so.conf 中添加 /usr/local/mysql/lib

- 配置环境变量 vi /etc/profile
//添加如下内容
#MYSQL ENVIRONMENT
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
- 更新环境变量
source /etc/profile
- 启动mysql服务
service mysql start
- 登录 密码为上面初始化时生成的随机密码
mysql -u root -p

- 修改密码
mysql> alter user 'root'@'localhost' identified by 'root123';
Query OK, 0 rows affected (0.02 sec)
- 开启允许远程登录
mysql> use mysql;
mysql> select host, user, authentication_string, plugin from user;#查看用户信息
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root'; #创建任意ip连接root用户
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; #授权root用户可以远程登陆
mysql> flush privileges;#立即生效
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123';#修改'root'@'%'用户密码
mysql> FLUSH PRIVILEGES;#立即生效
mysql> exit;#退出
[root@localhost ~]# service mysql restart #重启mysql服务
Shutting down MySQL.. SUCCESS!
Starting MySQL.. SUCCESS!
[root@localhost ~]#
- 防火墙开放3306端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent #开放3306端口
success
[root@localhost ~]# systemctl restart firewalld.service #重启防火墙
[root@localhost ~]# firewall-cmd --list-ports #查看是否开放成功
3306/tcp

2、主从配置
主机(win10)
mysql> CREATE USER ‘repl’@‘123.57.44.85’ IDENTIFIED BY ‘slavepass’;#创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl’@‘123.57.44.85’;#分配权限
mysql> flush privileges; #刷新权限
- 修改my.ini
[mysqld]
server-id=1
log-bin=mysql-bin
log-bin-index=mysql-bin.index
binlog-do-db=test
-
重启数据库
-
查看主机设置
show master status;

从机 (centos7)
- 修改 /etc/my.cnf
server-id=2
log-bin=mysql-bin
log-bin-index=mysql-bin.index
replicate-do-db=test #要同步的数据库
-
重启数据库
-
连接mysql ,连接主库 (配置的这些参数都是在上面设置过的)
mysql> change master to master_host='192.168.243.1', master_user='repl', master_password='slavepass',master_log_file='mysql-bin.000005', master_log_pos=155;
- 从机开启同步
mysql> start slave;
- 查看同步状态
msyql> show slave status \G

当两个状态都是Yes时,说明主从同步设置成功。
Slave_IO_Running 是 NO 的原因可能是:master_log_file设置不对,或者是master_log_pos设置不对。
Slave_SQL_Running 是 NO 的原因可能是:在从库上进行写操作,导致主从数据库不同步,可以进行手动同步。
注:test 就是要同步的数据库,最初应该保证两个数据库初始是一致的。
3、测试
- 在主库中新建表,并添加一行数据

- 查看从库

参考链接:https://blog.csdn.net/weixin_38898423/article/details/103473895

浙公网安备 33010602011771号