MySQL和Oracle的区别,MySQL函数 MySQL和Oracle之间的差异
从t _ base _ vehicle a inner join t _ base _ vehicle _ location b on a . SN=b . SN中选择a.id vehid,a .
顺晟科技
2021-07-06 13:32:18
60
docker pull mysql:5.7 # 启动master docker run -itd --name=mysql-master -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 # 启动 slave docker run -itd --name=mysql-slave -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
这样两台mysql主机已经部署完成,查看详情master : docker inspect mysql-master
docker exec -it mysql-master /bin/bash
# 修改位于 /etc/mysql/my.cnf 的配置,加入一下内容。需要安装一下 vi 或者 vim [mysqld] server-id=1 #ID log-bin=mysql-bin #开启二进制日志功能
mysql -uroot -p123456 # 创建用户 CREATE USER 'slave'@'%' IDENTIFIED BY '123456'; # 授权 GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%'; # 退出重启容器 docker restart mysql-master
# 修改位于 /etc/mysql/my.cnf 的配置,加入一下内容。需要安装一下 vi 或者 vim [mysqld] server-id=2 # 注意这里的id 不能重复,必须 log-bin=mysql-slave-bin # 开启二进制日志功能,可作为其他 slave主机的master relay_log=edu-mysql-relay-bin # 退出重启容器 docker restart mysql-slave
mysql -uroot -p123456 # 执行下面语句 其中 master_host 可以通过上面 docker命令查看 master主机的 IPAddress change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=0; #启动 start slave; # 然后输入命令查看详情 show slave status \G; # 如果这两个项目是 Yes 说明万事ok Slave_IO_Running: Yes Slave_SQL_Running: Yes
往 master 写入数据,通过 slave 查询数据。确实是否同步。
$master = new PDO('mysql:host=localhost:3307;dbname=test', 'root', '123456'); $master->exec("INSERT test (name) VALUES ('master')"); $slave = new PDO('mysql:host=localhost:3308;dbname=test', 'root', '123456'); $data = $slave->exec("select * from test"); var_dump($data);
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果以上任意一个参数不是Yes,那么我们可以去Last_Error
或者Last_SQL_Error
字段,比如在同步的时候 删除slave的数据,然后在去master删除同样的数据,然后Slave_SQL_Running
会变成 NO 并且会出现下面图片的错误!
提示在主库删除的记录,在从库的row中找不到。解决方法如下
STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
忽略一个错误START SLAVE;
SHWO SLAVE STATUS \G;
随即恢复,恢复后会同步master的数据!
# 查看状态 show slave status \G; show master status \G; # 停止启动IO线程 STOP SLAVE IO_THREAD; START SLAVE IO_THREAD;
以上内容仅供学习参考,真实场景下请参考mysql官方文档!下一篇文章主从复制中常见错误,以及解决方式!
28
2022-11
15
2022-09
15
2022-09
06
2021-07
25
2021-06