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'@'%';