Centos7上Mycat安装
1 环境准备
- JDK1.7+ 此处使用的是 jdk-8u162-linux-x64.rpm
- 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 - Mycat 下载地址: http://dl.mycat.io 当前最新版本:1.6.6.1
2 JDK安装
- 上传jdk安装包到linux机器上
- root用户身份安装,命令:
- jdk被安装在 /usr/java目录下
- 配置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= JAVAHOME/libexportPATH=JAVA_HOME/bin:$PATH - 验证
3 MysqL安装
- 上传MysqL安装包;
- 在上传目录创建目录 MysqL
- 解压安装包
- 安装:
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 - 安装完成,安装过程中会创建用户 MysqL ,所属组 MysqL。MysqL内容的目录分布情况:
- 注意: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 - 启动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!’; - 创建使用用户
MysqL> grant all privileges on *. * to ‘mike’@’%’ identified by ‘Mike666!’; <点后面多了个空格>
MysqL> flush privileges; - 安装完成,可以用我们的使用用户远程连接了!
4 Mycat安装
- 解压安装包到目标安装目录:
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 级别下,会输出更多的信息,
方便排查问题。 - 配置环境变量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 - 新增用户mycat(建议不要用root用户来运行mycat):
useradd mycat
设置密码
passwd mycat - 修改mycat安装目录的所有者为mycat用户:
chown -R mycat:mycat /usr/local/mycat - 尝试启动mycat服务
./mycat start - 启动成功否? 看看有没有mycat进程
- 用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>
- 安装完成!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。