# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
MySQL数据库主从同步
<代码>主从同步:让其他数据库服务器自动同步正在提供服务的数据库服务器上的数据。 构建主从同步 (一)确保主,从数据库的数据相同 从库必须要有主库上的数据 (b)配置主服务器 启用binlog日志、server_id授权用户 (c)配置从服务器 设置server_id (主)/etc/my.cnf (mysqld) server_id=11 log-bin=master11 binlog-format="混合"/指定日志格式 # systemctl开始mysqld # mysql>格兰特复制奴隶,/指出主服务器地址 祝辞master_user=" slaveuser ",指出使用slaveuser授权用户登录主服务器 祝辞mster_password=" 123456 "/授权用户的密码 祝辞master_log_file=" master11.000001 ",指出主服务器现在的binlog日志 祝辞master_log_pos=154;/主服务器binlog日志的偏移量 #开始奴隶;/启动复制 #显示奴隶状态;/查看奴隶状态 slave_IO_running:是的/IO线程已运行 slave_SQL_running:是的/SQL线程已运行 输入输出线程:复制主主机binlog日志文件里的SQL到本机的relay-log文件里 SQL线程:执行本机relay-log文件里的SQL语句,重现主人数据操作 出现问题解决: 输入输出线程状态是不——→没有连接到主服务器上等 SQL线程状态是不——→主从数据不同步等 # ls/var/lib/mysql master.info/连接主服务器信息 relay-log.info/中继日志消息 主机名-relay-bin。xxxxxx/中继日志 主机名-relay-bin。指数中继日志索引文件 主从同步模式 一主一从 一主多从 主从从(主——从(主)- - -从)/1是2的主,2是1的从且是3的主,3是2的从 主主结构(互为主从) 主库配置文件(对所有从服务器有效) 只允许同步的库binlog_do_db=库1,库2 不允许同步的库binlog_ignore_db=库1,库2 从库配置文件 只允许同步的库replicate_do_db=库1,库2 不允许同步的库replicate_ignore_db=库1,库2 级连复制log_slave_updates # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 代码>
MySQL数据库的读写分离
<代码>为了缓解主服务器的压力,采用读写分离,即客户端进行写操作时,进入主服务器,客户端进行读操作时,进入从服务器 实现方式:maxscale软件+一主一从 (master11) (slave12) slave12是master11的从服务器 (monitor13) # rpm -ivh maxscale . . 修改配置文件/etc/maxscale.cnf (一)指定数据库服务器 (server1) (server2) (b)指定监控的数据库服务器 (c)指定读写在那些服务器之间执行 (d)定义管理服务 (e)读写分离使用的端口端口=4006 (f)管理服务使用的端口端口=4009 (g)根据配置文件,在数据库服务器上添加相应的授权用户 (master11) 在格兰特复制奴隶复制客户端*。* scalemon@“%”被“123456”; 使用scalemon用户监控读写分离服务器 在格兰特选择mysql。* saclemax@“%”被“123456”; 使用scalemax用户监控登录的用户是否是数据库的授权用户 (monitor13) maxscale——帮助 # maxscale - f/etc/maxsacle.cnf/启动服务 # netstat -lnptu | grep: 4006 maxadmin -uamdin -pmariadb -P4009 maxscale>服务器列表/列出监控的服务器 # killall maxscale/杀死进程,停止服务 验证 (宿主机254] # mysql -h292.168.4.13 -P4006 -uuser -p123456 在选择@@hostname/查看当前处于哪个数据库服务器代码>