Mysql_安装

方式一

查看系统中挂载的低版本安装包 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 配置

<!--使用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>
上一篇:【高并发/高可用/哨兵机制/集群模式/高可用与主备切换/主从复制/断点续传】


下一篇:MySQL主从