タグ付けされた質問 「mysql」

MySQLはOracleが所有するオープンソースのデータベースです。

3
なぜApacheは暴走してMySQLを殺してしまうのですか?
Apacheは過去数日間で制御不能になり、MySQLを2回クラッシュさせました。phpBBフォーラムも含まれているWordPress Webサイトを移行したときにすべてが始まりました。 サーバー管理の経験があまりないので、問題の原因を特定するのが非常に困難でした。MySQLがダウンしていることに気づいたとき、私はTOPを実行し、システム負荷が98.00に急上昇するのを見ました。サーバーは10個のV-HOSTSを実行しており、そのすべてが正常な量のトラフィックを受信して​​いるため、明らかに多くのapache-2プロセスが実行されているのがわかりました。 サーバーの高負荷が10分間続いた後、通常の状態に戻りました。この時点では、ネットワークトラフィックの急増は見られませんでした。 残念ながら、MySQLエラーロギングは無効になっている(現在は再度有効になっている)ため、手掛かりはありません。しかし、それはApacheがすべてのリソースを消費していたため、MySQLプロセスIDが強制終了されたためだと確信しています。 私の質問は: 次回これが発生した場合-システム負荷の急上昇の原因を特定するにはどうすればよいですか?クレイジーになったphpスクリプトでしょうか?DDOS攻撃か? MySQLがクラッシュしたときに自動的にMySQLを再起動する方法はありますか? インストールしましたhtop。これはもっと便利topでしょうか? ここに私のサーバー統計: m1.xlarge (8 ECUs, 4 vCPUs, 15 GiB memory, 4 x 420 GiB Storage Capacity) Ubuntu Server 12.04.3 LTS

3
CPUを追加するとMySQL 5.5(Debian)のパフォーマンスが低下する
私はOpenVZコンテナーにデータベースサーバー(MySQL)をセットアップしようとしていますが、それに割り当てる必要のあるCPUの数を考えていました。ベンチマークすることにしました。2つのOS / MySQLディストリビューションを比較し、1、2、3、4 CPUでどのように動作するかをテストしました。 最初のソフトウェア構成は次のとおりです。 CentOSリリース6.5(最終) mysql Ver 14.14 Distrib 5.1.71、readline 5.1を使用するredhat-linux-gnu(x86_64)用 二番目: Debian GNU / Linux 7 \ n \ l mysql Ver 14.14 Distrib 5.5.31、debian-linux-gnu(x86_64)、readline 6.2使用 両方が同じカーネルで実行されていました-2.6.32-openvz-042stab083.2-amd64#1 SMP Fri Nov 8 17:59:25 MSK 2013 x86_64 GNU / Linux。 すべてのソフトウェアはパッケージからインストールされ、カスタム構成の微調整なしですぐに使用できます。 ハードウェア:6GB RAM、1-4 CPU 3.5 GHz。 ベンチマークには、sysbenchを次のシナリオで使用しました。 sysbench --test=oltp --oltp-table-size=1000000 …

2
Mysqlスレーブが「システムロック」でスタック
MySQLスレーブはで多くの時間を費やしていSlave_SQL_Running_State: System lockます。システムは現在I / O書き込みバウンドであり、ゆっくりではありますがログを処理していることがわかります。Show processlistこの状態の場合、「マスターがイベントを送信するのを待っています」と「システムロック」以外は表示されません。 すべての私のテーブル(システムテーブルを除く)はInnoDBであり、外部ロックは無効になっています。この状態でスレーブは何をしていますか? リクエストされた情報は次のとおりです。 まず、これはAmazon EC2インスタンス上のMySQL 5.6コミュニティであり、すべてのストレージがEBSにあります。 mysql> show processlist; +----+-------------+-----------+---------------+---------+--------+----------------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------------+-----------+---------------+---------+--------+----------------------------------+------------------+ | 1 | system user | | NULL | Connect | 26115 | Waiting for master to …

3
mysqldumpがワイルドカードを含むテーブルを無視する
プレフィックスを持つ約15の奇数を除外したい50の奇数テーブルを含むデータベースのダンプをとる必要があります exam_ 試しmysqldump --ignore-table=dbname.exam_* てみましたが--ignore-table=dbname.exam_% 、期待どおりに動作しませんでした。--ignore-table複数回使用しなければなりませんでした。 編集:リストtables not like tablename_%してに渡すシェルスクリプトをいくつか見ましたmysqldump。 ただし、mysqldumpまたはmysqlにスクリプトを記述しなくても同じように実行できるオプションがあるかどうかを知りたいのですが。 Edit-add:最終的にスクリプトを使用して、DBを除くテーブルをignore-table=複数回ダンプしました。

4
巨大なMySQL innodbデータベースを効率的にダンプする方法は?
データベースの合計サイズが260 GBであり、DBが保存されるルートパーティション自体が300 GBであるUbuntu 10.04のプロダクションMySQLデータベースサーバーを取得しました。など現在、他のディスクはサーバーに接続されていません。 私の仕事は、このデータベースを別のデータセンターにある他のサーバーに移行することです。問題は、最小限のダウンタイムでそれを効率的に行う方法ですか? 私は次のように考えています: サーバーに追加のドライブを接続し、そのドライブでダンプを取るように要求します。[編集:今は不可能です。] ダンプを新しいサーバーに転送して復元し、既存のサーバーの新しいサーバースレーブを作成してデータの同期を維持します 移行が必要な場合は、レプリケーションを中断し、読み取り/書き込み要求を受け入れるようにスレーブ構成を更新し、古いサーバーを読み取り専用にして、書き込み要求を受け付けないようにし、アプリ開発者にdbの新しいIPアドレスで構成を更新するように指示します。 これを改善するための提案や、このタスクの代替のより良いアプローチは何ですか?
8 innodb  mysql 

3
Debian-起動時にMySQLが起動しないようにする
私のコンピューターには開発目的でMySQLがインストールされていますが、ほとんどの場合は使用しません。それはブート時にMySQLを開始しませんが、私は(使用するように指示する場合にのみので、どのように私は私のDebianを設定することができますservice mysql start)。 私はapache2を使って同じことをしました、 update-rc.d -f apache2 remove しかし、MySQLでこれを行う方法を見つけることができませんでした。
8 mysql  debian  boot 

3
セキュリティで保護されていないMySQL 'root' @ 'localhost'アカウントにリモートアクセスしますか?
少し背景:PBXシステムがハッキングされたところです。サーバー自体は安全なようです(ログに記録された無許可のコンソールアクセス-SSHなど)。しかし、どういうわけかハッカーは新しい管理ユーザーをPBXソフトウェア(FreePBX、MySQLに支えられている)に挿入できました。Apacheログは、ハッカーがWebインターフェース(またはWebインターフェースのエクスプロイト)を使用せずにユーザーを追加したことを示しています。 その後、MySQLがrootパスワードなしで実行されており(!!)、外部IPアドレスに公然とバインドされていることを発見しました(明らかに、これをロックしました)。ただし、MySQLで唯一のルートレベルのユーザーは'root'@'localhost'およびであり'root'@'127.0.0.1'、どちらもローカルでのみアクセス可能である必要があります。 だから、私の質問はこれです: MySQLへの接続をスプーフィングして、リモートIPアドレスから 'root' @ 'localhost'ユーザーへの接続を許可し、ローカルで他のエクスプロイトを実行する方法はありますか? 参考までに、ボックスはMysql 5.0.95を実行するCentos 5(Linux 2.6.10)です。

1
エラー2006:MySQLサーバーが廃止されました
CentOSサーバーでuWSGIとnginxを使用してPython Pyramidアプリを実行しています。SQLAlchemyをORMとして、MySQLdbをAPIとして、MySQLをデータベースとして使用しています。サイトはまだ稼働していないため、トラフィックは私と会社の他の従業員だけです。データベースにデータを追加するためにデータを購入したため、最大(かつ最も頻繁に照会される)テーブルは最大150,000行です。 昨日、ウェブサイトの4つの新しいタブを連続して開いたところ、502のBad Gatewayエラーがいくつか返されました。uWSGIログを調べたところ、次のことがわかりました。 sqlalchemy.exc.OperationalError: (OperationalError) (2006, 'MySQL server has gone away') 'SELECT ge... 重要な注意: このエラーは、MySQLのwait_timeoutが原因ではありません。そこに行って、それをやった。 この問題は、同時リクエストが同時に処理されたために発生したのではないかと思いました。私は自分を貧乏人の負荷テスターに​​しました: for i in {1..10}; do (curl -o /dev/null http://domain.com &); done; 案の定、これらの10件のリクエスト内で、少なくとも1件は2006エラーをスローし、多くの場合はそれ以上になります。時々エラーはさらに奇妙なものになるでしょう、例えば: sqlalchemy.exc.NoSuchColumnError: "Could not locate column in row for column 'table.id'" 列が最も確実に存在し、他のすべての同一のリクエストで正常に機能したとき。または、これ: sqlalchemy.exc.ResourceClosedError: This result object does not return rows. It has …
8 mysql  python  uwsgi 

2
MySQLスロー書き込み
次の表への挿入は、完了するまでに最大70秒かかります。 CREATE TABLE IF NOT EXISTS `productsCategories` ( `categoriesId` int(11) NOT NULL, `productsId` int(11) NOT NULL, PRIMARY KEY (`categoriesId`,`productsId`), KEY `categoriesId` (`categoriesId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; テーブルには約100,000行あり、ディスク上で7MBを使用しています。 MySQLには、書き込みパフォーマンスを改善できるいくつかの設定がありますか? 私のmy.cnfファイルは次のとおりです: log-slow-queries="/var/log/mysql/slow-query.log" long_query_time=1 log-queries-not-using-indexes innodb_buffer_pool_size=4G innodb_log_buffer_size=4M innodb_flush_log_at_trx_commit=2 innodb_thread_concurrency=8 innodb_flush_method=O_DIRECT query_cache_size = 6G key_buffer_size = 284M query_cache_limit = 1024M thread_cache_size = 128 table_cache …
8 mysql  innodb 

1
max_binlog_size&ログビンサイズ
ディスク全体に問題がある -rw-rw---- 1 mysql mysql 1073741982 2012-07-03 18:14 mysql-bin.000034 -rw-rw---- 1 mysql mysql 1073741890 2012-07-04 14:39 mysql-bin.000035 -rw-rw---- 1 mysql mysql 1073741988 2012-07-05 09:16 mysql-bin.000036 -rw-rw---- 1 mysql mysql 1073741964 2012-07-06 00:04 mysql-bin.000037 -rw-rw---- 1 mysql mysql 1073741974 2012-07-06 21:45 mysql-bin.000038 -rw-rw---- 1 mysql mysql 1073741923 2012-07-07 19:05 mysql-bin.000039 -rw-rw---- …

2
Mysql tmp_table_sizeおよびmax_heap_table_sizeが機能していません
次のmy.cnfように、ファイルのテーブルtmpサイズをより高い値に設定しました。 tmp_table_size = 64M max_heap_table_size = 64M しかし、それは機能していません。このスクリプトを使用して確認しました。再起動した後でも、16Mがデフォルト値であることを示しています。 何が悪いのですか?
8 mysql 

4
MySQLサーバーを自動スケーリングする方法は?
トラフィックが急増しているサイトを運営しています。そのため、この場合、自動スケーリングソリューションは非常に有益です。現在、Webサーバーは水平方向に自動スケーリングできますが、ボトルネックはMySQLサーバーにあります。 私はAmazon RDSマルチAZを試してみましたが、12 GBのデータベースをアップグレードするには、数分のダウンタイムで15分程度かかります。ある特定の瞬間にトラフィックの急増が起こることをすでに知っていたとき、それは多くの助けとなりました。 Xeroundも検討しました。このサイズのデータ​​ベースでは非常にコストがかかりますが、これはおそらく最良のソリューションです。とにかく、データベースをEUに置くことを法的に必要とするため、これは選択肢ではありません。 私はScalrについて読みましたが、それが役立つかどうか、またどのように役立つかはわかりません。 多くのクラウドホスティングプロバイダーが垂直スケーリングソリューションを提供し、ダウンタイムがゼロであると考えています(Xenハイパーバイザーを使用している限り、それが本当に可能かどうかはわかりません)。それは解決策になるかもしれませんが、ダウンタイムがないのか、MySQL構成(およびOS上の他の多くのこと)がダウンタイムなしでもアップグレードできるのかと思います。 MySQLスレーブサーバーを試しましたが、まったく役に立ちませんでした。 memcacheを使用していますが、これは非常に役立ちますが、それだけでは不十分です。読み取りのためだけでなく、書き込みのためにアップグレードする必要があります。 助言がありますか?前もって感謝します

3
シェルスクリプトから、MySQLデータベースにテーブルが存在するかどうかを確認するにはどうすればよいですか?
ユーザーがテーブルで必要な操作を選択できるスクリプトを作成しようとしています。テーブルが存在するかどうかを確認したい。存在する場合は他の処理を続行するか、テーブルが存在しないと終了します。どうすればこれを達成できますか?

4
MySQLの最大行サイズに関する問題
MySQLに問題があります。多くのテキストフィールドを持つテーブルがあります。一部のデータを保存しようとすると、このエラーが発生します。 行サイズが大きすぎます。使用されるテーブルタイプの最大行サイズ(BLOBは含まない)は8126です。一部の列をTEXTまたはBLOBに変更する必要があります 各フィールドに格納するテキストは長すぎず、各フィールドに数段落しかありません。 私に何ができる?
8 mysql 

2
ホストを変更して、MySQLから誤って自分をロックした
リモートMySQLを動作させようとしているときに、どういうわけかrootアカウントで自分をロックアウトできました。 通常、MySQLサービスを停止してを使用して再起動します/etc/init.d/mysql --init-fileが、そうしようとすると、スクリプトがupstartジョブに変換され、「service mysql」コマンドを使用するようになっています。残念ながら、私の知る限りでは、このserviceコマンドは--init-fileオプションをサポートしていません。 rootユーザーのホストをリセットする他の方法はありますか?
8 mysql  root 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.