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。
此配置文件可以不用修改,使用默認即可。