mysql配置主从
配置mysql主库
- 找到需要配置主库的mysql的配置文件my.ini ,默认安装的话,my.ini默认位置;
- 修改主库的my.ini,打开日志以及配置需要记录哪些数据库(test为本例中的数据库名,根据实际需要修改);
- 重启数据库
- 连接上mysql,执行语句查询
mysql> “show master status;”;
配置mysql从库
- 连接上mysql,执行语句配置从库需要连接的主库;
mysql> “change master to master_host=‘xxx.xxx.xxx.xxx’,master_user=‘root’,master_password=‘xxxxxx’,master_log_file=‘mysql-bin.000001’,master_log_pos=154;”
(这里master_host是主库的ip地址,还有具有相应读数据库权限的账号密码,以及之前在主库查询得到的master_log_file日志名称及master_log_pos位置) - 执行语句开启同步;
(在执行语句开启同步前,先把主库的数据库拷贝到从库,手动同步好现在的数据,之后开启同步命令以自动同步以后的数据)
mysql>“start slave;” - 执行语句查询同步状态;(只有slave_io_running和slave_sql_running同时为yes才成功,不成功时检查步骤,重新对主库执行"show master status"查询下主库的file和position值是否发生改变,若发生改变,先mysql>"stop slave;"停止同步后,重新执行第一步的change命令修改)
mysql>“show slave status;”
安装mycat
下载安装包
-
去mycat官网下载适合操作系统的安装包。(linux/win)
-
解压安装包,conf里是配置文件,bin里是启动文件
-
修改conf里面的server.xml,配置用户名及密码,还有该用户的逻辑数据库名。
-
修改conf里面的schema.xml,配置逻辑数据库的逻辑。
- balance属性
- 当balance=0 ,不开启读写分离,所有读操作都发生在当前的writeHost上
- 当balance=1 ,所有读操作都随机的发送到全部的readHost与stand by writeHost
- 当balance=2 ,所有的读操作都随机发送到所有的writeHost,readHost上
- 当balance=3 ,所有的读操作都随机发送到writeHost对应的readHost执行,其余writeHost不负担读压力
- writeType属性
- writeType=“0”, 所有写操作都发送到可用的writeHost上。
- writeType=“1”,所有写操作都随机的发送到readHost。
- writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。
- switchType属性
- -1 表示不自动切换
- 1 默认值,自动切换
- 2 基于 MySQL 主从同步状态决定是否切换,心跳语句必须为show slave status
- 3 基于 MySQL galary cluster 的切换机制(适合集群)心跳语句必须为show status like ‘wsrep%’
writeHost配置主库、readHost配置从库.balance设为1,只从从库读,writeType设为0,只写主库。schema逻辑库的dataNode和dataNode数据节点的name要对应。
- balance属性
-
双击bin下的startup_nowrap.bat启动mycat
-
使用正常的mysql连接方式连接,端口要改成8066