mysql-5.7.37-el7-x86_64二进制安装及Mycat-server-1.6.7.6库读写分离

一、安装mysql

将mysql安装包上传到服务安装目录上

解压得并重命名为mysql

tar zxvf mysql-5.7.37-el7-x86_64.tar.gz

mv mysql-5.7.37-el7-x86_64 mysql

创建mysql用户及组

groupadd mysql    //添加mysql组

useradd mysql -g mysql  //添加mysql用户

创建mysql的data目录,并授权

[root@bogon home]# cd mysql
[root@bogon mysql]# mkdir data
[root@bogon mysql]# chown mysql:mysql *     //授权mysql整个目录为mysql用户组及用户

初始化mysql,记住临时密码

[root@bogon mysql]# bin/mysqld --initialize --user=mysql --basedir=/home/mysql/mysql --datadir=/home/mysql/data
[root@bogon mysql]#

 修改my.cnf配置文件,通过mysql官网可以知道,从版本5.7.18开始,mysql免安装版二进制包中就不包含该文件了,即不需要my.cnf文件也可以正常运行;my.cnf文件中配置的选项会在命令行启动mysql的时候作为参数进行启动,为了后面搭建mysql主从环境方便,下面可以添加了一个简单的my.cnf文件作为实例(如果只是单纯的搭建一个mysql实例,可以直接忽略此步骤),使用vim /etc/my.cnf命令,如果在该目录上不存在则会新建

vim /etc/my.cnf

[mysqld]
lower_case_table_names=1
datadir =/home/mysql/data
socket =/home/mysql/mysql.sock
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character_set_server=utf8
init_connect='SET NAMES gbk'
[mysql]
default-character-set=gbk
[client]
socket =/home/mysql/mysql.sock

将mysql添加至开机启动

[root@bogon mysql]# cp ./support-files/mysql.server /etc/init.d/mysql   

修改mysql,使用vim /etc/init.d/mysql 命令 修改以下代码部分

  1. basedir=/home/mysql    //此项为mysql的安装目录

  2. datadir=/home/mysql/data   //此项为mysql数据库存放的目录

设置开机启动

[root@bogon mysql]# chkconfig --add mysql 

到这一步,mysql已经算是安装完毕了,接下来使用以下命令启动mysql

[root@bogon mysql]# service mysql start
Starting MySQL.. SUCCESS! 
[root@bogon mysql]#  

如果启动时报错
[root@skapp etc]# mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' 
这是由于my.cnf配置里的.sock位置未在/tmp/mysql.sock 里,需要做一下软连接,或检查my.cof配置文件中是否没有设置[client]的参数socket

 [client]
socket =/home/mysql/mysql.sock

临时解决办法: ln -s /tmp/mysql.sock /home/mysql/mysql.sock

为了可以在任意目录上都可以使用mysql命令登录mysql,将mysql安装目录配置到环境变量中,在vim /etc/profile文件的末尾添加以下代码

export PATH=$PATH:/home/mysql/bin
保存后使配置文件的配置立即生效  [root@bogon mysql]# source /etc/profile

 重启mysql服务,并且使用mysql的root用户登录mysql,密码在初始化时的那个

修改root用户的密码为root,并且刷新,设置允许root用户远程连接数据库

mysql> alter user 'root'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed

mysql> update user set user.Host='%' where user.User='root';

Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

二、安装mycat

1、MySQL主从配置

主数据库:172.16.10.42  ,从数据库:172.16.10.43

参考 MySQL5.7主从复制环境搭建

2、下载MyCat  mycat-1.6.7 (使用mycat需要先安装JDK)

http://www.mycat.io/

http://www.mycat.org.cn/

Linux安装JDK详细过程

3、解压mycat并修改配置文件

1、修改  conf/schema.xml (此配置文件为调用读写库的配置文件)   配置数据库相关内容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

        <schema name="skdata" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
        <!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
                             /> -->
        <dataNode name="dn1" dataHost="localhost1" database="skdata" />

        <dataHost name="localhost1" maxCon="1000" minCon="10" balance="3"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <!-- can have multi write hosts -->
                <writeHost host="dn1" url="172.16.10.42:3306" user="root" password="123456">
                        <!-- can have multi read hosts -->
                        <readHost host="dn2" url="172.16.10.43:3306" user="root" password="123456" />
                </writeHost>
                <!--
                                     <writeHost host="hostS1" url="localhost:3316" user="root"
                                   password="123456" />-->
                <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
        </dataHost>

</mycat:schema>

2、修改 conf/server.xml   配置MyCat用户名和密码

    <user name="root" defaultAccount="true">
        <property name="password">123456</property>
        <property name="schemas">skdata</property>
        <property name="defaultSchema">skdata</property>
        <!--No MyCAT Database selected 错误前会尝试使用该schema作为schema,不设置则为null,报错 -->
        
        <!-- 表级 DML 权限设置 -->
        <!--         
        <privileges check="false">
            <schema name="TESTDB" dml="0110" >
                <table name="tb01" dml="0000"></table>
                <table name="tb02" dml="1111"></table>
            </schema>
        </privileges>        
         -->
    </user> 

3、启动MyCat

在mycat目录bin下面文件都加上执行权限

 [root@bogon mycat]# cd /usr/local/mycat/bin
[root@bogon mycat]# chmod +x *
[root@bogon bin]# ll
总用量 384
-rwxr-xr-x. 1 root root   3658 3月   8 14:28 dataMigrate.sh
-rwxr-xr-x. 1 root root   1272 3月   8 14:28 init_zk_data.sh
-rwxr-xr-x. 1 root root  15701 3月   8 14:28 mycat
-rwxr-xr-x. 1 root root   2986 3月   8 14:28 rehash.sh
-rwxr-xr-x. 1 root root   2526 3月   8 14:28 startup_nowrap.sh
-rwxr-xr-x. 1 root root 140198 3月   8 14:28 wrapper-linux-ppc-64
-rwxr-xr-x. 1 root root  99401 3月   8 14:28 wrapper-linux-x86-32
-rwxr-xr-x. 1 root root 111027 3月   8 14:28 wrapper-linux-x86-64
[root@bogon bin]# ./mycat start
Starting Mycat-server...
[root@bogon bin]# ps -ef| grep mycat

查看日志:

cd /usr/local/mycat/logs

tail  -100f   ./wrapper.log

tail  -100f   ./logs/wrapper.log

tail  -100f   ./logs/mycat.log

4、连接测试 

6、相关配置

参考MyCat官方文档: MyCat权威指南  http://dl.mycat.org.cn/mycat-definitive-guide.pdf

dataHost 标签的相关属性

7.6.4 balance 属性
负载均衡类型,目前的取值有 3 种:
1. balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。
2. balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双
主双从模式(M1->S1,M2->S2,并且 M1 与 M2 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载
均衡。
3. balance="2",所有读操作都随机的在 writeHost、readhost 上分发。
4. balance="3",所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力,
注意 balance=3 只在 1.4 及其以后版本有,1.3 没有。

7.6.5 writeType 属性
负载均衡类型,目前的取值有 3 种:
1. writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个 writeHost,
重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties .
2. writeType="1",所有写操作都随机的发送到配置的 writeHost,1.5 以后废弃不推荐。switchType 属

- -1 表示不自动切换。
- 1 默认值,自动切换。
- 2 基于 MySQL 主从同步的状态决定是否切换

7.6.8 switchType 属性
-1 表示不自动切换
1 默认值,自动切换
2 基于 MySQL 主从同步的状态决定是否切换
心跳语句为 show slave status
3 基于 MySQL galary cluster 的切换机制(适合集群)(1.4.1)
心跳语句为 show status like ‘wsrep%’

7.7.1 writeHost 标签、readHost 标签
这两个标签都指定后端数据库的相关配置给 mycat,用于实例化后端连接池。唯一不同的是,writeHost 指
定写实例、readHost 指定读实例,组着这些读写实例来满足系统的要求。
78 
在一个 dataHost 内可以定义多个 writeHost 和 readHost。但是,如果 writeHost 指定的后端数据库宕机,
那么这个 writeHost 绑定的所有 readHost 都将不可用。另一方面,由于这个 writeHost 宕机系统会自动的检测
到,并切换到备用的 writeHost 上去。

更多介绍参考官方文档

转载自:MyCat配置MySQL读写分离--入门_...-CSDN博客_mycat读写分离配置 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值