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

MySQLのすべてのバージョン(Microsoft SQL Serverではありません)。質問に関連する場合は、mysql-5.7のようなバージョン固有のタグも追加してください。

2
どのmax_allowed_pa​​cketが十分な大きさであり、なぜそれを変更する必要があるのですか?
マスタースレーブ設定でMySQL(5.5)を使用し、別のスレーブサーバーを作成しました。 元のスレーブを停止し、データをダンプし、コピーして再インポートしたところ、正常に機能しました。元のスレーブのmaster_log posを書き留め、これらのコマンドを使用して新しいスレーブに設定しました CHANGE MASTER TO MASTER_HOST='<ipaddress>', MASTER_USER='<username>', MASTER_PASSWORD='<password>', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000851', MASTER_LOG_POS=15824150, MASTER_CONNECT_RETRY=10; 新しいスレーブを開始したとき Last_IO_Error:バイナリログからデータを読み取るときに、マスターから致命的なエラー1236が発生しました: 'ログイベントエントリがmax_allowed_pa​​cketを超えました。マスターのmax_allowed_pa​​cketを増やす しかし、元のスレーブを開始したとき、それはうまく追いつき、現在同期しています。 質問: 現在の値は16Mですが、どのくらいの大きさにすればよいのかを知るには (本番サーバーでの試行錯誤は避けたいです)。 元のスレーブがうまく処理されたときに、マスターの値を増やす必要があるのはなぜですか、本当に新しいスレーブに問題があるのでしょうか? 更新 Rolandoがマスター、古いスレーブ、および新しいスレーブで提案したように、max_allowed_pa​​cketを1073741824に増やし、それらを再起動しました(SET GLOBAL max_allowed_packet = 1073741824;何らかの理由でとらえられなかったようです) 今、最後のIOエラーは以前と同じですが、今では Last_SQL_Error:リレーログ読み取りエラー:リレーログイベントエントリを解析できませんでした。考えられる理由は次のとおりです。マスターのバイナリログが破損している(バイナリログで「mysqlbinlog」を実行すると確認できます)、スレーブのリレーログが破損しています(リレーログで「mysqlbinlog」を実行すると確認できます)、ネットワークの問題、またはマスターまたはスレーブのMySQLコードのバグ。マスターのバイナリログまたはスレーブのリレーログを確認したい場合、このスレーブで「SHOW SLAVE STATUS」を発行することにより、それらの名前を知ることができます。 マスターのファイルでmysqlbinlogを実行すると、コマンドを使って何年も前にスクロールします-ファイルは722Mです-スレーブリレーログでそれを実行すると、 エラー:Log_event :: read_log_event()のエラー: '健全性チェックに失敗しました'、data_len:38916267、event_type:69 エラー:オフセット253のエントリを読み取ることができませんでした:ログ形式のエラーまたは読み取りエラー。 変数を確認しましたが、変更は機能しました mysql>変数LIKE '%max_allowed_pa​​cket%'を表示します。 新しいスレーブ上でmax_allowed_packetAND slave_max_allowed_packetが示され、マスター上ではmax_allowed_packet だから私はマスターでバージョンチェックをしました: mysql> show variables LIKE '%version%'; +-------------------------+--------------------------------------+ | …

8
SQLダンプからデータベースを復元中にエラーが発生しました
私はMySQLが非常に新しく、Windowsで実行しています。MySQLのダンプファイルからデータベースを復元しようとしていますが、次のエラーが表示されます。 $ >mysql -u root -p -h localhost -D database -o < dump.sql ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected. Query: 'SQLite format 3'. …

2
重複キーでは何もしません
PtokaX APIでLuaSQLを使用して、次の表に挿入しています。 CREATE TABLE `requests` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `ctg` VARCHAR(15) NOT NULL, `msg` VARCHAR(250) NOT NULL, `nick` VARCHAR(32) NOT NULL, `filled` ENUM('Y','N') NOT NULL DEFAULT 'N', `dated` DATETIME NOT NULL, `filldate` DATETIME NULL DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE INDEX `nick_msg` (`nick`, `msg`), UNIQUE INDEX `ctg_msg` …


4
一部のフィールドを除くMysqldumpテーブル
いくつかのフィールドなしでテーブルをmysqldumpする方法はありますか? 説明させてください 。MySQLデータベースがありますtests。でtests、私は3つのテーブルを持っている:USER、TOTOとTATA。tableのいくつかのフィールドをmysqldumpしたいだけUSERなmailのでip_login、などのいくつかのフィールドを除外します。 これどうやってするの?
14 mysql  mysqldump 

4
MySQLのLOAD DATA INFILEは、InnoDBエンジンでの入力のいくつかのギグの後、80%遅くなります
LOAD DATA INFILEを介して100GBのファイルをロードしています。私はMyISAMで数時間成功しました。 私は今InnoDBを使って試しています。ロードは10MB /秒以上で高速に開始されます(テーブルファイルの増大を監視し、file_per_tableオンになっています)。 しかし、約5 GBのデータの後、2〜4 MB /秒の範囲に低下します。20GBを超えると、約2 MB /秒になりました。 InnoDBバッファープールのサイズは8Gです。そして、LOAD DATA INFILEコマンドを実行する前に次のことを行いました。 SET @@session.sql_log_bin=0; SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0; alter table item_load disable keys; //Run LOAD DATA INFILE.... 開始が順調に進み、時間がたつにつれて速度が低下している理由がわかりません。 また、同じ設定を使用して、InnoDBとMyISAMおよび5GBテストデータセットを使用したテーブルで同じLOAD DATA INFILEコマンドを実行すると、MyISAMは20倍高速になりました。 InnoDB: mysql> LOAD DATA CONCURRENT LOCAL INFILE '/tmp/item' REPLACE INTO TABLE item_load; Query OK, 2630886 …

6
MySQLでのテーブルの分割。いい練習?
私は既存のプロジェクトで作業を開始し、前の開発者は、テーブルを、スキーマは同じでもデータが異なる10個の個別のテーブルに分割していました。 テーブルは次のようになります。 [tableName_0] [tableName_1] [tableName_2] [tableName_3] [tableName_4] [tableName_5] [tableName_6] [tableName_7] [tableName_8] [tableName_9] 主キーは整数idフィールドです。アプリケーションは、ハッシュアルゴリズム(idmod 10)を使用して、ルックアップ時にアクセスするテーブルを認識します。たとえばid= 10に生じるであろう[tableName_0]。 合計すると、テーブルにはおそらく100,000行あり、成長率は比較的低くなります。 だから、私の質問は、これが実行可能な解決策であるかどうか、それがどんな状況でも良い方法であるかどうかです。私の理論は、それらを組み合わせるようにプッシュすることですUNION。主な欠点は、すべてのアプリケーションコードを変更することと、長期的に見ても価値があるかどうかです。

3
mysqlをpostgresqlに変換する方法は?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 大きなmysqlデータベースをpostgresqlに変換する変換ツールを切望しています。ツール/スクリプトが必要です: 自由 Linuxで動作します 使いやすく、バグがありません 実際に試してみて、動作することを確認しました できれば、JavaまたはRubyで作成しないでください ここにリストされているさまざまなツールを試しましたが、うまくいきませんでした。 前もって感謝します。

2
MySQL Master-Slave Replication Setupを作成してトラブルシューティングする最良の方法は何ですか?
私はデータベース管理を始めたばかりです。 mysqlマスター/スレーブレプリケーションのセットアップ中に多くの問題に直面します。 また、通常のmysqlレプリケーションのトラブルシューティングの問題に直面しています。 誰もがこれらすべてに対処する方法を理解するのに役立ちますか?

4
1つの大きなデータベースといくつかの小さなデータベース
(A)テーブルプレフィックスを使用して1つのMySQLデータベースにアプリケーションのインスタンスをデプロイするか、(B)アプリケーションの各インスタンスに異なるMySQLデータベースを使用できる状況があります。たとえば、 セットアップ「A」: central_database app1_table1 app1_table2 app1_tablen ... appn_table1 appn_table2 appn_tablen 最終結果は、多くのテーブルを持つ大きなデータベースになります。 セットアップ「B」: app1_db table1 table2 tablen ... appn_db table1 table2 tablen 最終結果は、いくつかのテーブルを持つ多くのデータベースになります。 すべてが等しい(データの量、アプリインスタンスの数など)、どちらのアプローチを採用する場合の長所と短所は何ですか?データベースのパフォーマンスとメンテナンスに有害なものは何ですか?アプリケーションはPHP 5ベースで、Apache 2.xで実行され、MySQL 5.xを実行しています。 あなたの時間と考えに感謝します!

5
MySQLサーバーは大きなダンプのインポートを妨害しなくなりました
Mac上のローカルmysqlに大きなSQLダンプ(2GB)をインポートしようとしています。過去にこれを行うことができました(私はMAMPを使用していました)が、今では行7758でERROR 2006(HY000)を受け取ります:ダンプをインポートしようとするたびにMySQLサーバーがなくなっています。データベースにはinnodbテーブルが含まれます。 my-innodb-heavy-4G.cnfファイルをmy.cnfにコピーして、これらの設定が役立つかどうかを確認しましたが、うまくいきませんでした。 何を微調整するかについてのアイデアはありますか? ここから「Mac OS X ver。10.6(x86、64ビット)、DMG Archive」を使用しています:http : //dev.mysql.com/downloads/mysql/
14 mysql  innodb  dump  mac-os-x 

3
MySQL table_cacheおよびOpened_tables
MySQLでtable_cacheが小さすぎるかどうかを評価するためにOpen_tablesとOpened_tablesの比較を使用する人々を見てきました。ただし、Opened_tablesはアップタ​​イム全体で累積されるため、これは有効な比較ではありません。唯一の注意点は、おそらくOpened_tablesが失敗した場合にのみバンプされることです。ただし、1秒あたりに開かれるテーブルがまだ小さい場合でも、徐々に大きくなることはおそらく問題ではありません。 Open_tablesとOpened_tablesを比較することが有効でない場合、これに関する測定データを取得する別の方法はありますか? これはMySQL 5.0にありますが、バージョン間の違いも歓迎します。

1
大きなblobテーブルをmysqlからpostgresqlに移行する方法は?
現在、MySQLデータベースをPostgreSQLに移行しています。私が持っている1つのテーブル-実際には私のアプリで最も重要なテーブルを除いて、ほとんどすべてがうまくいきました(まあ、正しいmysqldumpパラメータなどのためにたくさんのグーグルをした後)。 テーブル構造は非常に単純です。 mysql> show create table samples; .. skipped ... CREATE TABLE `samples` ( `File_ID` int(11) NOT NULL, `File` longblob, PRIMARY KEY (`File_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=binary ただし、非常に大きい(> 20 Gb)。 mysqldumpの--hex-blobパラメーターを使用しようとしましたが、結果のダンプファイルをコマンドファイルとして使用しようとすると、この形式のデータはPostgreSQLで受け入れられません。私が試した別のオプションは、-tabオプションを使用してダンプを取得し、COPYコマンドでPostgreSQLに挿入することです-しかし、-hex-blobは--tabで動作せず、PostgreSQLはまだダンプファイルを受け入れません無効な文字です。 この問題に関してアドバイスをいただければうれしいです-カスタム移行ツールを書くことは結局悪い考えではないと思い始めていますが...

3
インデックス付き列を持つ大きなテーブルのALTER TABLE
VARCHAR(20)列を持つ大きなテーブルがあり、それをVARCHAR(50)列になるように変更する必要があります。通常、この特定のテーブルでALTER TABLEを実行(TINYINTを追加)するのに約90〜120分かかります。そのため、データベースのユーザーに影響を与えないために、土曜日または日曜日の夜にしかできません。可能であれば、その前にこの変更を行いたいと思います。 列にもインデックスが付けられますが、列の長さを変更した後にインデックスを再構築する必要があるため、ALTER TABLEが遅くなると思われます。 Webアプリは、MySQLレプリケーション環境(26個のスレーブと1個のマスター)でセットアップされます。一度どこかで、1つの方法は最初に各スレーブでALTER TABLEを実行し(ユーザーへの影響を最小限に抑える)、次にマスターでこれを行うことを思い出しますが、それからALTER TABLEコマンドをスレーブに複製しようとしませんか? 私の質問は次のとおりです。ユーザーの混乱を最小限に抑えてこのテーブルを変更する最良の方法は何ですか? 編集:テーブルはInnoDBです。


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