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

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

6
MySQLの2つのテーブルの構造を比較するクエリ
MySQLデータベースの1つのバックアッププロセスを自動化するために、2つのテーブルの構造(現在のバージョンと古いバージョン)を比較したいと思います。 2つのテーブルを比較できるクエリを考えられますか? 比較できる表の例を次に示します。 CREATE TABLE product_today ( pname VARCHAR(150), price int, PRIMARY KEY (pname) ); CREATE TABLE product_yesterday ( pname VARCHAR(150), price int, PRIMARY KEY (pname) ); CREATE TABLE product_2days_back ( pname VARCHAR(15), price int, PRIMARY KEY (pname) ); 最初の2つのテーブルの構造は同じです。最後のものは異なります。2つのテーブルの構造が異なるかどうかを知る必要があるだけです。私はそれらがどのように異なるかに興味がありません。

2
サブクエリを介して複数の列を選択する
次のクエリのサブクエリから2列を選択しようとしていますが、選択できません。エイリアステーブルを作成しようとしましたが、まだ取得できませんでした。 SELECT DISTINCT petid, userid, (SELECT MAX(comDate) FROM comments WHERE petid=pet.id) AS lastComDate, (SELECT userid FROM comments WHERE petid=pet.id ORDER BY id DESC LIMIT 1) AS lastPosterID FROM pet LEFT JOIN comments ON pet.id = comments.petid WHERE userid='ABC' AND deviceID!='ABC' AND comDate>=DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 2 MONTH); 基本的に、私は同じ行からlastComDate&を取得しようとしていますlastPosterID-特定のペットのコメントの最新の行です。効率的な方法でそれらを取得する方法を提案してください。 上記のクエリは機能しますが、同じ行が2回フェッチされるため、過剰に思えます。さらに、ORDER BYクエリのプロファイリング中に見つけたように、句は集計関数よりもかなり遅くなります。そのため、ソートを回避するソリューションが必要です。

4
innodb_buffer_pool_sizeとinnodb_log_file_sizeを増やした後、mysqlが起動しない
私はここで、このソリューションを、次の午前/programming/3927690/howto-clean-a-mysql-innodb-storage-engine/4056261#comment14041132_4056261と私を増加させようとしたinnodb_buffer_pool_size4G以降1G(1024Mも)にログファイルのサイズに追加されますが、mysqlはこれらの値で開始しません。512Mに戻すと、mysqlは正常に起動します。 どうすれば解決できますか?私のサーバーは16GBのもので、Webmin sysinfoによると: Real memory 15.62 GB total, 3.13 GB used 一方、エラーログも見つかりました。 120529 10:29:32 pidファイル/var/run/mysqld/mysqld.pidからのmysqld_safe mysqldが終了しました 120529 10:29:33 mysqld_safe / var / lib / mysqlのデータベースを使用してmysqldデーモンを起動する 120529 10:29:33 [注]プラグイン「FEDERATED」は無効になっています。 120529 10:29:33 InnoDB:InnoDBメモリヒープが無効になっています 120529 10:29:33 InnoDB:ミューテックスとrw_locksはGCCアトミックビルトインを使用します 120529 10:29:33 InnoDB:圧縮テーブルはzlib 1.2.3を使用します 120529 10:29:33 InnoDB:LinuxネイティブAIOの使用 120529 10:29:33 InnoDB:バッファープールの初期化、サイズ= 1.0G 120529 10:29:33 InnoDB:バッファープールの初期化が完了しました InnoDB:エラー:ログファイル./ib_logfile0は異なるサイズ0 134217728バイトです …

2
MySql-ライブデータベースのinnodb_file_per_tableの変更
私は大規模なMySql DB(150GB)を持っinnodb_file_per_tableてoffいますが、DB全体が1つのファイル(ibdata1)でホストされるように設定されていることに気づきました。アクティブ化innodb_file_per_tableして、DBをいくつかのファイルにさかのぼって分割したいのですが、これを行う最良の方法は何ですか?
18 mysql  innodb  my.cnf 

5
MySQLはNULLである/ NULLではない
次の表をご覧ください。 mysql> desc s_p; +-------------------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | s_pid | int(10) unsigned | YES | MUL | NULL | | | sm_id | int(10) …
18 mysql  count 

2
帯域幅の問題に対処するために、MySQL 5.0レプリケーションで何ができますか?
リモートマスターの読み取り専用スレーブとして機能するMySQLサーバー5.1インスタンスで構成されたクライアントPC(Win)で実行するアプリケーションを開発しています。リモートマスターには多数のスキーマがありますが、クライアントごとに1つしか必要ないため、my.iniでreplication-do-db設定を指定して、クライアントが必要とするスキーマのみを複製します。レプリケーションは機能しますが、クライアントがデータ使用量によって課金される3Gワイヤレス経由でのみインターネットアクセスが利用できる世界の地域に入ると、データプランの制限をすぐに超えて、高価な問題が発生します。 私が理解しているように、MySQLはすべてのスキーマのすべてのトランザクションを単一のbinlogファイルに書き込みます。つまり、各クライアントはマスターのすべてのスキーマで実行されるすべてのトランザクションをダウンロードし、ダウンロードしたら、レプリケーションごとにデータベースフィルターを適用する必要があります。クライアントのmy.iniファイルのdo-db設定。 この非効率性を最小限に抑えるために、slave_compressed_protocol = 1の設定を使用しました。これにより、送信データが50%削減されるように見えますが、クライアントのデータ制限をすぐに超えて3Gの請求額が発生します。 私がこれに直面しているのは自分だけだとは想像できないので、x = yを設定することでこれを達成する方法についてたくさんの答えが得られると確信しています。ただし、このような設定のドキュメントも、推奨されるアプローチも見つかりません。 これまでのところ、可能な解決策に対する私の考えは、フィードバックまたは代替ルートを提供してください: 各スキーマに「プロキシ」スレーブを設定します(異なるボックス、または異なるMySQLインスタンス/ポートを持つ同じボックスに) クライアントが複製したい1つのデータベースのみをreplicate-do-dbにプロキシスレーブを設定します。 クライアントのMySQLインスタンスを適切なプロキシスレーブのスレーブとして構成します。 これがなければならないだけで自分のスキーマのビンログデータを引っ張って、クライアントにつながります。欠点(私が知る限り)は、セットアップの複雑さを劇的に増加させ、おそらくより脆弱にすることです。 考え?このアプローチは機能しますか? RedHatでMySQL 5.0サーバーを実行していることに注意してください。ただし、ソリューションが生成される場合は5.5にアップグレードできます。

4
数時間オフラインにならずに、66,862,521行のテーブルをMyISAMからInnoDBに変換するにはどうすればよいですか?
アプリケーションをオフラインにすることなく、巨大なMyISAMテーブルをInnoDBに変換することは可能ですか?そのテーブルに毎秒数行を挿入する必要がありますが、約2分間中断することが可能です。 明らかにALTER TABLE ... engine = innodbは機能しません。そのため、innodbエンジンを使用して新しいテーブルを作成し、その中にコンテンツをコピーする計画がありました。最後に、アプリケーションログスレッドとRENAME TABLEを一時停止します。 残念ながら、100行の小さなバッチでコピーを行っても、しばらくするとかなりの遅れが生じます。 編集:既存の行が変更されることはありません。このテーブルはロギングに使用されます。
18 mysql  innodb 

6
DBパスワードの保護
私が見たほとんどのPHP / MySQLベースのWebサイトの構造を見ると、ログ用の情報を保存するセットアップまたは設定ファイルが常に存在するため、少し掘り下げてもデータベースパスワードを識別するのはそれほど難しくないようです。 DBに。データベースの権限がリモートリクエストに対して適切に制限されていることを確認する基本的な予防策以外に、この情報を保護するために自分のプロジェクトに実装できるオプションはありますか?
18 mysql  security 

2
MySQLのAWS RDS t1-microでmax_connectionsを増やす必要がありますか?
MySQL 5.5を実行しているAWS RDS t1-microがあります。接続エラーが多すぎます。チェックすると、最大34の同時接続が許可されます。私が読んだことは、このマイクロインスタンスのDBパラメータグループを作成することにより、この最大値を増やすことができるということです。 私の混乱は DBパラメーターグループのマイクロの最大接続値を増やす必要がありますか?または、より多くの最大接続(125)を提供する次のRDSレベルへのアップグレードを検討する必要がありますか? micro RDSのmax_connectionsを125に増やし、RDS smallインスタンスにアップグレードする必要がありますか? なぜ、どのような要因で決定を下す必要がありますか? ありがとう


3
MySQLでマテリアライズドビューを作成する最良の方法
MySQL 5.6を使用しています。Oracleのようにマテリアライズドビューを作成することはできません。Flexviewのような1つまたは2つのソリューションを見てきました。 MySQLでマテリアライズドビュー(Oracleのような自動更新)を最小限の複雑さで作成する最良の方法を教えていただけますか?

4
1回の選択で現在の値と次に大きい値を取得するにはどうすればよいですか?
InnoDBテーブル 'idtimes'(MySQL 5.0.22-log)に列があります `id` int(11) NOT NULL, `time` int(20) NOT NULL, [...] 複合一意キー UNIQUE KEY `id_time` (`id`,`time`) そのため、IDごとに複数のタイムスタンプがあり、タイムスタンプごとに複数のIDがあります。 私はすべてのエントリに加えて、存在する場合は各エントリの次の大きな時間を取得するクエリを設定しようとしているので、たとえば次のように返されます: +-----+------------+------------+ | id | time | nexttime | +-----+------------+------------+ | 155 | 1300000000 | 1311111111 | | 155 | 1311111111 | 1322222222 | | 155 | 1322222222 | NULL | | …
18 mysql  innodb  select 

2
スマイリーフェイスをMySQLに挿入する方法(()
私はMySQL 5.5.21を使用しており、「\ xF0 \ x9F \ x98 \ x8A」のスマイリーフェイス文字を挿入しようとしています。しかし、私の人生では、どうすればいいのかわかりません。 私が読んでいるさまざまなフォーラムによると、それは可能です。しかし、私がそれを試みるたびに、データは切り捨てられます。 mysql> INSERT INTO hour ( `title`, `content`, `guid` , `published` , `lang` , `type` , `indegree` , `lon` , `lat` , `state` , `country` , `hour` ) VALUES ( "title" , "content 😊 content" , "guid" , 1, 1, "WEBLOG", …

1
MySQL open_files_limit-この変数は変更できません
私のopen_files_limitmysqlはのみであるため、問題に直面しています1024。 Centos 7、MySQL Community Server 5.6.22-log 実際には、WHMサーバー用のmysql専用のvps(リモートmysql)ですが、それは重要です。 構成ファイル my.cnf: [mysqld] open_files_limit = 100000 open-files-limit = 100000 #I've read that the dashes are required on older versions, but I threw it in anyway. innodb_buffer_pool_size = 600M ... # and the same for mysqld_safe [mysqld_safe] open_files_limit = 100000 open-files-limit = 100000 ... …
17 mysql 

7
MySQLの起動時に「mysql / plugin.frmファイルが見つかりません」
MySQLサーバーを起動すると、次のエラーが表示されます。 /usr/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13) [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. InnoDB: The error means mysqld does not have the access rights to InnoDB: the directory. InnoDB: File name ./ibdata1 InnoDB: File operation call: 'create'. InnoDB: Cannot continue operation. 私はmysql_upgradeそれを再構築するために走りました、そして、それは再構築するために働きます。その前に、MySQLを削除してインストールしました。ただし、再起動しようとすると、同じエラーが発生します。すべてのファイルとディレクトリはmysqlユーザーによって作成されるため、許可の問題ではないと確信しています。 このエラーを修正する方法を教えてください。
17 mysql 

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