1. 程式人生 > >Centos6安裝CDH5.15.1最詳細版-3 安裝Mysql資料庫

Centos6安裝CDH5.15.1最詳細版-3 安裝Mysql資料庫

安裝Mysql

在這裡插入圖片描述

安裝包為:MySQL-5.6.41-1.el6.x86_64.rpm-bundle.tar 下載完成後上傳伺服器: 在這裡插入圖片描述

  1. 解壓tar包,並新增執行許可權
## 解壓tar包
tar -xvf MySQL-5.6.41-1.el6.x86_64.rpm-bundle.tar -C /opt/software/mysql/
cd /opt/software/mysql/

## 新增執行許可權
chmod u+x *.rpm
  1. 安裝MySQL-shared-compat替換系統自帶的mysql-libs 替換前: 在這裡插入圖片描述
# 先檢視一下是否有系統自帶的mysql外掛,我這裡是有的
rpm -qa | grep -i mysql
# 先安裝MySQL-shared-compat
rpm -ivh MySQL-shared-compat-5.6.41-1.el6.x86_64.rpm
# 再解除安裝mysql-libs
yum remove mysql-libs

替換後: 在這裡插入圖片描述 4. 安裝mysql

# 安裝MySQL-server
rpm -ivh MySQL-server-5.6.41-1.el6.x86_64.rpm
# 安裝MySQL-client
rpm -ivh MySQL-client-5.6.41-1.el6.x86_64.rpm

遇到的問題: 在這裡插入圖片描述

錯誤如下:

warning: MySQL-server-5.6.41-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
        libnuma.so.1()(64bit) is needed by MySQL-server-5.6.41-1.el6.x86_64
        libnuma.so.1(libnuma_1.1)(64bit) is needed by MySQL-server-5.6.41-1.el6.x86_64
        libnuma.so.1(libnuma_1.2)(64bit) is needed by MySQL-server-5.6.41-1.el6.x86_64

警告資訊網上資料說:這是由於yum安裝了舊版本的GPG keys造成的 解決辦法:在後面加上–force --nodeps 下面的error是安裝缺失依賴包,錯誤解決辦法:

yum install numactl

在這裡插入圖片描述

  1. 配置Mysql

安裝完以後Mysql生成一個隨機密碼儲存在/root/.mysql_secret

# 啟動Mysql
service mysql start
# 不用再配置開機啟動了,安裝包已經設定Mysql開機啟動
# 檢視Mysql密碼
more ~/.mysql_secret
# 進行Mysql的基本配置
/usr/bin/mysql_secure_installation --user=mysql

在這裡插入圖片描述

在這裡插入圖片描述

  1. 開啟遠端登陸
# 命令列登陸Mysql
mysql -uroot -proot
# 新增遠端登陸許可權
Grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
# 重新載入許可權
flush privileges;

在這裡插入圖片描述

  1. 本地通過Navicat遠端連線Mysql:

在這裡插入圖片描述

  1. 將Mysql驅動包放入Java 共享目錄 注意,如果/usr/share/java/目錄不存在,則手動建立!
mkdir /usr/share/java

三臺伺服器都要做 8.1 重新命名Mysql驅動包,把版本號去掉,將jar包移到java共享目錄下

mv mysql-connector-java-5.1.7-bin.jar /usr/share/java/mysql-connector-java.jar

在這裡插入圖片描述 8.2 將Mysql驅動包分發到另外兩臺伺服器

scp /usr/share/java/mysql-connector-java.jar [email protected]:/usr/share/java
scp /usr/share/java/mysql-connector-java.jar [email protected]:/usr/share/java

在這裡插入圖片描述 這一步如果不做的話後面Cloudera Manager好多需要連線Mysql的步驟都會報找不到Mysql驅動的錯誤 一定要把Mysql驅動包的版本號去掉

  1. 建立資料庫及使用者並新增許可權 其他的資料庫例項使用uft8編碼,hive和oozie使用預設的編碼方式 如下,可直接複製,後面會用到。
create database if not exists amon default charset utf8 collate utf8_general_ci;
create database if not exists rman default charset utf8 collate utf8_general_ci;
create database if not exists nav default charset utf8 collate utf8_general_ci;
create database if not exists navms default charset utf8 collate utf8_general_ci;
create database if not exists hue default charset utf8 collate utf8_general_ci;
create database if not exists sentry default charset utf8 collate utf8_general_ci;
create database if not exists hive;
create database if not exists oozie;
grant all on hive.* to 'hive'@'%' identified by 'hive' with grant option;
grant all on oozie.* to 'oozie'@'%' identified by 'oozie' with grant option;
grant all on hue.* to 'hue'@'%' identified by 'hue' with grant option;
grant all on amon.* to 'amon'@'%' identified by 'amon' with grant option;
grant all on rman.* to 'rman'@'%' identified by 'rman' with grant option;
grant all on nav.* to 'nav'@'%' identified by 'nav' with grant option;
grant all on navms.* to 'navms'@'%' identified by 'navms' with grant option;
grant all on sentry.* to 'sentry'@'%' identified by 'sentry' with grant option;
flush privileges;
  1. 為Cloudera Manager配置Mysql 為Cloudera Manager配置外部的資料庫需要對此外部資料庫進行一些配置

ClouderaManager官網對Mysql配置的翻譯, 大致意思是: 1) 需要配置Mysql的搜尋引擎為InnoDB 2) Mysql安裝好以後預設分配的緩衝區和記憶體比較小,ClouderaManager會非常頻繁地連線Mysql需要配置一下,具體根據你叢集的大小配置最大連線數 3) 二進位制日誌對於ClouderaManager不是必須的,但是對Mysql有好處,這個你隨意 然後官網在下面給了一個my.cnf配置的例子,然後說只要你的大資料叢集在50個節點以內都可以使用下面的這個配置

10.1 查詢my.cnf

my.cnf路徑一般是/etc/my.cnf沒有的話建立,其他地方有的話就修改。

find / -name my.cnf

我這裡在/usr/下 在這裡插入圖片描述

10.2 修改/usr/my.cnf檔案

[mysqld]
transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links = 0

key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1

max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M

#log_bin should be on a disk with enough free space. Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your system
#and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log

# For MySQL version 5.1.8 or later. For older versions, reference MySQL documentation for configuration help.
binlog_format = mixed

read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M

# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
sql_mode=STRICT_ALL_TABLES

10.3 重啟Mysql服務

service mysql restart

在這裡插入圖片描述

10.4 測試

在Mysql中隨便建立一個表執行命令

show table status

在這裡插入圖片描述