'分佈式數據庫中間件 MyCat 搞起來'

"

MyCat 簡介

前面文章我們提到,如果數據量比較大的話,我們需要對數據進行分庫分表,分完之後,原本存在一個數據庫中的數據,現在就存在多個數據庫中了,就像下面這樣:

"

MyCat 簡介

前面文章我們提到,如果數據量比較大的話,我們需要對數據進行分庫分表,分完之後,原本存在一個數據庫中的數據,現在就存在多個數據庫中了,就像下面這樣:

分佈式數據庫中間件 MyCat 搞起來

那麼此時 MyCat 所扮演的角色就是分佈式數據庫中間件!

MyCat 是一個開源的分佈式數據庫中間件,它實現了 MySQL 協議,在開發者眼裡,他就是一個數據庫代理,我們甚至可以使用 MySQL 的客戶端工具以及命令行來訪問 MyCat 。

MyCat 現在已經不僅僅只支持 MySQL 了,同時也支持 MSSQL、Oracle、DB2、以及 PostgreSQL等主流數據庫。甚至像 MongoDB 這種 NoSQL 也支持。

快速入門

搭建讀寫分離

要搞 MyCat ,一般要先搭建好 MySQL 的讀寫分離,MySQL 的讀寫分離可以參考鬆哥之前的這篇文章:

提高性能,MySQL 讀寫分離環境搭建(二)

MyCat 安裝

環境:

  • CentOS7
  • JDK1.8

MyCat 使用 Java 開發,因此,運行 MyCat ,一定要具備 Java 環境,配置 Java 運行環境這個比較容易,網上資料也很多,我就不詳細介紹了。

Java 環境安裝好之後,首先下載 MyCat:

wget http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

下載完成後,對下載文件進行解壓。

tar -zxvf Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

解壓成功後,會出現一個 mycat 目錄,進入到 mycat/conf 目錄,對 mycat 進行配置:

首先來配置 schema.xml 文件:

"

MyCat 簡介

前面文章我們提到,如果數據量比較大的話,我們需要對數據進行分庫分表,分完之後,原本存在一個數據庫中的數據,現在就存在多個數據庫中了,就像下面這樣:

分佈式數據庫中間件 MyCat 搞起來

那麼此時 MyCat 所扮演的角色就是分佈式數據庫中間件!

MyCat 是一個開源的分佈式數據庫中間件,它實現了 MySQL 協議,在開發者眼裡,他就是一個數據庫代理,我們甚至可以使用 MySQL 的客戶端工具以及命令行來訪問 MyCat 。

MyCat 現在已經不僅僅只支持 MySQL 了,同時也支持 MSSQL、Oracle、DB2、以及 PostgreSQL等主流數據庫。甚至像 MongoDB 這種 NoSQL 也支持。

快速入門

搭建讀寫分離

要搞 MyCat ,一般要先搭建好 MySQL 的讀寫分離,MySQL 的讀寫分離可以參考鬆哥之前的這篇文章:

提高性能,MySQL 讀寫分離環境搭建(二)

MyCat 安裝

環境:

  • CentOS7
  • JDK1.8

MyCat 使用 Java 開發,因此,運行 MyCat ,一定要具備 Java 環境,配置 Java 運行環境這個比較容易,網上資料也很多,我就不詳細介紹了。

Java 環境安裝好之後,首先下載 MyCat:

wget http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

下載完成後,對下載文件進行解壓。

tar -zxvf Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

解壓成功後,會出現一個 mycat 目錄,進入到 mycat/conf 目錄,對 mycat 進行配置:

首先來配置 schema.xml 文件:

分佈式數據庫中間件 MyCat 搞起來

首先在 schema 中指定邏輯庫的名字,邏輯庫是指 MyCat 中的庫,這個庫不存儲數據,數據存儲在 MySQL 中的物理庫中。

邏輯庫中配置邏輯表,配置邏輯表時,需要指定 dataNode 節點, dataNode 就是指數據庫存儲的位置

配置 dataNode ,dataNode 指定 dataHost 和物理庫的名字。

dataHost 則配置 MySQL 的主機和從機的位置,登錄密碼等。主機和從機都可以配置多個。

配置完 schema.xml 後 ,接下來配置 server.xml。

server.xml 中主要配置 MyCat 的登錄用戶名和密碼,以及需要操作的邏輯庫。

"

MyCat 簡介

前面文章我們提到,如果數據量比較大的話,我們需要對數據進行分庫分表,分完之後,原本存在一個數據庫中的數據,現在就存在多個數據庫中了,就像下面這樣:

分佈式數據庫中間件 MyCat 搞起來

那麼此時 MyCat 所扮演的角色就是分佈式數據庫中間件!

MyCat 是一個開源的分佈式數據庫中間件,它實現了 MySQL 協議,在開發者眼裡,他就是一個數據庫代理,我們甚至可以使用 MySQL 的客戶端工具以及命令行來訪問 MyCat 。

MyCat 現在已經不僅僅只支持 MySQL 了,同時也支持 MSSQL、Oracle、DB2、以及 PostgreSQL等主流數據庫。甚至像 MongoDB 這種 NoSQL 也支持。

快速入門

搭建讀寫分離

要搞 MyCat ,一般要先搭建好 MySQL 的讀寫分離,MySQL 的讀寫分離可以參考鬆哥之前的這篇文章:

提高性能,MySQL 讀寫分離環境搭建(二)

MyCat 安裝

環境:

  • CentOS7
  • JDK1.8

MyCat 使用 Java 開發,因此,運行 MyCat ,一定要具備 Java 環境,配置 Java 運行環境這個比較容易,網上資料也很多,我就不詳細介紹了。

Java 環境安裝好之後,首先下載 MyCat:

wget http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

下載完成後,對下載文件進行解壓。

tar -zxvf Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

解壓成功後,會出現一個 mycat 目錄,進入到 mycat/conf 目錄,對 mycat 進行配置:

首先來配置 schema.xml 文件:

分佈式數據庫中間件 MyCat 搞起來

首先在 schema 中指定邏輯庫的名字,邏輯庫是指 MyCat 中的庫,這個庫不存儲數據,數據存儲在 MySQL 中的物理庫中。

邏輯庫中配置邏輯表,配置邏輯表時,需要指定 dataNode 節點, dataNode 就是指數據庫存儲的位置

配置 dataNode ,dataNode 指定 dataHost 和物理庫的名字。

dataHost 則配置 MySQL 的主機和從機的位置,登錄密碼等。主機和從機都可以配置多個。

配置完 schema.xml 後 ,接下來配置 server.xml。

server.xml 中主要配置 MyCat 的登錄用戶名和密碼,以及需要操作的邏輯庫。

分佈式數據庫中間件 MyCat 搞起來

配置完成後,接下來就可以啟動 MyCat 了 。

執行 MyCat 解壓目錄下的 bin 目錄下的 mycat 命令,可以啟動 MyCat

./bin/mycat start

如果啟動後,提示無法創建 mycat.pid 文件,就自己手動創建一個 mycat.pid 文件。啟動成功之後,就可以在本地連接 MyCat 了,連接方式和 MySQL 一樣,唯一的區別在於端口號不同。

在連接 MyCat 之前,先在 MySQL 物理庫中創建 db1、db2 以及 db3 三個數據庫。

使用 SQLyog 連接:

"

MyCat 簡介

前面文章我們提到,如果數據量比較大的話,我們需要對數據進行分庫分表,分完之後,原本存在一個數據庫中的數據,現在就存在多個數據庫中了,就像下面這樣:

分佈式數據庫中間件 MyCat 搞起來

那麼此時 MyCat 所扮演的角色就是分佈式數據庫中間件!

MyCat 是一個開源的分佈式數據庫中間件,它實現了 MySQL 協議,在開發者眼裡,他就是一個數據庫代理,我們甚至可以使用 MySQL 的客戶端工具以及命令行來訪問 MyCat 。

MyCat 現在已經不僅僅只支持 MySQL 了,同時也支持 MSSQL、Oracle、DB2、以及 PostgreSQL等主流數據庫。甚至像 MongoDB 這種 NoSQL 也支持。

快速入門

搭建讀寫分離

要搞 MyCat ,一般要先搭建好 MySQL 的讀寫分離,MySQL 的讀寫分離可以參考鬆哥之前的這篇文章:

提高性能,MySQL 讀寫分離環境搭建(二)

MyCat 安裝

環境:

  • CentOS7
  • JDK1.8

MyCat 使用 Java 開發,因此,運行 MyCat ,一定要具備 Java 環境,配置 Java 運行環境這個比較容易,網上資料也很多,我就不詳細介紹了。

Java 環境安裝好之後,首先下載 MyCat:

wget http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

下載完成後,對下載文件進行解壓。

tar -zxvf Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

解壓成功後,會出現一個 mycat 目錄,進入到 mycat/conf 目錄,對 mycat 進行配置:

首先來配置 schema.xml 文件:

分佈式數據庫中間件 MyCat 搞起來

首先在 schema 中指定邏輯庫的名字,邏輯庫是指 MyCat 中的庫,這個庫不存儲數據,數據存儲在 MySQL 中的物理庫中。

邏輯庫中配置邏輯表,配置邏輯表時,需要指定 dataNode 節點, dataNode 就是指數據庫存儲的位置

配置 dataNode ,dataNode 指定 dataHost 和物理庫的名字。

dataHost 則配置 MySQL 的主機和從機的位置,登錄密碼等。主機和從機都可以配置多個。

配置完 schema.xml 後 ,接下來配置 server.xml。

server.xml 中主要配置 MyCat 的登錄用戶名和密碼,以及需要操作的邏輯庫。

分佈式數據庫中間件 MyCat 搞起來

配置完成後,接下來就可以啟動 MyCat 了 。

執行 MyCat 解壓目錄下的 bin 目錄下的 mycat 命令,可以啟動 MyCat

./bin/mycat start

如果啟動後,提示無法創建 mycat.pid 文件,就自己手動創建一個 mycat.pid 文件。啟動成功之後,就可以在本地連接 MyCat 了,連接方式和 MySQL 一樣,唯一的區別在於端口號不同。

在連接 MyCat 之前,先在 MySQL 物理庫中創建 db1、db2 以及 db3 三個數據庫。

使用 SQLyog 連接:

分佈式數據庫中間件 MyCat 搞起來

也可以在 cmd 命令行登錄 MyCat :

"

MyCat 簡介

前面文章我們提到,如果數據量比較大的話,我們需要對數據進行分庫分表,分完之後,原本存在一個數據庫中的數據,現在就存在多個數據庫中了,就像下面這樣:

分佈式數據庫中間件 MyCat 搞起來

那麼此時 MyCat 所扮演的角色就是分佈式數據庫中間件!

MyCat 是一個開源的分佈式數據庫中間件,它實現了 MySQL 協議,在開發者眼裡,他就是一個數據庫代理,我們甚至可以使用 MySQL 的客戶端工具以及命令行來訪問 MyCat 。

MyCat 現在已經不僅僅只支持 MySQL 了,同時也支持 MSSQL、Oracle、DB2、以及 PostgreSQL等主流數據庫。甚至像 MongoDB 這種 NoSQL 也支持。

快速入門

搭建讀寫分離

要搞 MyCat ,一般要先搭建好 MySQL 的讀寫分離,MySQL 的讀寫分離可以參考鬆哥之前的這篇文章:

提高性能,MySQL 讀寫分離環境搭建(二)

MyCat 安裝

環境:

  • CentOS7
  • JDK1.8

MyCat 使用 Java 開發,因此,運行 MyCat ,一定要具備 Java 環境,配置 Java 運行環境這個比較容易,網上資料也很多,我就不詳細介紹了。

Java 環境安裝好之後,首先下載 MyCat:

wget http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

下載完成後,對下載文件進行解壓。

tar -zxvf Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

解壓成功後,會出現一個 mycat 目錄,進入到 mycat/conf 目錄,對 mycat 進行配置:

首先來配置 schema.xml 文件:

分佈式數據庫中間件 MyCat 搞起來

首先在 schema 中指定邏輯庫的名字,邏輯庫是指 MyCat 中的庫,這個庫不存儲數據,數據存儲在 MySQL 中的物理庫中。

邏輯庫中配置邏輯表,配置邏輯表時,需要指定 dataNode 節點, dataNode 就是指數據庫存儲的位置

配置 dataNode ,dataNode 指定 dataHost 和物理庫的名字。

dataHost 則配置 MySQL 的主機和從機的位置,登錄密碼等。主機和從機都可以配置多個。

配置完 schema.xml 後 ,接下來配置 server.xml。

server.xml 中主要配置 MyCat 的登錄用戶名和密碼,以及需要操作的邏輯庫。

分佈式數據庫中間件 MyCat 搞起來

配置完成後,接下來就可以啟動 MyCat 了 。

執行 MyCat 解壓目錄下的 bin 目錄下的 mycat 命令,可以啟動 MyCat

./bin/mycat start

如果啟動後,提示無法創建 mycat.pid 文件,就自己手動創建一個 mycat.pid 文件。啟動成功之後,就可以在本地連接 MyCat 了,連接方式和 MySQL 一樣,唯一的區別在於端口號不同。

在連接 MyCat 之前,先在 MySQL 物理庫中創建 db1、db2 以及 db3 三個數據庫。

使用 SQLyog 連接:

分佈式數據庫中間件 MyCat 搞起來

也可以在 cmd 命令行登錄 MyCat :

分佈式數據庫中間件 MyCat 搞起來

登錄成功後 ,在 MyCat 的窗口中,執行如下命令,創建表:

create table t_user (id integer primary key,username varchar(255))

執行成功後,我們會發現物理庫中出現了相應的表。

接下來,手動往各個物理庫的物理表中存儲一條數據,然後在 MyCat 窗口中查詢:

"

MyCat 簡介

前面文章我們提到,如果數據量比較大的話,我們需要對數據進行分庫分表,分完之後,原本存在一個數據庫中的數據,現在就存在多個數據庫中了,就像下面這樣:

分佈式數據庫中間件 MyCat 搞起來

那麼此時 MyCat 所扮演的角色就是分佈式數據庫中間件!

MyCat 是一個開源的分佈式數據庫中間件,它實現了 MySQL 協議,在開發者眼裡,他就是一個數據庫代理,我們甚至可以使用 MySQL 的客戶端工具以及命令行來訪問 MyCat 。

MyCat 現在已經不僅僅只支持 MySQL 了,同時也支持 MSSQL、Oracle、DB2、以及 PostgreSQL等主流數據庫。甚至像 MongoDB 這種 NoSQL 也支持。

快速入門

搭建讀寫分離

要搞 MyCat ,一般要先搭建好 MySQL 的讀寫分離,MySQL 的讀寫分離可以參考鬆哥之前的這篇文章:

提高性能,MySQL 讀寫分離環境搭建(二)

MyCat 安裝

環境:

  • CentOS7
  • JDK1.8

MyCat 使用 Java 開發,因此,運行 MyCat ,一定要具備 Java 環境,配置 Java 運行環境這個比較容易,網上資料也很多,我就不詳細介紹了。

Java 環境安裝好之後,首先下載 MyCat:

wget http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

下載完成後,對下載文件進行解壓。

tar -zxvf Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz

解壓成功後,會出現一個 mycat 目錄,進入到 mycat/conf 目錄,對 mycat 進行配置:

首先來配置 schema.xml 文件:

分佈式數據庫中間件 MyCat 搞起來

首先在 schema 中指定邏輯庫的名字,邏輯庫是指 MyCat 中的庫,這個庫不存儲數據,數據存儲在 MySQL 中的物理庫中。

邏輯庫中配置邏輯表,配置邏輯表時,需要指定 dataNode 節點, dataNode 就是指數據庫存儲的位置

配置 dataNode ,dataNode 指定 dataHost 和物理庫的名字。

dataHost 則配置 MySQL 的主機和從機的位置,登錄密碼等。主機和從機都可以配置多個。

配置完 schema.xml 後 ,接下來配置 server.xml。

server.xml 中主要配置 MyCat 的登錄用戶名和密碼,以及需要操作的邏輯庫。

分佈式數據庫中間件 MyCat 搞起來

配置完成後,接下來就可以啟動 MyCat 了 。

執行 MyCat 解壓目錄下的 bin 目錄下的 mycat 命令,可以啟動 MyCat

./bin/mycat start

如果啟動後,提示無法創建 mycat.pid 文件,就自己手動創建一個 mycat.pid 文件。啟動成功之後,就可以在本地連接 MyCat 了,連接方式和 MySQL 一樣,唯一的區別在於端口號不同。

在連接 MyCat 之前,先在 MySQL 物理庫中創建 db1、db2 以及 db3 三個數據庫。

使用 SQLyog 連接:

分佈式數據庫中間件 MyCat 搞起來

也可以在 cmd 命令行登錄 MyCat :

分佈式數據庫中間件 MyCat 搞起來

登錄成功後 ,在 MyCat 的窗口中,執行如下命令,創建表:

create table t_user (id integer primary key,username varchar(255))

執行成功後,我們會發現物理庫中出現了相應的表。

接下來,手動往各個物理庫的物理表中存儲一條數據,然後在 MyCat 窗口中查詢:

分佈式數據庫中間件 MyCat 搞起來

這樣就可以查詢到 三個庫中的三個表中的數據。

問題分析

整個過程不難,但是有的小夥伴在第一次配置的過程中還是容易出錯,因此我這裡還是來說兩句,出錯了要如何定位。

一般來說,配置 MyCat 出錯,問題可能發生在兩個階段。第一個階段就是客戶端連接 MyCat 出錯,第二個階段就是 MyCat 連接 MySQL 出錯。

無論你是使用 SQLyog 還是 Navicat ,我們在連接數據庫的過程中,都可以先測試連接,很多人卡在這一步。

如果在測試連接的時候就連接不通,說明是 MyCat 的問題,這個時候檢查步驟如下:

首先當然是查看日誌信息,看能不能找出端倪

通過 jps 命令查看 mycat 是否成功啟動

檢查 server.xml 中配置是否正確,用戶名密碼是否輸入正確

這是第一種可能的問題,第二種問題就是測試連接沒問題,但是測試完後,卻連接不上。反映到 Navicat 上,就是測試連接沒問題,測完之後,點擊連接名要打開連接時,Navicat 就崩了,出現這個問題一般是 MyCat 在連接 MySQL 出問題了,這個時候就要去檢查 schema.xml 文件中關於 MySQL 主機和從機的配置是否正確,數據庫地址是否正確,用戶名密碼是否正確。

結語

好了,本文主要簡單介紹了下 MyCat 的安裝問題,下篇文章我們來看 MyCat 中的分片規則問題。

"

相關推薦

推薦中...