問題タブ [mysql-5.5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - mysql がユーザーのパスワードを保存する場所
MySQL データベース システムをセットアップすると、システムは自動的に MySQL データベースを作成します。その中には、次のような複数のテーブルがありますdb,event,func,host,servers,slow_log,user_info etc.
。user_info
テーブルでは、ユーザーのリストとその詳細を、select * from user_info;
パスワード以外のクエリを実行することで取得できます。
mysql - MySQL トリガーが複数の行を返す
複数の結果が返されるために失敗する MySQL 5.5 トリガーがあります。問題は、一意のフィールド「id」フィールドを使用して、一度に 1 つの結果を返そうとしていることです。
(関連する)テーブル構造は次のとおりです。
New.ID に何か問題があると思いますが、値が間違っていても com_apps の id フィールドは PRIMARY 自動インクリメント キーであるため、その場合でも間違った結果が 1 つ返されます。
mysql - /var/lib/mysql 内のデータベース ファイルの名前を変更する
ダンプと復元に時間がかかりすぎる巨大なデータベースをすばやくバックアップし、新しい一時データベースを作成してテストしたいと考えています。テストが成功した場合は新しいデータベースを保持し、失敗した場合は古いデータベースに戻します。
のデータベース フォルダ/var/lib/mysql
の名前を別の名前に変更してもよろしいですか。次に、MySQL で新しいデータベースを作成します。古いデータベースに戻したい場合は、現在のデータベースを削除し、古いデータベース フォルダの名前を に変更します/var/lib/mysql
。
現在のソフトウェアは、特定の名前のデータベースを使用するように修正されているため、古いデータベースの名前を変更する理由です。
php - PHP 5.2.7 で utf8mb4 はサポートされていますか
次のバージョンの PHP と MySQL をそれぞれ実行する 2 つのサーバーがあります。
サーバー 1:
サーバー 2:
MySQLのバージョンアップに伴い、MySQLがutf8mb4_general_ciを扱えるようになりました
したがって、サーバー 2の場合、 「,」などのすべての特殊文字は、エスケープ スラッシュなしでデータベースにそのまま挿入されます。
しかし、サーバー1に来るのはどこですか
特殊文字がそのまま挿入されていません. It\'s の代わりに次のように表示されます.
それで、PHPのバージョンが違いを生んでいるのではないでしょうか?
両方のサーバーで同じように構成されたCodeigniterを使用しています。
java - テーブル内の値を合計する単一の MySql クエリを作成する際の問題
上記のデータを持つテーブル Foo から、特定の ID について、18:00 の間に来た最後のタイムスタンプから値を取得するように、すべての異なる ID のパラメータ「A」の値を合計する必要があります。 :00 と 19:00:00。時間と id フィールドの両方がインデックス化されていることを考慮して、この要件に対して高速な単一のクエリを作成する方法。
mysql - テーブルごとに innodb_file_per_table が MYSQL 5.5 に設定されているかどうかを確認する方法はありますか?
クエリを使用して、データベース テーブルごとにinnodb_file_per_table
設定されている (作成されている)かどうかを確認したい。.ibd
MYSQL-5.5
それを行う方法はありますか?
mysql - MySQL バージョン 5.5.37: CURSOR を使用して 30 日より古いテーブルを削除する
クエリ結果からすべての行を取得し、それらを個別に処理する方法を見つけようと研究しています。うまくいくと思っていたスクリプトを書きましたが、どうやらそうではないようです。
スクリプト:
このスクリプトは、30 日以上経過したすべてのテーブルを削除することを目的としています。MySQL バージョン 5.5.37 では動作しないようですが。
MySQL は初めてで、MySQL for Windows (XP) でサーバーを実行しています。CURSORS のこの構文は、対応するサーバーのバージョンに対して正しくないのでしょうか? よくわかりませんが、誰かが私を助けてくれたらとてもうれしいです。
編集:
これは、SQL コマンド ラインからスクリプトを実行しようとしたときに返されるエラー メッセージです。
エラー 1064 (42000): SQL 構文にエラーがあります。
1 行目の 'DECLARE @name char(20)' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
エラー 1064 (42000): SQL 構文にエラーがあります。
MySQL サーバーのバージョンに対応するマニュアルで、1 行目の 'DECLARE c1 CURSOR READ_ONLY FOR SELECT table_name FROM information_schema.tables' 付近で使用する正しい構文を確認してください。
エラー 1064 (42000): SQL 構文にエラーがあります。near 'FETCH NEXT FROM c1 INTO @table_name を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
WHILE @@FETCH_STATUS = 0 BEGIN
PREPARE st' at line 1
アップデート:
このスクリプトも試しました (注: 30 日以上経過したテーブルを削除するために毎日実行されるイベントを作成するつもりです)。
このスクリプトを SQL コマンド ラインで実行すると、以下が返されます。
エラー 1064 (42000): SQL 構文にエラーがあります。
'@name char(20); の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。DECLARE c1 CURSOR READ_ONLY FOR SELECT table_name FROM infor' 5 行目
innodb - 対応する SELECT よりも空の UPDATE の方が遅い
InnoDB で MySQL 5.1.73 を使用しています
私は非常に遅い UPDATE クエリ (約 10 秒) を持っています。変更された行の数は (多くの場合) ゼロです (変更された行がいくつかある場合はほぼ同じ時間がかかります)。
ただし、対応する SELECT は非常に高速です。
ご覧のとおり、これは (そうであるべきか?) インデックス クエリであり、それほど大きくないデータベース (約 9000 行ですが、いくつかの BLOB が含まれているため、DB の合計サイズは約 800MB です) です。
質問は次のとおりです。
- なんでこんなに更新遅いの?
- どうすればデバッグできますか?
- どうすれば高速化できますか?
更新: MySQL 5.5.35 (Debian wheezy のデフォルト) を使用して、別のサーバーで同じデータベースを試しました。クエリはまだ高速で、更新はまだ遅く、更新の説明はまだありません... dotdeb から mysql 5.6 にアップグレードするか、mariadb を試してみるかもしれません。:)
更新 2 : さまざまな行形式 (動的および圧縮) を試しましたが、(大幅に) 高速ではありませんでした。
更新 3 : MySQL 5.6.17 (dotdeb から) に更新しましたが、パフォーマンスはほぼ同じですが、最終的に更新の説明がありました:
これは、ずっと疑われていたことを確認するだけです。UPDATE はインデックスを使用していません。疑問が残ります:なぜですか?
この動作を生成する最小限の例を作成しようとします。その過程で、何か答えが見つかるかもしれません…。
php - PHPで行を更新する方法
Web ページからテーブルのレコードを更新したい。行の更新をクリックすると、更新ページにリダイレクトされ、必要なフィールドが update を取得する必要があります。
ここに更新用のコードがあります
誰かがそれを解決するのを助けることができますか??