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

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

2
データフォルダーを移動してmysql centosをドライブする
データを別のフォルダーに移動して、cent os dbサーバーでドライブする必要があります。 新しいハードドライブを追加しました(スペースが不足したため)。 1 TBのハードドライブがあり、新しい2 TBがあり、同じサーバー(データセンターでホストされている専用サーバー)にデータを配置したい データを失うことなくデータを移行する簡単な方法は何ですか? 現在私は次の場所にデータを持っています:/var/lib/mysql/cent os。mysql version is 5.1
11 mysql 

3
mysqlが最大接続値を自動調整する
my.cnfファイルで最大接続数を約2000に設定しました。 max_connections=2048 5.5.20にアップグレードしたら、エラーログに次の行が表示されます。 120201 19:40:24 [Warning] Changed limits: max_open_files: 1024 max_connections: 214 table_cache: 400 mysqlが最大接続数の値を214に変更したのはなぜですか? # mysqladmin variables | grep max_connections | max_connections | 214 OSによって制限されたソフトおよびハードオープンファイルは1024です # ulimit -Sa | grep "open files" open files (-n) 1024 # ulimit -Ha | grep "open files" open files (-n) 1024 実際に使用された最大接続数: # …
11 mysql 

3
MySQLステータス変数Handler_read_rnd_nextは大きく成長しています
MYSQLステータスでは、Handler_read_rnd_next値が非常に高くなっています。 この値は、適切なインデックスを持たないクエリが実行されると増加することを認識しています。 ただし、「Handler_read_rnd_next」のようなshow statusを実行しても、この値は2ずつ増加します。 このステータスフラグに基づいて、いくつかの統計情報を監視しています。 そのため、毎回、この統計は重要を示しています。 これらの「表示」実行カウントを「Handler_read_rnd_next」カウントから除外できますか? このためのもう1つの例は、 10行のテーブルがあり、テーブルは列 'data'にインデックスが付けられています。次のクエリを実行すると、 select data from test where data = 'vwx' -> returns one row 「Handler_read_rnd_next」の値を確認すると、7ずつ増加します。 以下は、上記のクエリのExplainコマンドの結果です。 explain select data from test where data = 'vwx'; id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra 1, 'SIMPLE', 'test', 'ref', 'data', 'data', '35', …

2
MyISAMからInnoDBに変換する際の問題点はありますか?
MyISAMからInnoDBに移行する準備ができていますが、探すべき項目の完全なリストがあるかどうか知りたいですか?たとえばDISABLE KEYS、のマニュアルページを除いて、InnoDBテーブルで実行すると警告がスローされることについて言及しているリストはありませんALTER TABLE。変換する前に知っておくべきことです。私は自分のクエリで大丈夫だと思いましたが、どうやらそうではありません。
11 mysql  innodb  myisam 

3
MySQLデータベースをメモリにキャッシュする
MySQLデータベースが600 MBのWebサイトに問題があります。ウェブサイトが遅すぎる。MySQLデータベースが大きくなるほど、速度が遅くなることに気づきました。5MBだったとき、ウェブサイトは非常に高速でした。大きくなると徐々に遅くなり始め、現在は600MBと非常に遅く、ページのロードに10秒ほどかかります。 上位のプロセスを確認しましたが、高負荷などとは関係ありません。HDD 7.2k rpmドライブでテストしたため、IOPSにも関係がなく、Intel 320 SSDドライブでのテストでも同じ問題が発生したため、クエリ数が多いとは思われません。 WebサイトはWordpressを使用しており、9つのプラグインがアクティブになっています。人々はそれがプラグインかもしれないと言いました...多分...しかし、今私はデータベース全体をメモリにキャッシュしたいだけで、どこから始めてどのようにそれを行うかについてのヘルプと方向性を知りたいです。 16GB RAMとi5-2400 4コア@ 3.1 GHzを持っています。OSはcentos 5.7です top - 07:23:57 up 9 days, 12:15, 0 users, load average: 0.09, 0.04, 0.05 Tasks: 162 total, 1 running, 161 sleeping, 0 stopped, 0 zombie Cpu(s): 8.2%us, 1.0%sy, 0.0%ni, 90.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 16367532k …

5
不完全なmysqldump
mysqldumpを実行してデータベーススナップショットを作成しようとしていますが、エラーを報告せずに途中でランダムに停止します。私のデータベースは比較的小さく(約100MB)、InnoDBを使用しています。 私はそれを次のように実行しています: mysqldump --force --single-transaction --quick --user myuser --password=mypass -h mydatabasehost mydb > /tmp/snapshot.sql 終了コードを確認すると0が報告されます。 私のバージョン:mysqldump Ver 10.13 Distrib 5.1.52、redhat-linux-gnu(i386) 同様の投稿や公式のバグレポートもいくつか見ましたが、どちらのソリューションも当てはまらないようです。 mysqldumpで完全なデータベーススナップショットを取得するにはどうすればよいですか? 編集:私のデータベースは現在AmazonのRDSにあります。

6
PHPとMySQLの間で奇妙なクエリタイムアウトが発生する原因は何ですか?
私は、さまざまな顧客が使用するSoftware-as-a-Serviceアプリケーションの上級開発者です。私たちのソフトウェアは、MySQLバックエンドを搭載したApache / PHPアプリケーションサーバーのクラスター上で実行されます。上の1つのソフトウェアの特定のインスタンス、カテゴリ名のリストを照会するためのPHPコードがタイムアウトしている顧客が29個のを超えるカテゴリがある場合。私はこれが意味をなさないことを知っています。これを打破する30について特別なことは何もありません。他の顧客は30を超えるカテゴリを持っていますが、この1つのインストールに30以上のカテゴリがある場合、問題は100%再現可能であり、30未満のカテゴリがある場合、問題は解消します。 問題の表は次のとおりです。 CREATE TABLE IF NOT EXISTS `categories` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(64) NOT NULL, `title` varchar(128) NOT NULL, `parent` int(10) unsigned NOT NULL, `keywords` varchar(255) NOT NULL, `description` text NOT NULL, `status` enum('Active','Inactive','_Deleted','_New') NOT NULL default 'Active', `style` enum('_Unknown') default NULL COMMENT 'Autoenum;', …

3
MySQLレプリケーションは高レイテンシの相互接続の影響を受けますか?
異なるデータセンターに常駐する標準的なマスターとスレーブのMySQLセットアップと、マスターと同じデータセンターにある別のスレーブがあります。 データセンター間の帯域幅はかなり高くなっていますが(ネットワークベンチマークでは、15MB /秒に達する可能性があります)、レイテンシが存在し、約28msです。決して高くはありませんが、同じデータセンターの1秒未満のレイテンシよりもはるかに高くなります。 ローカルスレーブが最新の状態であるときに、削除スレーブで重大な遅延(2000秒以上)が発生する場合があります。遅れているリモートスレーブを見ると、SQLスレッドは通常、IOスレッドがリレーログを更新するのを待つ時間を費やしています。マスターは同時に「ネットを待っている」またはある種の何かを示します。 つまり、それはネットワークであることを意味しますが、これが発生した時点ではまだ帯域幅に空きがあります。 私の質問は、データセンター間のレイテンシがレプリケーションのパフォーマンスに影響を与える可能性がありますか?スレーブioスレッドは、マスターが送信を停止するまでイベントをストリーミングするのですか、それともイベント間でマスターをプールするのですか?

1
XtraBackupとrsyncの違いは何ですか?
はい、両方でstraceを実行します...しかし、知りたいのですが... XtraBackupはrsync -ac src destに加えて何をしていますか? XtraBbackupの何が特別なのですか? XtraBackupはmysqldとどのように相互作用しますか?
11 mysql  backup  percona 

3
マスターがオフラインになった場合、マスターMySQL DBをスレーブDBの変更とどのように再同期しますか?
MySQLサーバー1はマスターとして実行されています。 MySQLサーバー2はスレーブとして実行されています。 両方のDBがオンラインの場合、「完全に同期」しています。スレーブがオフラインになった場合でも、マスターがオンラインのままであれば問題はありません。スレーブが再びオンラインになると、同期が戻ります。 サーバー構成に加えて、マスターがオフラインになった場合、スレーブDBの接続を(JSPコードで)リダイレクトしました(もちろん、/ etc / init.d / mysqld stopでテストしました)。 マスターがオンラインに戻ったときに、マスターとスレーブの更新を自動的に同期する方法はありますか?

2
InnoDBのテーブル作成エラー:「行サイズが大きすぎます」
レポートを生成するために、正規化されたデータベース構造を一時テーブルにフラット化するエンジニアが何人かいます。列は次のように指定されていますTEXT NOT NULL(「なぜ彼らはそれをしているのですか?」 Linuxでは、MySQL 5.1.48 Community RHEL5とInnoDBプラグイン1.0.9を使用しています。 MyISAMを使用しているときに、最大列または最大行長のテーブルサイズ制限に遭遇したことはありません(調査中に、2598で最大列制限に達しました(2599番目がエラー1117の原因になります)。InnoDBでは制限に達しています。これらの制限は、テーブル(データ挿入なし)として: エラー1118(42000)1行目:行サイズが大きすぎます。使用されるテーブルタイプの最大行サイズはBLOBを含まない8126です。一部の列をTEXTまたはBLOBに変更する必要があります 以下に対する答えを探しています。 ロットのv / v / b / t列を使用する場合に、行サイズを特定するための詳細な式は何ですか?varchar(N)列(Nは1から512の間)、UTF8文字セット(* 3)、および失敗するまでテーブルに必要な数の列を使用して、いくつかの異なる形式を試しました。私が試したコンボはどれも、実際のテスト結果と一致する値を示していません。 行サイズを計算するときに、他にどのような「オーバーヘッド」を考慮する必要がありますか? varchar(109)列を持つテーブルの作成からvarchar(110)列に変更すると、エラーメッセージが8126から65535に変わるのはなぜですか?
11 mysql  innodb 

4
MySQLデータベースのログインを監査する
MySQLへのログインを監査する方法はありますか?各従業員のユーザー名を作成して、ログインの監査証跡を作成できるようにしたいと考えています。しかし、ググリングは良い結果をもたらしていません。 監査できる数が多いほど良いです。少なくとも、いつ誰がログインしたかを知っておくとよいでしょう。だれがどのクエリをいつ実行したかを確認したほうがよいでしょう。データベースには機密情報が含まれている可能性があるため、ログは主にクライアントにログを提供するためのものです。 明らかに、各ユーザーが(いつ)実行したクエリを監査できることで、セキュリティ問題が発生した場合に、その原因を正確に特定できるようになります。

8
MySQL-すべての列の値を確認する方法
知りたいのですが、すべての列で特定の値を検索する良い方法はありますか?私の目的では、それはまったく高速である必要はありません。これは1回限りの処理であり、すべてのフィールド名を入力する必要は本当にありません。それがまさに今私がやろうとしていることですが、確かにもっと良い方法があると思います。 私はこれを回したいと思います: SELECT * FROM table WHERE col1 = 'val' OR col2 = 'val' OR col3 = 'val'; これに: SELECT * FROM table WHERE * = 'val' ...または、さらに良い(私はそれを真剣に疑っていますが...) SELECT * FROM table WHERE * like '%val%' 私はこれを見つけましたが、これは少し近いとは思えませんが、近くには何も見つかりません: SELECT whatever WHERE col1,col2 IN ((val1, val2), (val1, val2), ...) 違いは、指定された値の列を選択して検索するのに対し、すべての列で単一の値を検索しようとしていることです。 それは重要ではありませんが、私が興味があるのは何よりも言ったように
11 mysql 

5
クエリを実行するためにアクセスするデータベースサーバーにインストールされているデータベースエンジンを確認するにはどうすればよいですか?
アクセス可能なDatasaseサーバーで実行されているSQLのタイプを確認したい。Webインターフェースとテーブルのリストにしかアクセスできません。 インターフェイスを介して、リストにあるテーブルに対してクエリを実行できます。 サーバーとサーバーが実行しているバージョンに関する詳細情報を取得するにはどうすればよいですか。サーバーが実行しているIPまたはポートについてはわかりません。 サーバーがMySQL、Mircosoft SQLサーバー、Oracle SQL、Postgre SQL、またはその他のSQLサーバーかどうかを知りたい。 私が話しているWebサイトは、 w3schools.com SQLエディターです。 編集2:一部のコマンドselect sqlite_version()は私にとっては機能しますが、機能しません。これは応答のスクリーンショットです。 編集3:Chromiumブラウザでは、コマンドは正しく機能しています。ただし、Firefoxブラウザーではコマンドは機能しませんでした。 また、私はLinuxを実行していることも述べました。 FirefoxとChromeで異なる結果が得られる理由は何だと思いますか?

2
UUIDとIDを使用する必要がありますか
ロギングから遅延相関まで、さまざまな理由で、システムでUUIDをしばらく使用しています。私が使用したフォーマットは、次のように単純になったときに変化しました。 VARCHAR(255) VARCHAR(36) CHAR(36) BINARY(16) BINARY(16)パフォーマンスを基本的な自動インクリメント整数と比較し始めたのは、最後に到達したときです。テストとその結果を以下に示すが、あなただけの要約をしたい場合は、それがあることを示しているINT AUTOINCREMENTとBINARY(16) RANDOM(データベースが前の試験に事前に入力された)200000までの範囲のデータで同じ性能を有します。 私は当初、UUIDを主キーとして使用することに懐疑的でしたが、実際にはまだそうですが、両方を使用できる柔軟なデータベースを作成する可能性はここにあります。多くの人がどちらか一方の利点を強調しますが、両方のデータ型を使用することで相殺される欠点は何ですか? PRIMARY INT UNIQUE BINARY(16) このタイプの設定の使用例は、システム間の関係に一意の識別子が使用される、テーブル間の関係の従来の主キーです。 私が本質的に発見しようとしているのは、2つのアプローチの効率の違いです。追加のデータが追加された後はほとんど無視できる使用される4倍のディスク容量に加えて、それらは同じように見えます。 スキーマ: -- phpMyAdmin SQL Dump -- version 4.0.10deb1 -- http://www.phpmyadmin.net -- -- Host: localhost -- Generation Time: Sep 22, 2015 at 10:54 AM -- Server version: 5.5.44-0ubuntu0.14.04.1 -- PHP Version: 5.5.29-1+deb.sury.org~trusty+3 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; …

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