1、为什么叫mycat?
其实mycat在最早的初期版本只支持mysql一种数据库,换句话说,
mycat就是mysql的增强版,在mysql中只是数据库,并没有读写分离和
分库分表,这些操作全部是由mycat进行实现。
注意:主从复制(数据同步)功能mycat没有,必须要使用mysql所提供的。
2、什么是mycat?
2.1 mycat是完全开源的,并且面向大型企业的大数据库集群
2.2 支持事务、ACID、可以替代mysql的嘉庆版数据库,目前已经支持了
很多数据库(关系型和非关系型数据库都包括)
3、什么是HDFS?
H:Hadoop
D:Distributed
F:File
S:System
Hadoop(大数据)分布式存储系统;大数据:数据量非常大,且以文件形式保存
HDFS只做数据的存储;
mycat:
H:High(Big Data)
D:Distributed
D:Data
S;System
4、mycat的两大核心
4.1 分库分表
将同一个系统(项目)的同一张表拆分到不同服务器进行存放
4.2 读写分离
将同一个系统(项目)的读操作和写操作分别在不同服务器上完成
5、Linux配置mysql
5.1 从官网下载mysql5.tar.gz
5.2 使用xftp把mysql的压缩包上传至服务器上(/home/apps/下)
5.3 解压mysql压缩包
tar -zxvf xxxx
5.4 把mysqlxxx改名为mysql
mv mysqlxxxx mysql
5.5 把mysql目录中创建data目录(存放日志的目录)
mkdir data
5.6 创建mysql的用户群组
groupadd mysql(群组的名字)
5.7 创建mysql群组下的用户
useradd -r -s /sbin/nologin -g mysql(群组的名字) mysql(用户的名字) -d /home/apps/mysql
5.8 为创建mysql新用户进行授权
chown -R mysql.mysql /home/apps/mysql
5.9 初始化mysql数据库
!!!注意: 在初始化mysql数据库的时候回出现一个默认的登录密码,这个密码我们
需要记录下来,因为接下来会用,直到我们后面修改密码后,这个密码才不再需要
在mysql的bin目录中
!!!注意:在bin目录中有很多启动命令,一定要使用mysqld,不要用成了mysql了
./mysqld --initialize --user=mysql --basedir=/home/apps/mysql --datadir=/home/apps/mysql/data
获取的初始密码是显示出来的信息的最后一串字符串
5.10 修改my.cnf文件
vim /etc/my.cnf
对该文件的配置如下:
[mysqld]
basedir=/home/apps/mysql
datadir=/home/apps/mysql/data
socket=/tmp/mysql.sock
user=mysql
port=3306
character_set_server=utf8
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/home/apps/mysql/data/error.log
pid-file=/home/apps/mysql/data/mysqld.pid
tmpdir=/tmp
5.11 把mysql添加到系统服务器中
在mysql的目录中:
cp support -files/mysql.server /etc/init.d/mysqld
mysqld文件其实并不存在(也就是说在init.d目录下并不存在mysqld),
是把mysql.server文件复制过去后修改了名字,所以mysqld就是mysql.server文件
5.12 编辑mysqld文件
vim /etc/init.d/mysqld
basedir=/home/apps/mysql
datadir=/home/apps/mysql/data
mysqld_pid_file_path=/home/apps/mysql/data/mysqld_pid
5.13 启动mysql服务
service mysqld start
看到success说明启动成功!
5.14 登录mysql(这里需要用到第九步的密码了)
在mysql的bin目录下
./mysql -u root -p
然后将刚刚的面粘贴上去
5.15 修改root用户的密码
所有的命令行/sql语句都必须要带分号“;”,而且所有的字符串都必须要使用单引号,不能使用双引号
set password for 'root'@localhost=password('123456');
5.16 配置mysql的远程访问
查看所有的数据库:show databases;
使用mysql数据库:use mysql;
查看mysql数据库下的所有表名:show tables;
update user set host='%' where user='root' limit 1;
5.17 提交和刷新
flush privileges;