0 简介
随着互联网技术的发展,数据量越来越庞大,我们急需一个大的存储和大的分析系统。虽然有nosql数据库、hadoop文件存储等数据存储方式能够解决该问题,但是,关系型数据库依然有它的优势所在,尤其是对结构化数据的处理,性能仍然很棒。或者,从公司的项目开发成本讲,关系型数据库的使用比nosql数据库使用更加简易,更加便于维护。
因此,本文介绍一下Mycat使用的第一步(当然,这一步不是必须的),学会如何搭建Mysql单机多实例,从而应对大数据量查询慢的问题。
1 启动项
vim /etc/apparmor.d/usr.sbin.mysqld
/etc/init.d/apparmor reload
AppArmor(Application Armor)是Linux内核的一个安全模块,AppArmor允许系统管理员将每个程序与一个安全配置文件关联,从而限制程序的功能。简单的说,AppArmor是与SELinux类似的一个访问控制系统,通过它你可以指定程序可以读、写或运行哪些文件,是否可以打开网络端口等。作为对传统Unix的自主访问控制模块的补充,AppArmor提供了强制访问控制机制,它已经被整合到2.6版本的Linux内核中。
详细资料查看:
Apparmor——Linux内核中的强制访问控制系统
http://www.cnblogs.com/-Lei/a…
2 创建新实例的数据目录
mkdir /var/lib/mysql2 创建目录
chown mysql /var/lib/mysql2 给mysql用户权限
3 创建数据库,初始化数据库
mysql 5.7以下
mysql_install_db –user=mysql –datadir=/var/lib/mysql2mysql 5.7以上
–user=mysql –datadir=/var/lib/mysql2
4 配置多实例配置文件
[mysqld_multi]
mysqld = /install/mysql/bin/mysqld_safe
mysqladmin = /install/mysql/bin/mysqladmin
user = root
# The MySQL server
[mysqld1]
port = 3306
socket = /tmp/mysql.sock
datadir =/var/lib/mysql
pid-file =/var/lib/mysql/mysql.pid
user =mysql
log-bin =master-bin
log-bin-index =master-bin.index
...
[mysqld2]
port = 3307
socket =/tmp/mysql2.sock
datadir =/var/lib/mysql2
pid-file =/var/lib/mysql2/mysql.pid
user =mysql
...
5 启动实例
mysqld_multi --defaults-file=/etc/mysql/my_multi.cnf start 1
mysqld_multi --defaults-file=/etc/mysql/my_multi.cnf start 2
6 登陆Mysql
# 登陆Mysql服务器,执行mysql命令进入mysql控制台
mysql -uroot -P3307 -p -S/tmp/mysql2.sock
# 不用输入密码,直接回车
# 查看当前用户
select User from mysql.user;
# 创建Mysql用户test,并赋权限
CREATE USER 'test'@'%' IDENTIFIED BY '123456';
GRANT GRANT OPTION ON *.* TO 'test'@'%';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'test'@'%';