linux下使用yum安装mysql
(以下操作均可在任何目录下输入命令)
一.首先先删除原来虚拟机内的MySQL
1、首先检测一下,mysql之前有没有被安装命令:rpm -qa | grep mysql
2、删除mysql的命令: rpm -e --nodeps `rpm -qa | grep mysql`
二.yum安装mysql
1. 安装mysql服务端:
yum install mysql-server
yum install mysql-devel
2. 安装mysql客户端:
yum install mysql
3. 启动mysql服务:
service mysqld start或者/etc/init.d/mysqld start
停止:
service mysqld stop
重启:
service mysqld restart
4. 创建root管理员:
mysqladmin -u root password 123456
5.登陆
mysql -uroot -p123456
1. Mycat的下载及安装
1.1. 下载mycat 官方网站: http://www.mycat.org.cn/ github地址 https://github.com/MyCATApache
1.2. Mycat安装
第一步:把MyCat的压缩包上传到linux服务器
第二步:解压缩,得到mycat目录
第三步:进入mycat/bin,启动MyCat
控制台执行sudo ./bin/mycat console,
输出如下,表示正常启动
若已经安装过jdk的情况下,出现
Unable to start JVM: No such file or directory,
可能是JAVA环境变量不在root用户下导致的,尝试下如下方法,若还是不成功,应该不会的。
cd /opt
sudo chmod -R 777 mycat
./bin/mycat console
启动命令:./mycat start
停止命令:./mycat stop
重启命令:./mycat restart
如果出现以下错误:
jvm 5 | Error occurred during initialization of VM
jvm 5 | Could not reserve enough space for object heap
修改conf下的wrapper.conf 文件:
在文件中加入: wrapper.java.additional.10=-Xmx1G
wrapper.java.additional.11=-Xms512M
并注释掉:wrapper.java.initmemory=2048和wrapper.java.maxmemory=2048
如果出现以下错误:
wrapper | JVM exited while loading the application.
jvm 4 | wrapper | Unable to start JVM: No such file or directory(2)
修改conf下的wrapper.conf 文件中的 wrapper.java.command=/opt/jdk1.7/bin/java( jdk路径)
注意:可以使用mysql的客户端直接连接mycat服务。默认服务端口为8066
Mycat环境配置
1. Mycat分片
1.1. 需求
把商品表分片存储到三个数据节点上。
1.2. 安装环境
mysql节点1环境
操作系统版本 : centos6.4
数据库版本 : mysql-5.6
mycat版本 :1.4 release
数据库名 : db1、db3
ip:192.168.25.134
mysql节点2环境
操作系统版本 : centos6.4
数据库版本 : mysql-5.6
mycat版本 :1.4 release
数据库名 : db2
ip:192.168.25.166
MyCat安装到节点1上(需要安装jdk)
1.3. 配置schema.xml
1.3.1. Schema.xml介绍
Schema.xml作为MyCat中重要的配置文件之一,管理着MyCat的逻辑库、表、分片规则、DataNode以及DataSource。
弄懂这些配置,是正确使用MyCat的前提。这里就一层层对该文件进行解析。
schema 标签用于定义MyCat实例中的逻辑库
Table 标签定义了MyCat中的逻辑表
dataNode 标签定义了MyCat中的数据节点,也就是我们通常说所的数据分片。
dataHost标签在mycat逻辑库中也是作为最底层的标签存在,直接定义了具体的数据库实例、读写分离配置和心跳语句。
注意:若是LINUX版本的MYSQL,则需要设置为Mysql大小写不敏感,否则可能会发生表找不到的问题。
在MySQL的配置文件中my.ini [mysqld] 中增加一行 lower_case_table_names = 1
1.3.2. Schema.xml配置
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://org.opencloudb/"> <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"> <!-- auto sharding by id (long) --> <table name="TB_ITEM" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /> <table name="TB_USER" primaryKey="ID" type="global" dataNode="dn1,dn2" /> </schema> <dataNode name="dn1" dataHost="localhost1" database="db1" /> <dataNode name="dn2" dataHost="localhost2" 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="192.168.25.134:3306" user="root" password="root"> <!-- can have multi read hosts --> </writeHost> </dataHost> <dataHost name="localhost2" 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="192.168.25.166:3306" user="root" password="root"> <!-- can have multi read hosts --> </writeHost> </dataHost> </mycat:schema> |
1.4. 配置server.xml
1.4.1. Server.xml介绍
server.xml几乎保存了所有mycat需要的系统配置信息。最常用的是在此配置用户名、密码及权限。
1.4.2. Server.xml配置
<user name="test"> <property name="password">test</property> <property name="schemas">TESTDB</property> <property name="readOnly">true</property> </user> |
1.5. 配置rule.xml
rule.xml里面就定义了我们对表进行拆分所涉及到的规则定义。我们可以灵活的对表使用不同的分片算法,或者对表使用相同的算法但具体的参数不同。这个文件里面主要有tableRule和function这两个标签。在具体使用过程中可以按照需求添加tableRule
和function。
此配置文件可以不用修改,使用默认即可。