2014年4月26日土曜日

MySQLのパーティションのタイムスタンプ - 日時

Original post: http://anothermysqldba.blogspot.com/2014/04/mysql-partitions-timestamp-datetime.html

だから私は最近、私はまだMySQLのパーティションについてはあまり話していないことに気づきました。
MySQLのパーティション上の多くの良いブログの記事は、すでに存在しており、私は以下のいくつかを記載しております。
私は、次のような状況に遭遇してしまったと私はそれが他の人に役立つことを証明願っています。

timestampデータ型は、しばしば使用されるが、日時はパーティションで良い作品。
(タイムスタンプはないUPDATE CURRENT_TIMESTAMPにNOT NULLにDEFAULT CURRENT_TIMESTAMP)

だから、それをどのようにどのようにこれを修正する例を次に示します。

我々はこの単純なテーブルを持って開始します。

CREATE TABLE `t1` (
`t1_id` int(11) NOT NULL AUTO_INCREMENT,
`field1` varchar(25) DEFAULT NULL,
`field2` int(10) DEFAULT '0',
`time_recorded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`t1_id`),
KEY `tr` (`time_recorded`)
) ENGINE=InnoDB AUTO_INCREMENT=856964


私たちは、time_recordedフィールド上でパーティションを作成する。 それは、直接にするために、我々は毎月、それを中断します。


ALTER TABLE t1
PARTITION BY RANGE ( TO_DAYS(time_recorded) ) (
PARTITION Jan2014 VALUES LESS THAN (TO_DAYS('2014-02-01')),
PARTITION Feb2014 VALUES LESS THAN (TO_DAYS('2014-03-01')),
PARTITION Mar2014 VALUES LESS THAN (TO_DAYS('2014-04-01')),
PARTITION Apr2014 VALUES LESS THAN (TO_DAYS('2014-05-01')),
PARTITION May2014 VALUES LESS THAN (TO_DAYS('2014-06-01')),
PARTITION Jun2014 VALUES LESS THAN (TO_DAYS('2014-07-01')),
PARTITION Jul2014 VALUES LESS THAN (TO_DAYS('2014-08-01')),
PARTITION Aug2014 VALUES LESS THAN (TO_DAYS('2014-09-01')),
PARTITION Sep2014 VALUES LESS THAN (TO_DAYS('2014-10-01')),
PARTITION Oct2014 VALUES LESS THAN (TO_DAYS('2014-11-01')),
PARTITION Nov2014 VALUES LESS THAN (TO_DAYS('2014-12-01')),
PARTITION Dec2014 VALUES LESS THAN (TO_DAYS('2015-01-01')),
PARTITION Jan2015 VALUES LESS THAN (TO_DAYS('2015-02-01'))
);
ERROR 1486 (HY000): Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed


だから今何を....

さて私は、我々は、パーティションが必要な場合は更新され、主キーを必要とする知っている。

ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY (`t1_id`,`time_recorded`), LOCK=NONE;
Query OK, 0 rows affected (38.96 sec)
Records: 0 Duplicates: 0 Warnings: 0

私は、MySQL 5.6を使用していたためであるLOCK = NONEを持っていないことに注意してください
主キーの変更は、私はまだ、データ型を調整する必要があり、私はかかわらず、パーティションを追加することはできません。 今回はSHARED = LOCKEDを使用しています。 詳細については、上記のハイパーリンクを確​​認してください。 あなたが動作しないタイプを選ぶことが起こる場合、通常は実行可能な解決策を提案します。

ALTER TABLE t1 CHANGE time_recorded time_recorded datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, LOCK=SHARED;
Query OK, 854312 rows affected (41.89 sec)
Records: 854312 Duplicates: 0 Warnings: 0


だから今我々は我々のパーティションを追加することができます。

ALTER TABLE t1
-> PARTITION BY RANGE ( TO_DAYS(time_recorded) ) (
-> PARTITION Jan2014 VALUES LESS THAN (TO_DAYS('2014-02-01')),
-> PARTITION Feb2014 VALUES LESS THAN (TO_DAYS('2014-03-01')),
-> PARTITION Mar2014 VALUES LESS THAN (TO_DAYS('2014-04-01')),
-> PARTITION Apr2014 VALUES LESS THAN (TO_DAYS('2014-05-01')),
-> PARTITION May2014 VALUES LESS THAN (TO_DAYS('2014-06-01')),
-> PARTITION Jun2014 VALUES LESS THAN (TO_DAYS('2014-07-01')),
-> PARTITION Jul2014 VALUES LESS THAN (TO_DAYS('2014-08-01')),
-> PARTITION Aug2014 VALUES LESS THAN (TO_DAYS('2014-09-01')),
-> PARTITION Sep2014 VALUES LESS THAN (TO_DAYS('2014-10-01')),
-> PARTITION Oct2014 VALUES LESS THAN (TO_DAYS('2014-11-01')),
-> PARTITION Nov2014 VALUES LESS THAN (TO_DAYS('2014-12-01')),
-> PARTITION Dec2014 VALUES LESS THAN (TO_DAYS('2015-01-01')),
-> PARTITION Jan2015 VALUES LESS THAN (TO_DAYS('2015-02-01'))
-> );
Query OK, 854312 rows affected (50.74 sec)
Records: 854312 Duplicates: 0 Warnings: 0


我々は、SELECT、UPDATE、INSERTおよびパーティションごとなどを削除することができます。 :なお、ここでの詳細https://dev.mysql.com/doc/refman/5.6/en/partitioning-selection.html 。

SELECT COUNT(t1_id) FROM t1 PARTITION (Jan2014);
+--------------+
| COUNT(t1_id) |
+--------------+
| 661752 |
+--------------+
1 row in set (0.55 sec)
SELECT COUNT(t1_id) FROM t1 PARTITION (Feb2014);
+--------------+
| COUNT(t1_id) |
+--------------+
| 64952 |
+--------------+
1 row in set (0.04 sec)
SELECT COUNT(t1_id) FROM t1 PARTITION (Mar2014);
+--------------+
| COUNT(t1_id) |
+--------------+
| 71336 |
+--------------+
1 row in set (0.04 sec)
SELECT COUNT(t1_id) FROM t1 PARTITION (Apr2014);
+--------------+
| COUNT(t1_id) |
+--------------+
| 56272 |
+--------------+
1 row in set (0.05 sec)


この作品、私たちは今、パーティションを持っていないが。 我々はまた、現在、パーティションのメンテナンスを考慮しなければなりません。 グリンさんのブログには、自動化されたドロップの非常に良い例を提供し、パーティションの追加。 あなたが例を調整する必要がありますパーティションを削除したくない場合は許可した。
私は私のテーブルの例については、それを調整した。 確認してくださいグリンのブログ詳細については。


DROP PROCEDURE IF EXISTS Rotate_t1_Partition;
DELIMITER ;;
CREATE PROCEDURE Rotate_t1_Partition (newPartValue DATETIME)
BEGIN
-- Setup
DECLARE keepStmt VARCHAR(2000) DEFAULT @stmt;
DECLARE partitionToDrop VARCHAR(64);

-- Find and drop the first partition in the table.
SELECT partition_name
INTO partitionToDrop
FROM INFORMATION_SCHEMA.PARTITIONS
WHERE table_schema='forums_mysql'
AND table_name='t1'
AND partition_ordinal_position=1;
SET @stmt = CONCAT('ALTER TABLE t1 DROP PARTITION ', partitionToDrop);
PREPARE pStmt FROM @stmt;
EXECUTE pStmt;
DEALLOCATE PREPARE pStmt;

-- Add a new partition using the input date for a value limit.
SET @stmt = CONCAT('ALTER TABLE t1 ADD PARTITION (PARTITION ', DATE_FORMAT(newPartValue - interval 1 MONTH, '%b%Y'), ' VALUES LESS THAN (TO_DAYS(\'', DATE_FORMAT(newPartValue, '%Y-%m-%d'),'\')))');
PREPARE pStmt FROM @stmt;
EXECUTE pStmt;
DEALLOCATE PREPARE pStmt;

-- Cleanup
SET @stmt = keepStmt;
END;;
DELIMITER ;


だから私は、簡単に次のようになりました、このテーブルを更新することができます。

CALL Rotate_t1_Partition('2015-03-01');
Query OK, 0 rows affected (1.11 sec)


のようにしても、できグリンのブログが指摘して、あなたは今、()+区間1ヶ月以上、これまでその時間枠には、パーティションのために決定してこれを使用することができます。 あなたは既にパーティションの日付を渡すと、それが失敗することを心に留めておく必要が付与します。

自動化を続行するには、イベントにこれを追加することができます。

CREATE EVENT Rotate_t1_Partition
-> ON SCHEDULE EVERY 1 MONTH
-> DISABLE ON SLAVE
-> COMMENT 'Remove oldest partition and add a new one '
-> DO
-> CALL Rotate_t1_Partition(NOW() + interval 1 MONTH);
Query OK, 0 rows affected (0.04 sec)


念頭に置いて、上記の例のための有効な時刻を保つ。 私は一例として、これを使用しました。

2014年4月19日土曜日

セキュア&MySQLのHeartbleed

Original post: http://anothermysqldba.blogspot.com/2014/04/heartbleed-secure-mysql.html
さて懸念の多くは、と当然のこと、最近ではheartbleedのバグについて説明した。

私は、私は専門家がすでに言及している検討しているものよりもはるかに多くを追加しようとする必要はないと思う。 あなたは、以下の記事をレビューしていない場合は知っておくべきです。
それは様々な側面がいくつにダウンしています。
  • まず、お使いのOSを更新し、固定します。
    • その後、MySQLでSSLを使用する場合
      • MySQLを停止
      • お使いの接続のための新たな本命を作成します。
        • つまり、新しい有効期限が切れる日付となどが含まれている必要があり
      • MySQLを起動する
あなたのOpenSSLをパッチの適用は単純明快である。 あなたは、OpenSSL 1.0.1e--16 +にアップデートする必要が
それはあなたのコードリポジトリは、少なくともそれは私がこれまで見てきたものであり、この更新を持つ可能性が高い。


# yum list openssl resulted in 1.0.1e-16.el6_5.7


Fedoraの20を介して、例えば

# rpm -q openssl
openssl-1.0.1e-30.fc20.x86_64

#yum update openssl

インストールされて1:1.0.1電子37.fc20.1

だから、手順に従うのは簡単です、それはあなたのシステムが安全であることを確認するのはあなた次第です。

2014年4月7日月曜日

WebScaleSQLインストールで解決...パート2

Original post: http://anothermysqldba.blogspot.com/2014/04/webscalesql-installation-solved-part-2.html

:これはのフォローアップで試行さWebScaleSQLインストール...パート1

そう典型的なオタク、開発者、馬鹿または何..私はしなかったというRTFMか、この場合のよくある質問 。

私が注目し、ちょうどそれに突入していなかったので、一度、私がインストールされWebScaleSQLを正しく。
最大の問題は、私は古すぎるとOracleのリポジトリは、それがアップグレードされ得るのを助けるためにほとんど何もしなかったLinux OSを(OracleのLinux仮想マシン)を使用していたということでした。 私はちょうどそれがなかったことを、誰もが簡単に使用できるようなもので開始したいと思った一方で。

私がダウンロードしたFedoraの20 。 あなたは、彼らがすでに使用していることがわかります、GCC 4.8.2を。
だから、ポイントは、新しい技術を使用する場合は、同様にあなたのOSのアップデート、十分に簡単である。

あなたが本当にあなたのGCCをアップグレードして、現在のOSに滞在する場合は、これらのハイパーリンクは便利かもしれません:
以下は、私は、それがインストールさにかかった手順は次のとおりです。 依存関係が所定の位置に入ると、それは、インストールの基本的なソースです。

#cd /usr/local/
#yum -y install gcc git readline-devel gcc-c++ bison-devel bison cmake ncurses-devel
# gcc -v
gcc version 4.8.2 20131212 (Red Hat 4.8.2-7) (GCC)

#git clone https://github.com/webscalesql/webscalesql-5.6.git
#ln -s webscalesql-5.6 mysql
#groupadd mysql
#useradd -r -g mysql mysql
#cd mysql/
#cmake . -DENABLE_DOWNLOADS=1
-- Successfully downloaded http://googlemock.googlecode.com/files/gmock-1.6.0.zip
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/webscalesql-5.6

#make
Scanning dependencies of target INFO_BIN
[ 0%] Built target INFO_BIN
Scanning dependencies of target INFO_SRC
[ 0%] Built target INFO_SRC
Scanning dependencies of target abi_check
[ 0%] Built target abi_check
Scanning dependencies of target zlib
[ 1%] Building C object zlib/CMakeFiles/zlib.dir/adler32.co
.....
[100%] Building CXX object mysql-test/lib/My/SafeProcess/CMakeFiles/my_safe_process.dir/safe_process.cc.o
Linking CXX executable my_safe_process
[100%] Built target my_safe_process
#make install
#chmod +x scripts/mysql_install_db
#yum -y install perl-Data-Dumper-Names
#./scripts/mysql_install_db --user=mysql
#chown -R mysql data
#./bin/mysqld_safe &
# ./bin/mysql

mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.6.17 |
+-----------+

mysql> show variables like '%read_only%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| innodb_read_only | OFF |
| read_only | OFF |
| super_read_only | OFF |
| tx_read_only | OFF |
+------------------+-------+

cd mysql-test ; perl mysql-test-run.pl


[OK]を、今我々はそれを持って、実行していることを···我々はそれを探索することができます...

2014年4月4日金曜日

MySQLの説明&SQL_NO_CACHE

Original post: http://anothermysqldba.blogspot.com/2014/04/mysql-explain-sqlnocache.html

だから、今日私は彼らのデータベースのパフォーマンスを持つ人を支援し、いくつかの下手に書かれたクエリに出会った。 今、確かに誰もが目標は、それらを避けるためにあなたができることはすべて行うことです、ミスをする。

つまり、あなたの環境に緩いクエリを聞かせて前にすべき役立つヒントだけのカップル。

常に最初に説明を経由してクエリを実行します。 最初の説明何のような単純なものは、(それが実行されませんので)全くタイプミスを確認せず、クエリを最適化できるようになります。
いくつかのリンクは、すでに説明しての使用方法については存在します。
目標は単純です。 あなたがでpossible_keysとキー(nullではない)での有効なキーをしたいし、それがkey_lenにに来るときには、すべてのテーブルは、行の100Sにしたくない。 あなたが最初にkey_lenには200(私が例として取り上げただ数)であることが得ることができる場合、以下のは5,4,3,2,1としない別の200であることが、あなたのクエリでは、よく実行する必要があります。 それは非常に単純化し、高レベルの文であると私はあなたが詳しく説明し理解することが記載されているハイパーリンクを参考することができます。 今日見たクエリは、5 +が参加し、すべてのkey_lenにサブセレクト(参加を通じてどこ声明の中で優れていた)と200 +の行がありました。 いくつかの調整はあなたのクエリが1秒以下に200秒からドロップできるようにすることができます。 いつも、いつも、いつも説明しますか。

次のヒントは、SQL_NO_CACHEを使用してクエリをテストしてみてください。 これは、実際のクエリをテストし、それをあなたができる最善の方法を最適化することができます。 それは(それがになる場合)、キャッシュされたとなったら、それはあなたのためだけに、そのはるかに高速に実行されます。
最後の注意...一度フォージサイトに存在していたが、今であるMySQLのSQLパフォーマンスのヒントを見てみましょう- https://wikis.oracle.com/pages/viewpage.action?pageId=27263381

2014年4月1日火曜日

ただMySQLUsercloneやMySQLユーザーをコピーします

Original post: http://anothermysqldba.blogspot.com/2014/04/mysqluserclone-or-just-copy-mysql-users.html

私は最近出会ったMySQLのフォーラム投稿新しいシステムにユーザーを移行する方法を探していました。

これはいくつかの方法を行うことができますが、私はそれが私に遊ぶとデモする機会与えた考え出しmysqlusercloneのツールを。

だから私は、2つのデータベースのみ1ウィキユーザーを持っている。


root@localhost [(none)]> select VERSION();
+------------+
| VERSION() |
+------------+
| 5.6.10-log |
+------------+
root@localhost [(none)]> show grants for wikiuser@localhost;
+-------------------------------------------------------------------------------------------------------------------+
| Grants for wikiuser@localhost |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wikiuser'@'localhost' IDENTIFIED BY PASSWORD '1e09502e61120480' |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, LOCK TABLES ON `wikidb`.* TO 'wikiuser'@'localhost' |
+-------------------------------------------------------------------------------------------------------------------+

select VERSION();
+------------+
| VERSION() |
+------------+
| 5.5.30-log |
+------------+
show grants for wikiuser@localhost;
ERROR 1141 (42000): There is no such grant defined for user 'wikiuser' on host 'localhost'



だから今mysqlusercloneツールを使用する


Usage: mysqluserclone --source=user:pass@host:port:socket --destination=user:pass@host:port:socket joe@localhost sam:secret1@localhost

# mysqluserclone --source=root:<PASSWORD>@localhost:3306 --destination=root:@localhost:3307 wikiuser@localhost wikiuser@localhost
# Source on localhost: ... connected.
# Destination on localhost: ... connected.
# Cloning 1 users...
# Cloning wikiuser@localhost to user wikiuser@localhost
# ...done.

root@localhost [(none)]> select VERSION();
+------------+
| VERSION() |
+------------+
| 5.5.30-log |
+------------+
1 row in set (0.00 sec)

root@localhost [(none)]> show grants for wikiuser@localhost;
+-------------------------------------------------------------------------------------------------------------------+
| Grants for wikiuser@localhost |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wikiuser'@'localhost' |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, LOCK TABLES ON `wikidb`.* TO 'wikiuser'@'localhost' |
+-------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
私は、ユーザーのパスワードを設定しなかったため、パスワードが欠落していることに注意してください。 十分ではありませんOPPS。

付与された新しいパスワードで新しいユーザーアカウントを設定したい場合、それは素晴らしい作品。 私はクローンコマンドの一部として、新しいパスワードを渡されたのでした

mysqluserclone --source=root:<PASSWORD>@localhost:3306 --destination=root:@localhost:3307 wikiuser@localhost wikiuser:<PASSWORD>@localhost


しかし、どのような場合、私は、パスワードを知らないのか? 私は、すべてのクライアントがすべての同じパスワードを持つようにしたい。

私はまた、以下のプロセスを行うことができます。
  • DBの1からの助成金を集める
  • 助成金のためにファイルを編集して、私は移動したい
  • 安全なSQLを作るために、コメントを追加し、ユーザーのファイルを編集
  • DB 2にファイルをロード
select CONCAT('SHOW GRANTS FOR `',USER,'`@',HOST,';') as showgrants FROM mysql.user INTO OUTFILE '/tmp/showgrants.sql';

vi /tmp/showgrants.sql

mysql < /tmp/showgrants.sql > /tmp/user_grants.sql

vi /tmp/user_grants.sql
:%s/Grants for/#Grants for/g
:%s/\n/;\r/g
mysql --port=3307 -u root -p < /tmp/user_grants.sql
> show grants for wikiuser@localhost;
+----------------------------------------------------------------------------------------------------------+
| Grants for wikiuser@localhost |
+----------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wikiuser'@'localhost' IDENTIFIED BY PASSWORD '1e09502e61120480' |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, LOCK TABLES ON `wikidb`.* TO 'wikiuser'@'localhost' |
+----------------------------------------------------------------------------------------------------------+



今、私は、同じユーザー、ホストおよびパスワードを取得している。

2014年3月28日金曜日

WebScaleSQLのインストールが試み...パート1

Original post: http://anothermysqldba.blogspot.com/2014/03/webscalesql-installation-attempted-part.html

まだニュースを参照していない場合だけでなく、すべての手段によって、このリンクをたどるとについて読んWebScaleSQL 。 これについての彼らのハードワークのためのFacebook、Twitterと​​Googleのエンジニアのチームに感謝します。 私はそれを動作させるかつて私は、これは将来的にはより多くの開発をどのように見て好奇心旺盛です。

ここで私はこれまでに遭遇したものです。 私は、これが成功したブログの記事になりたかった、私はそれが動作して得るまで代わりに、一部1になります。

私は、新しいあなたのそれらのためにWebScaleSQLをインストールする方法を少し我慢すると考えましたGitHubの本のいずれか。 それは結局、コミュニティからのフィードバックがかかるので、コミュニティはインストールし、それを試してみることができる必要がある。

この例では、私は事前に構築されたOracleのLinux仮想ボックス画像を取った。 私はすでに1を持っていたが、それはここから入手可能です: http://www.oracle.com/technetwork/server-storage/linux/downloads/vm-for-hol-1896500.html。

それがあることは明らかであるべきWebScaleSQLが上で使用するためのものではありませんVirtualBoxの製造においては、これは単なるデモです。 私はそれが人々は誰もがダウンロードしてこれを使用することができますので、それを試してみるための言い訳がないことを意味しているとVirtualBoxを 。 私はあなたが十分なスペースを持っているようにイメージが付属して追加のディスクを有効にする必要がありました。 、パーティションをフォーマットし、すべてのディスクユーティリティを介して行うことができるディスクをマウントするには。 私の例のための完成品は以下の通りです。

[root@oraclelinux6 oracle]# ls -al /media/
drwx------ 3 oracle oracle 4096 Mar 27 16:19 webscaledisk
drwx------ 3 oracle oracle 4096 Mar 27 16:21 workspace
[root@oraclelinux6 oracle]# chmod 777 /media/workspace/
[root@oraclelinux6 oracle]# chmod 777 /media/webscaledisk/

のコードWebScaleSQLが提供されていますGitHubの 。 zipファイルをダウンロードすることができ、ここで 。 私はGitHubのコードリポジトリのメソッドを経由してコードをチェックアウトすることを選択した。 他の人がSSHキーのヘルプが必要な場合はGitbhubのリファレンスを参照してくださいページを 。

gitのパッケージには、OracleのLinux上では使用できませんが、あなたはGitHubのバージョンを使用する場合は、その素早く解決される。

[oracle@oraclelinux6 ~]$ sudo bash
[root@oraclelinux6 oracle]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
[root@oraclelinux6 oracle]# wget http://git-core.googlecode.com/files/git-1.7.10.1.tar.gz
[root@oraclelinux6 oracle]# tar -xvzf git-1.7.10.1.tar.gz
[root@oraclelinux6 oracle]# cd git-1.7.10.1
[root@oraclelinux6 git-1.7.10.1]# make prefix=/usr/local all
[root@oraclelinux6 git-1.7.10.1]# make prefix=/usr/local install
[root@oraclelinux6 git-1.7.10.1]# exit
$ git --version
git version 1.7.10.1

Gitとしたら、SSH鍵が準備ができているあなたがダウンロードすることができます。

[oracle@oraclelinux6 ~]$ cd /media/workspace/
[oracle@oraclelinux6 workspace]$ git clone https://github.com/webscalesql/webscalesql-5.6.git
Cloning into 'webscalesql-5.6'...
remote: Counting objects: 28637, done.
remote: Compressing objects: 100% (10926/10926), done.
remote: Total 28637 (delta 17074), reused 28419 (delta 16936)
Receiving objects: 100% (28637/28637), 48.01 MiB | 796 KiB/s, done.
Resolving deltas: 100% (17074/17074), done.



[OK]しかし、コードを取得することを決めた...私たちは、今ではインストールされて取得してみてましょう。 明確にするために、これは、これは基本的なMySQLのソースをインストール新しいものではないはずされているが、それだけでWebScaleSQLパッケージを使用しています。 私が行ったようにそれは基本的に同じ手順に従いますここの前に。

私が最初にこのクリーンなシステムには、いくつかの依存関係を必要としていました。 あなたはあなたにもいくつかを必要とするかもしれません、それはすべてあなたのシステムと、以下のCMakeのコマンドの結果に依存している。


[root@oraclelinux6 workspace]# yum -y install ncurses-devel readline-devel cmake gcc gcc-c++ bison-devel bison
[root@oraclelinux6 workspace]# wget http://googlemock.googlecode.com/files/gmock-1.6.0.zip
[root@oraclelinux6 workspace]# unzip gmock-1.6.0.zip
[root@oraclelinux6 workspace]# cd gmock-1.6.0
[root@oraclelinux6 gmock-1.6.0]# ./configure
[root@oraclelinux6 gmock-1.6.0]# make
[root@oraclelinux6 gmock-1.6.0]# make check
....
=====================================================
1 of 4 tests failed
Please report to googletestframework@googlegroups.com
=====================================================
make[2]: Leaving directory `/media/workspace/gmock-1.6.0/gtest'
make[1]: Leaving directory `/media/workspace/gmock-1.6.0/gtest'
[OK]をので、次の段階(part 2) 、私はGoogleのコードを動作させるため、一度、次のあるべき...

ところでdenable_downloadsはダウンロードしてインストールgmockをだけでなく、それはまた失敗する必要があります。

[root@oraclelinux6 workspace]# groupadd mysql
[root@oraclelinux6 workspace]# useradd -r -g mysql mysql
[root@oraclelinux6 workspace]# ln -s /media/workspace/webscalesql-5.6/ /usr/local/mysql
[root@oraclelinux6 workspace]# chown -R mysql:mysql webscalesql-5.6/
[root@oraclelinux6 workspace]# cd webscalesql-5.6/
[root@oraclelinux6 webscalesql-5.6]# cmake -DENABLE_DOWNLOADS=1 .
make
make install
./scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data

そうではない準備だけでまだ..しかし、私はそれを動作かつて私はあなたのすべてに戻ってきます。 私は意志の信仰を持っている。

WebScaleSQLインストールで解決...パート2

2014年3月27日木曜日

Perconaクラウドツール

Original post: http://anothermysqldba.blogspot.com/2014/03/percona-cloud-tools.html

だから私は本当にPerconaは手を差し伸べるとしてMySQLの懸念や問題を分析するためのソリューションを提供しているという事実のようなcloud.percona.com 。

これは、インストールが非常に簡単です。 最速の方法は、私が持っている、Percona YUMレポがインストールされていることです別のブログ 、必要に応じてそのことについては、だから、PT-エージェントがインストールされています。

私はそうしないと、ユーザー名とパスワード情報を設定する必要が、rootユーザー用に設定。my.cnfファイルを持っていたので、これは簡単に行われていた。

にログインcloud.percona.comまず移動してエージェントをインストールする。

# pt-agent --install
Step 1 of 12: Verify the user is root: OK
Step 2 of 12: Check Perl module dependencies: OK
Step 3 of 12: Check for crontab: OK
Step 4 of 12: Verify pt-agent is not installed: OK
Step 5 of 12: Verify the API key:
Enter your API key: <API KEY HERE provided on the percona website>
Step 5 of 12: Verify the API key: OK
Step 6 of 12: Connect to MySQL: OK
Step 7 of 12: Check if MySQL is a slave: NO
Step 8 of 12: Create a MySQL user for the agent: OK
Step 9 of 12: Initialize /etc/percona/agent/my.cnf: OK
Step 10 of 12: Initialize /root/.pt-agent.conf: OK
Step 11 of 12: Create the agent: OK
Step 12 of 12: Run the agent: pt-agent has daemonized and is running as PID 16333:

--lib /var/lib/pt-agent
--log /var/log/pt-agent.log
--pid /var/run/pt-agent.pid

These values can change if a different configuration is received.
OK
INSTALLATION COMPLETE
そのような単純な..それからちょうどPerconaのウェブサイトに再度ログインhttps://cloud.percona.comシステムあたりのエージェントの設定を有効にして調整します。

データの最初の量を収集するために、それを約15分を与え、その後、すべてのあなたの指先でデータに設定されている。 あなただけのウェブサイト上で提供される「クエリ分析」ボタンをクリックします。

のMySQLブランチによっては、別の分析を取得し、明らかにPerconaは彼らのツールを使用してPerconaサーバー5.5.34以降を使用することを好むだろうが、それはすべてのMySQLで動作します。

あなたのエージェントいったん戻っPerconaにデータを送信された、クエリのプロファイルを介して提供クエリーカウントあたりのサーバーの概要のグラフ、照会時間、ロック時間、送信された行、調べ行、クエリの長​​さだけでなく、情報を表示することができます。

「ファイルソートは、ファイルソートがディスクにフル参加、フルスキャン、クエリキャッシュのヒット、一時テーブル、ディスク上の一時テーブルにのみ使用できますPerconaサーバー。 " - cloud.percona.com