cloudera集群搭建1:准备步骤之mysql数据库搭建

cloudera集群搭建1:准备步骤之mysql数据库搭建_第1张图片
mysql数据库

前言: 为搭建cloudera环境而安装mysql数据库,以及适用于生产环境下mysql主从库的搭建,并演示导入测试数据。

一、部署环境

操作系统:Linux RedHat6.4
数据库:Mysql5.6.36

二、安装MySQL

2.1 下载软件包

MySQL 安装包下载:
http://dev.mysql.com/downloads/mysql/

测试数据库下载(非必须):
http://dev.mysql.com/doc/index-other.html

2.2 安装MySQL 软件

将安装包上传至/opt/mysql目录下,然后执行以下命令:

$ rpm –e –nodeps mysql-libs
$ rpm -ivh MySQL-server-*
$ rpm -ivh MySQL-client-*

修改配置文件位置

$ cp /usr/share/mysql/my-default.cnf /etc/my.cnf

注意:安装程序会自动添加mysql用户和用户组,以及完成数据库的初始化

2.3 /etc/my.cnf配置文件

添加如下配置信息:

[client]  
port            = 3306    
default-character-set=utf8  
 
[mysqld]    
port            = 3306    
character_set_server=utf8    
character_set_client=utf8   
collation-server=utf8_general_ci    
#(注意linux下mysql安装完后是默认:表名区分大小写,列名不区分大小写; 0:区分大小写,1:不区分大小写)    
lower_case_table_names=1    
#(设置最大连接数,默认为 151,MySQL服务器允许的最大连接数16384; )    
max_connections=1000    

[mysql]    
default-character-set = utf8  

可查看字符集:

$ show variables like '%collation%';  
$ show variables like '%char%';

2.4 启动数据库及设置密码

启动mysql服务:

$ service mysql start
$ chkconfig mysql on

查看root账号密码:

$ cat /root/.mysql_secret
The random password set for the root user at Wed Dec 11 23:32:50 2013 (local time): qKTaFZnl

注意:root密码为qKTaFZnl

运行mysql_secure_installation,修改root密码以及登录相关配置

$ /usr/bin/mysql_secure_installation

注意: Disallow root login remotely[Y/N] N,其他都是Y

手动重置root密码如下:

登录mysql

$ mysql -uroot –pqKTaFZnl

将root密码设置为123456

mysql> SET PASSWORD = PASSWORD('123456'); 

2.5 MySQL的默认安装位置

数据库目录: /var/lib/mysql/
配置文件目录: /usr/share/mysql
相关命令目录: /usr/bin
启动脚本:/etc/init.d/mysql

2.6 关闭防火墙

$ service iptables stop   
$ chkconfig iptables off  

三、导入线上表结构(导入测试数据)

创建数据库

mysql> create database world;

导入表结构

mysql> use world
mysql> source /opt/mysql/world.sql

新建用户并赋予相应权限

mysql> grant select,insert,update,delete on world.* to world@'%' identified by 'world';

四、搭建MySQL主从库(热备)

4.1 主库配置

$ vim /etc/my.cnf
[mysqld]  
log-bin=mysql-bin  
server-id=1

4.2 从库配置

$ vim /data/db/mysql/3306/my.cnf
[mysqld]  
server-id=2  

4.3 在主库上,创建复制用户

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'datanode1' IDENTIFIED BY 'slavepass';

4.4 在主库上,获得连接所需binlog 信息

mysql> show master status;
+--------------------------------+--------+
| File                           |Position|
+--------------------------------+--------+
| mysql-bin.000001               |  124   |
+--------------------------------+--------+

记下fileposition
例如:
file:** mysql-bin.000001**
position:124

4.5 在从库上,建立复制连接

mysql>
CHANGE MASTER TO
MASTER_HOST='master',
MASTER_USER='repl',
MASTER_PASSWORD='slavepass',
MASTER_LOG_FILE=' mysql-bin.000001',
MASTER_LOG_POS=124;

4.6 在从库上,开启复制

mysql> start slave;
mysql> show slave status\G

注意:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上选项均为YES,表示复制正常

五、FAQ

5.1 linux下mysql的root密码忘记解决方法

$ vim /etc/my.cnf

在[mysqld]的段中加上一句:skip-grant-tables
例如:

[mysqld]   
skip-grant-tables  

重新启动mysqld

$ /etc/init.d/mysqld restart

登录并修改MySQL的root密码

$ /usr/bin/mysql
mysql> USE mysql ;
mysql> UPDATE user SET Password = password ('123456') WHERE User = 'root' ;
mysql> flush privileges ;

将my.cnf中skip-grant-tables去掉,然后重新启动mysqld

$ /etc/init.d/mysqld restart

5.2 show master status 为空

开启big-log日志

$ vim /etc/my.cnf

在配置文件中添加此行代码: log-bin=mysql-bin
然后重启下MySQL:

$ service mysqld restart

进入数据库查看是否开启成功:

mysql> show variables like '%log_bin%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin                         | ON    |
+---------------------------------+-------+

注意:log_bin为on表示成功

生成一个最新的bin-log日志

mysql> flush logs;

查看bin-log日志的相关信息

mysql> show master status;

注意:如果bin-log日志成功开启,而show master status为空,则执行:flush logs即可。

你可能感兴趣的:(cloudera集群搭建1:准备步骤之mysql数据库搭建)