mysql安装教程
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz /usr/local/
cd /usr/local/
tar -zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz
#拷贝mysql配置
cp mysql/support-files/my-default.cnf /etc/my.cnf
#启动脚本
cp mysql/support-files/mysql.server /etc/init.d/mysqld
#安装组件
yum install -y autoconf ncurses-devel libaio-devel glib
#安装mysql
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#配置环境变量
vim /etc/profile.d/mysql.sh
#文件内容
export PATH="/usr/local/mysql/bin:$PATH"
#文件内容
source /etc/profile
#启动
service mysql start
静态IP设置
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE="ens33"
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
BOOTPROTO="static"
BROADCAST="192.168.222.255"
#此处网关需要跟虚拟机的nat一样
GATEWAY="192.168.222.2"
IPADDR="192.168.222.37"
NETMASK="255.255.255.0"
ONBOOT="yes"
DNS1="114.114.114.114"
service network restart
ping baidu.com
然后克隆几台虚拟机出来,并且设置好静态IP
mysql集群模式: 主从、主主、中间件Mycat、MysqlClustor
其中主主模式可以理解为两个节点互相同步对方
vim /etc/my.cnf
#多少台mysql就设置多少个id,id不能相同
server-id = 2
在slave上同步master
mysql -uroot -p
设置备份权限
grant replication slave on *.* to 'root'@'%' identified by '123456';
#设置全部权限
#GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
SHOW MASTER STATUS;
#看上一步的file和pos
change master to master_host='masterip',master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=0;
start slave;
show slave status\G;
看到这些就是已经连上了master并且已经在同步master
Slave_IO_Running: YES
Slave_SQL_Running: Yes
mycat中间件
wget http://dl.mycat.org.cn/1.6.7.3/20210913163959/Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz
mv Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz /usr/local/
cd /usr/local/
tar -zxvf Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz
#配置环境变量
vim /etc/profile.d/mycat.sh
#文件内容
export PATH="/usr/local/mycat/bin:$PATH"
#文件内容
source /etc/profile
vim /usr/local/mycat/conf/schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!--mycat 上的schema 映射到dataNode的database-->
<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100">
<!--mycat 上的table 只有在这里设置的table才能在mycat上看到 要在mycat上新增表都得在这里添加-->
<!--dataNode=dn1,dn2 此处可用一台节点演示-->
<table name="customer" primaryKey="ID" dataNode="dn1"
rule="sharding-by-intfile">
</table>
<table name="oc_call" primaryKey="ID" dataNode="dn1" rule="latest-month-calldate"
/>
<table name="oc_call3" primaryKey="ID" dataNode="dn1" rule="latest-month-calldate"
/>
</schema>
<!--mysql的实际数据库映射到mycat的database-->
<dataNode name="dn1" dataHost="localhost1" database="mysql" />
<!-- <dataNode name="dn2" dataHost="localhost1" database="mysql" /> -->
<!-- 设置节点包含 读写节点 可以理解为写节点为Master节点 读节点为Slave -->
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="192.168.222.37:3306" user="root"
password="123456">
<readHost host="hostS2" url="192.168.222.37:3306" user="root" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
mycat console
如果遇到这种情况,是因为dn节点数不够,可以修改partition-hash-int
vim /usr/local/mycat/conf/partition-hash-int.txt
里面默认是2行,默认2节点,可以根据实际节点修改行
重新启动 mycat console
#启动后台模式
mycat start
#启动控制台模式
mycat console
#mycat日志
tail -1000f /usr/local/mycat/logs/mycat.log
#登录mycat
mysql -uroot -p123456 -P8066 -h192.168.222.36
参考文章
- https://blog.youkuaiyun.com/qq_55184535/article/details/125318708
- https://blog.youkuaiyun.com/qf2019/article/details/119798326
- https://blog.youkuaiyun.com/daqu1314/article/details/121381362