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 は必須アクセス制御メカニズムを提供しており、これは Linux カーネル 2.6 バージョンに統合されています。
詳細情報の表示:
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
[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] 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 ...
mysqld_multi --defaults-file=/etc/mysql/my_multi.cnf start 1
mysqld_multi --defaults-file=/etc/mysql/my_multi.cnf start 2
ログイン後にコピー
6 Mysqlmysqld_multi --defaults-file=/etc/mysql/my_multi.cnf start 1 mysqld_multi --defaults-file=/etc/mysql/my_multi.cnf start 2
# 登陆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'@'%';
ログイン後にコピー にログインします
# 登陆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'@'%';