ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Centos7上Mycat安装

2021-05-26 15:57:39  阅读:177  来源: 互联网

标签:mycat Centos7 etc mysqld usr mysql Mycat 安装


Centos7上Mycat安装

1 环境准备

  1. JDK1.7+ 此处使用的是 jdk-8u162-linux-x64.rpm
  2. MySQL mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar
    下载镜像: http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.24-1.el7.x
    86_64.rpm-bundle.tar
  3. Mycat 下载地址: http://dl.mycat.io 当前最新版本:1.6.6.1

2 JDK安装

  1. 上传jdk安装包到linux机器上
  2. root用户身份安装,命令:
  3. jdk被安装在 /usr/java目录下
  4. 配置JAVA环境变量,命令:
    在文件末尾追加:
    保存退出
    使配置生效,命令:
    rpm -ivh jdk-8u162-linux-x64.rpm vi /etc/profile export JAVA_HOME=/usr/java/latest export CLASSPATH=.: J A V A H O M E / l i b e x p o r t P A T H = JAVA_HOME/lib export PATH= JAVAH​OME/libexportPATH=JAVA_HOME/bin:$PATH
  5. 验证

3 MySQL安装

  1. 上传MySQL安装包;
  2. 在上传目录创建目录 mysql
  3. 解压安装包
  4. 安装:
    source /etc/profile
    java -version
    mkdir mysql
    tar -xvf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar -C mysql
    Files or Resources Location Client programs and scripts /usr/bin mysqld server /usr/sbin Configuration file /etc/my.cnf Data directory /var/lib/mysql
    Error log file For RHEL, Oracle Linux, CentOS or Fedora platforms: /var/log/mysqld.log For SLES: /var/log/mysql/mysqld.log Value of secure_file_priv /var/lib/mysql-files System V init script For RHEL, Oracle Linux, CentOS or Fedora platforms: /etc/init.d/mysqld For SLES: /etc/init.d/mysql Systemd service
    For RHEL, Oracle Linux, CentOS or Fedora platforms: mysqld For SLES: mysql Pid file /var/run/mysql/mysqld.pid Socket /var/lib/mysql/mysql.sock Keyring directory /var/lib/mysql-keyring Unix manual pages /usr/share/man Include (header) files /usr/include/mysql Libraries /usr/lib/mysql Miscellaneous support files (for example, error messages, and
    character set files) /usr/share/mysql
  5. 安装完成,安装过程中会创建用户 mysql ,所属组 mysql。mysql内容的目录分布情况:
  6. 注意:Linux 下部署安装MySQL,默认不忽略表名大小写,需要手动到/etc/my.cnf 下配置
    lower_case_table_names=1 使Linux 环境下MySQL 忽略表名大小写,否则使用MyCAT 的
    时候会提示找不到 表的错误!
    cd mysql
    rm -f mysql-community-server-minimal-5.7.24-1.el7.x86_64.rpm
    yum install mysql-community-{server,client,common,libs}-* mysql-5.*
    vi /etc/my.cnf
  7. 启动mysql服务,命令:
    systemctl start mysqld
    第一次启动过程将完成如下事项:
    服务器被初始化。
    在数据目录中生成SSL证书和密钥文件。
    validate_password已安装并启用。
    超级用户帐户’root’@'localhost’被创建。超级用户的密码被设置并存储在错误日志文
    件中。要提取它,请对RHEL、Oracle Linux、CentOS和Fedora系统使用以下命令: grep ‘temporary password’ /var/log/mysqld.log 8. 修改root用户密码,用上面提取到的密码登录:
    mysql -uroot -p mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘MyNewPass4!’;
  8. 创建使用用户
    mysql> grant all privileges on *. * to ‘mike’@’%’ identified by ‘Mike666!’; <点后面多了个空格>
    mysql> flush privileges;
  9. 安装完成,可以用我们的使用用户远程连接了!

4 Mycat安装

  1. 解压安装包到目标安装目录:
    mycat软件目录构成:
    bin 程序目录,存放了window 版本和linux 版本,除了提供封装成服务的版本之外,
    也提供了nowrap 的 shell 脚本命令,方便大家选择和修改:
    conf 目录下存放配置文件,server.xml 是Mycat 服务器参数调整和用户授权的配置文
    件,schema.xml 是逻辑库定义和表以及分片定义的配置文件,rule.xml 是分片规则
    的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置
    文件修改,需要重启Mycat 或者通过9066 端口reload。
    lib 目录下主要存放mycat 依赖的一些jar 文件.
    日志存放在logs/mycat.log 中,每天一个文件,日志的配置是在conf/log4j2.xml 中,
    根据自己的需要,可以调整输出级别为debug,debug 级别下,会输出更多的信息,
    方便排查问题。
  2. 配置环境变量MYCAT_HOME=/usr/local/mycat
    tar -zxvf Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz -C /usr/local/ vi /etc/profile
    保存后,使其生效:
    source /etc/profile
  3. 新增用户mycat(建议不要用root用户来运行mycat):
    useradd mycat
    设置密码
    passwd mycat
  4. 修改mycat安装目录的所有者为mycat用户:
    chown -R mycat:mycat /usr/local/mycat
  5. 尝试启动mycat服务
    ./mycat start
  6. 启动成功否? 看看有没有mycat进程
  7. 用mysql客户端尝试连接mycat服务:
    到 conf/server.xml 中看看:
    默认的服务端口为8066,管理端口为9066
    用户有:
    看看用它们能连上不!
    连接成功!
    Mycat 对我们的应用来说,就是一个数据库!
    疑问:TESTDB数据库怎么来的?
    打开TESTDB数据库看看有什么表没!
    疑问:表在哪里定义的?
    看看表中有数据没!
    不合法的数据源:0。
    疑问:这里的数据源是什么?
    这些疑问的答案从哪找?
    conf/schema.xml
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<!-- auto sharding by id (long) --> <table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto- sharding-long" /> <!-- global table is auto cloned to all defined data nodes ,so can join with any table whose sharding node is in the same data node --><table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" /> <table name="goods" primaryKey="ID" type="global" dataNode="dn1,dn2" /> <!-- random sharding using mod sharind rule --> <table name="hotnews" primaryKey="ID" autoIncrement="true" dataNode="dn1,dn2,dn3" rule="mod-long" /> <table name="employee" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile" /> <table name="customer" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile"> <childTable name="orders" primaryKey="ID" joinKey="customer_id" parentKey="id"> <childTable name="order_items" joinKey="order_id" parentKey="id" /> </childTable> <childTable name="customer_addr" primaryKey="ID" joinKey="customer_id" parentKey="id" /> </table> </schema> <dataNode name="dn1" dataHost="localhost1" database="db1" /> <dataNode name="dn2" dataHost="localhost1" database="db2" /> <dataNode name="dn3" dataHost="localhost1" database="db3" /> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM1" url="localhost:3306" user="root"
password="123456"> <!-- can have multi read hosts --> <readHost host="hostS2" url="192.168.1.200:3306" user="root" password="xxx" /> </writeHost> <writeHost host="hostS1" url="localhost:3316" user="root" password="123456" /> </dataHost> </mycat:schema> 
  1. 安装完成!

标签:mycat,Centos7,etc,mysqld,usr,mysql,Mycat,安装
来源: https://blog.csdn.net/qq_44779847/article/details/117293749

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有