成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

mysql集群怎么訪問 mysql支持集群部署嗎

windows下配置mysql集群,該怎么解決

windows下配置mysql集群,該怎么解決

成都創(chuàng)新互聯公司是一家專注于成都網站制作、做網站與策劃設計,清遠網站建設哪家好?成都創(chuàng)新互聯公司做網站,專注于網站建設10年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:清遠等地區(qū)。清遠做網站價格咨詢:18982081108

有兩種方法,一種方法使用mysql的check table和repair table 的sql語句,另一種方法是使用MySQL提供的多個myisamchk, isamchk數據檢測恢復工具。前者使用起來比較簡便。推薦使用。

1. check table 和 repair table

登陸mysql 終端:

mysql -uxxxxx -p dbname

check table tabTest;

如果出現的結果說Status是OK,則不用修復,如果有Error,可以用:

repair table tabTest;

進行修復,修復之后可以在用check table命令來進行檢查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。

2. myisamchk, isamchk

其中myisamchk適用于MYISAM類型的數據表,而isamchk適用于ISAM類型的數據表。這兩條命令的主要參數相同,一般新的系統都使用MYISAM作為缺省的數據表類型,這里以myisamchk為例子進行說明。當發(fā)現某個數據表出現問題時可以使用:

myisamchk tablename.MYI

進行檢測,如果需要修復的話,可以使用:

myisamchk -of tablename.MYI

關于myisamchk的詳細參數說明,可以參見它的使用幫助。需要注意的時在進行修改時必須確保MySQL服務器沒有訪問這個數據表,保險的情況下是最好在進行檢測時把MySQL服務器Shutdown掉。

Docker的mysql集群節(jié)點可以正常創(chuàng)建,但無法正常連接到宿主機的mysql應該如何解決?

Ambari是Apache的開源項目,它幫助用戶在GUI頁面上簡單的部署、管理、監(jiān)控Hadoop集群環(huán)境。Ambari支持的Hadoop組件包括HDFS、Hive、HBase、Spark、Yarn等,HortonWorks官方也是采用Ambari來完成自家HDP套件的安裝、管理及監(jiān)控的。除了預置的組件之外,Ambari還支持自定義組件的安裝,同時,支持RESTful的API,繼而可以通過命令行等方式調用Ambari來完成一些自動化的任務。

本文共分為兩部分,第一部分介紹如何在Docker虛擬化環(huán)境中部署Ambari;第二部分介紹如何基于Ambari來部署和管理Hadoop集群。

### 環(huán)境信息

* Docker發(fā)行版:Docker for Mac

* Docker版本:17.06.2-ce

* Docker容器OS:Ubuntu 14.04

* Ambari版本:2.5.2.0

Docker環(huán)境準備

拉取Docker鏡像:在宿主機上執(zhí)行命令docker pull ubuntu:14.04從遠端倉庫中獲取Ubuntu的鏡像,也可以獲取其他OS的鏡像,本文以Ubuntu為例

啟動Docker容器:執(zhí)行如下命令,以ubuntu:14.04鏡像為基礎啟動容器:

docker run -itd --name ambari_new -p 8080:8080 -p 3306:3306 -v /Users/yuxiaolei/Workspace/dockerShared:/dockerShared ubuntu:14.04 /bin/bash

由于Ambari啟動Web程序的時候占用8080端口,因此要從Docker宿主機上訪問Ambari頁面,需要通過參數 -p 來制定端口映射;

作為新手,筆者在容器內部署好Ambari之后,才發(fā)現Web頁面的8080端口和MySQL的3306端口(可選)沒有暴露給Docker宿主機,也就沒法從宿主機上通過瀏覽器來登陸Ambari,因此必須想辦法在已有容器上開放端口。

有兩個方法:

1)如果宿主機為Linux系統,則修改iptables防火墻來指定端口映射規(guī)則;

2)如果是非Linux系統,可以將已裝Ambari的容器commit為新的鏡像,再基于該鏡像創(chuàng)建新的容器。此時,就可以在docker run命令中添加參數 -p 來指定端口映射了。

還有一個問題,Ambari將其數據存儲在數據庫中,支持MySQL、PostgreSQL等數據庫;容器內安裝MySQL之后,基于上一步創(chuàng)建的新容器里,會發(fā)現MySQL啟動不起來,執(zhí)行命令/etc/init.d/mysql restart啟動失敗,在/var/log/mysql/error.log日志文件中打印有170802 14:02:59 [ERROR] Fatal error: Can't open and lock privilege tables: Got error 140 from storage engine的錯誤,經過網上查資料,需要在創(chuàng)建容器的時候添加參數-v /var/lib/mysql將MySQL數據存儲路徑聲明為數據卷,即可解決問題。

啟動容器之后,執(zhí)行命令docker exec -it ambari /bin/bash進入容器內部。

Ambari安裝

配置Ubuntu的軟件倉庫源:

國內建議采用阿里云的軟件源,在root賬號下用vim打開/etc/apt/sources.list文件,刪除文件所有內容,粘貼如下內容:

deb trusty main restricted universe multiverse

deb trusty-security main restricted universe multiverse

deb trusty-updates main restricted universe multiverse

deb trusty-proposed main restricted universe multiverse

deb trusty-backports main restricted universe multiverse

deb-src trusty main restricted universe multiverse

deb-src trusty-security main restricted universe multiverse

deb-src trusty-updates main restricted universe multiverse

deb-src trusty-proposed main restricted universe multiverse

deb-src trusty-backports main restricted universe multiverse

執(zhí)行命令apt-get update完成軟件列表更新

安裝Ambari所依賴的軟件

apt-get install software-properties-common

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java8-installer

sudo apt-get install oracle-java8-set-default

完成安裝之后,在 ~/.bashrc 文件末尾添加命令 `export JAVA_HOME=/usr/lib/jvm/java-8-oracle ` 以配置JAVA\_HOME 環(huán)境變量。

create database ambari;use ambari;GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root_password' WITH GRANT OPTION;FLUSH PRIVILEGES;exit;

由于Ambari的數據存儲在MySQL數據庫中,這里為Ambari單獨創(chuàng)建了database,并為其賦了完全控制權限;說明:假設MySQL數據庫root用戶的密碼為:root\_password

修改 `/etc/mysql/my.conf`,將`skip-external-locking`注釋掉,并確保 `bind-address = 0.0.0.0` 配置,以使MySQL可被遠程主機訪問。

執(zhí)行命令`/etc/init.d/mysql restart`重啟MySQL 服務。

時間同步服務器ntp:執(zhí)行命令apt-get install ntp安裝ntp時間同步服務器,以便于集群環(huán)境中各節(jié)點的時鐘一致;執(zhí)行命令sudo service ntp restart重啟ntp服務。

MySQL:執(zhí)行命令apt-get install mysql-server安裝MySQL服務器,安裝完成后執(zhí)行命令mysql -uroot -proot進入MySQL客戶端,執(zhí)行如下SQL代碼:

Oracle JDK:逐條執(zhí)行如下命令,以添加WebUpd8團隊()提供的Oracle JDK倉庫源,并從該倉庫安裝JDK:

下載Ambari倉庫文件

進入cd /etc/apt/sources.list.d目錄,執(zhí)行命令wget 從HortonWorks倉庫中下載Ambari源文件,下載后切勿修改list文件名;

執(zhí)行命令apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD以信任遠端倉庫的GPG簽名

執(zhí)行命令apt-get update更新Ambari軟件源

執(zhí)行命令apt-get install ambari安裝Ambari套件,由于軟件包較大(700多MB),這里情耐心等待,不過apt-get支持斷點下載,網絡終端后重新執(zhí)行命令時不會從零開始下載

配置Ambari:

執(zhí)行命令mysql -uroot -proot進入MySQL客戶端,執(zhí)行命令source ambari進入ambari的數據庫,并執(zhí)行命令source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql來完成Ambari的數據庫表初始化操作;

執(zhí)行命令ambari-server setup啟動Ambari的引導式配置操作,根據指導做配置即可。需要注意的是,JDK不要選擇由Ambari從網絡下載,應該選擇自定義路徑,然后輸入/usr/lib/jvm/java-8-oracle即可;

啟動Ambari:執(zhí)行命令ambari-server start,啟動日志存儲路徑為/var/log/ambari-server/ambari-server.log

啟動之后,由于我們之前做了Docker容器的端口映射,因此可以在宿主機上打開瀏覽器輸入即可訪問Ambari登陸頁面

登陸用戶名和密碼均為admin,登陸之后就可以看到Ambari的首頁了,如下圖:

{% asset_img

如何訪問k8s集群內部署的mysql服務

雖然 kubernetes 社區(qū)一直在努力使得有狀態(tài)應用成為一等公民,也推出了 statefulset 控制器支持 pod 的順序部署,穩(wěn)定的域名訪問和存儲訪問。但鑒于 MySQL 部署運維的多樣性和復雜性,在 kubernetes 上部署 MySQL 仍然要面臨眾多挑戰(zhàn)。

1、業(yè)務流量入口的配置方式

傳統虛擬機環(huán)境下,我們通過虛IP的方式,讓業(yè)務應用都配置事先定義的一個虛IP為鏈接數據庫的地址,然后由高可用服務保證虛IP始終能被路由到master數據庫。在kubernetes中,出現了一層網絡插件屏蔽了底層網絡拓撲,高可用服務管理虛IP的方式需要隨之適應調整,比如通過service結合標簽完成虛IP的漂移,但service本身是kubernetes提供的一項功能,其可靠性和性能都取決于kubernetes服務的穩(wěn)定。以性能來說,service是kubeproxy組件通過配置iptables實現的,當iptables規(guī)則較多時不可避免的會產生時延,需要我們針對性的解決。

2、容器隔離帶來的監(jiān)控視野問題

在 kubernetes 中,如果將 MySQL 制作為 container 運行在一個 pod 中,container 會將 MySQL 進程和運行環(huán)境隔離在一個單獨的 namespace 中。監(jiān)控組件在獲取 MySQL 的一些 metirc 時,可能不得不進入與 MySQL 同一個 namespace 中,在部署和設計監(jiān)控組件時需要考慮到這些限制。

3、存儲在 kubernetes 中,支持配置各種不同的存儲。

如果使用本地存儲 local persistent volume,則需要綁定 MySQL 在一個固定的節(jié)點,這就完全浪費了 kubernetes 靈活調度的天然優(yōu)勢;而如果使用遠程共享存儲,確實是將 MySQL 進程與其存儲完全解耦,使得 MySQL 進程可以在任意節(jié)點調度,然而考慮到高 I/O 吞吐量的情況,就不是那么美好了。設計時需要考量遠程存儲是否能夠滿足 MySQL 的帶寬要求。

4、高可用/備份恢復

kubernetes 提供的 statefulset 控制器只能提供最基本的部署,刪除功能,無法實現完善的 MySQL 集群高可用/備份恢復操作。對于有狀態(tài)應用的部署,仍需要定制開發(fā),所以多數公司提供了定制的 operator 來完成應用容器的管理。比如 etcd operator,MySQL operator,后文將為大家詳述我測試使用 MySQL operator 的一些記錄。

kubernetes集群怎么訪問外部的服務mysql,redis

k8s訪問集群外獨立的服務最好的方式是采用Endpoint方式(可以看作是將k8s集群之外的服務抽象為內部服務),以mysql服務為例:

創(chuàng)建mysql-endpoints.yaml

apiVersion: v1

kind: Endpoints

metadata:

name: mysql-test

namespace: default

subsets:

- addresses: - ip: 10.1.0.32 ports:

- port: 3306多個端口的話可以在此處列出123456789101112

創(chuàng)建mysql-service.yaml

apiVersion: v1kind: Servicemetadata:

name: mysql-testspec:

ports:

- port: 3306同樣多端口需要列出

網頁題目:mysql集群怎么訪問 mysql支持集群部署嗎
本文網址:http://jinyejixie.com/article44/dodhiee.html

成都網站建設公司_創(chuàng)新互聯,為您提供手機網站建設、做網站、軟件開發(fā)、網站制作品牌網站制作、域名注冊

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

外貿網站建設
涿州市| 陈巴尔虎旗| 镇原县| 喀喇沁旗| 张家港市| 丰都县| 南投市| 吉林省| 渝中区| 东城区| 泉州市| 庆安县| 宁城县| 探索| 江孜县| 叶城县| 华阴市| 新乐市| 乐亭县| 河源市| 盐津县| 仙游县| 大同县| 措美县| 章丘市| 福贡县| 丰县| 安岳县| 梅河口市| 陕西省| 梨树县| 花垣县| 木里| 嘉兴市| 南汇区| 汶川县| 健康| 大港区| 怀安县| 五峰| 巢湖市|