查看系统中挂载的低版本安装包 rpm -qa | grep -i mysql 卸载低版本 rpm -e mysql-5.1.71 --nodeps 安装mysql依赖包 yum -y install libaio.so.l libgcc_s.so.l yum update libstdc++-... 安装客户端 rpm -ivh Mysql-client.....rpm 安装服务端 rpm -ivh Mysql-server.....rpm 启动mysql service mysql start 查看服务状态service mysql status 连接数据库 mysql -u root -p 初始密码/root/.mysql_secret目录下的一个文件中 设置密码 set password = password('pw') 授权名称访问:grant all privileges on *.* to 'root' @'%' identified by 'wsj' 关闭服务器防火墙
下载传送门提取码 n6r3
#mysql安装 #解压 tar -zxvf mysql-5.7.31-el7-x86_64.tar.gz #修改包名 mv mysql-5.7.31-el7-x86_64 mysql5.7 #进入到目录中 cd ./mysql5.7/ #创建数据目录 mkdir data #添加用户组 groupadd mysql #创建用户组全局权限 useradd -M -g mysql -s /sbin/nologin -d /opt/mysql5.7 mysql #给用户组赋值目录权限 chown -R mysql.mysql /opt/mysql5.7/ #初始化数据库 ./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql5.7 --datadir=/opt/mysql5.7/data --console #修改/etc/my.cnf [mysqld] datadir=/opt/mysql5.7/data socket=/opt/mysql5.7/data/mysql.sock #设置密码 set password for root@localhost = password('wsj33233');
#修改主服务器 #开启二进制日志 log-bin=mysql-bin #配置服务器id server-id=1 #修改从服务 #开启二进制日志 非必须 log-bin=mysql-bin #配置服务器id server-id=2 #配置主服务器172.16.xx.xxx 开启权限连接 GRANT REPLICATION SLAVE ON *.* to 'root'@'%' identified by 'passwd'; #开通主服务器外部访问权限 grant all privileges on *.* to root@'%' identified by "passwd"; #登陆主库查看主库状态 注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化 show master status; #配置从库连接中继日志拉取主库信息 change master to master_host='172.16.xx.xxx',master_user='root',master_password='passwd',master_log_file='mysql-bin.000003',master_log_pos=36544,master_port=3307; #启动从库备份 start slave; #查看从库的复制状态 show slave status\G; #问题排错 ERROR 3021 (HY000): This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first. STOP slave; #36544 偏移量 master_host='172.16.14.108',master_user='root',master_password='passwd',master_log_file='mysql-bin.000003',master_log_pos=36544,master_port=3307; start slave; #Slave_SQL_Running: No STOP slave; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; start slave;
<!--使用mycat使用mysql主从方式--> <!--修改server.xml 设置连接mycat用户--> <user name="mycatuser" defaultAccount="true"> <property name="password">mycatpassword</property> <property name="schemas">mycat</property> <property name="defaultSchema">mycat</property> </user> <!--设置rule.xml中指定--> <!--自定义表路由规则名称,用于schema.xml中指定table--> <tableRule name="mod-long-subtest"> <rule> <!--配置表中规则字段--> <columns>c_test_id</columns> <!--配置路由规则--> <algorithm>mod-long</algorithm> </rule> </tableRule> <!--配置路由规则实现方法--> <function name="mod-long" class="io.mycat.route.function.PartitionByMod"> <!--配置主节点数,比如双主双从 如果把双主双从改成4主,那么就是4--> <property name="count">2</property> </function> <!--配置读写分离,双主双从--> <!--配置schema逻辑库名称,和server.xml中schema配置的一致 (逻辑库就是客户端连接的库名称) checkSQLschema如果为true,则过滤掉schema名称 --> <schema name="mycat" checkSQLschema="true" sqlMaxLimit="100" ><!--randomDataNode="dn1"--> <!--rule:指定不同的规则及表字段 --> <table name="t_test" dataNode="dn1,dn2" rule="mod-long" splitTableNames ="false"/> <table name="t_test_sub" dataNode="dn1,dn2" rule="mod-long-subtest" splitTableNames="false"/> </schema> <!--指定dn1的数据库信息--> <dataNode name="dn1" dataHost="localhost1" database="db_test" /> <!--指定dn2的数据库信息--> <dataNode name="dn2" dataHost="localhost2" database="db_test1" /> <!--配置dn1信息 balance="3" 0:所有读操作发送到当前可用的writeHost节点上 1:所有读操作随机发送到readHost上 2:所有读操作随机发送到writeHost或readHost 3:所有读操作发送到readHost上 writeType="0" 0:所有写操作在可用的writeHost节点上; 1:所有的写操作随机发送到readHost节点上 2:写操作随机发送到writeHost和readHost节点上 switchType="-1" slaveThreshold="100" -1:表示不自动切换 1:默认值,自动切换 2:基于mysql主从同步的状态决定是否切换 MySQL主从复制状态绑定的读写分离与切换机制,Mycat心跳机制通过检测 show slave status 中的 "Seconds_Behind_Master", "Slave_IO_Running", "Slave_SQL_Running" 三个字段来确定当前主从同步的状态以及Seconds_Behind_Master主从复制时延 --> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <!--配置心跳--> <heartbeat>select user()</heartbeat> <!--配置主节点信息--> <writeHost host="hostM1" url="172.16.xx.xx:3307" user="root" password="pw"> <!--配置从节点信息--> <readHost host="hostS1" url="172.16.xx.xx:3307" user="root" password="pw" /> </writeHost> </dataHost> <!--配置dn2信息--> <dataHost name="localhost2" maxCon="1000" minCon="10" balance="3"writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <!--配置心跳--> <heartbeat>select user()</heartbeat> <!--配置主节点信息--> <writeHost host="hostM2" url="172.16.xx.xx:3307" user="root" password="pw"> <!--配置从节点信息--> <readHost host="hostS2" url="172.16.xx.xx:3307" user="root" password="pw" /> </writeHost> </dataHost>