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

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

1
INFORMATION_SCHEMAはMySQLでどのように実装されていますか?
INFORMATION_SCHEMAは、理論的には、ユーザーがシステムのメタデータを検査できるようにするSQL標準で指定された一連のビューです。これはMySQLでどのように実装されていますか? 新規インストールに接続すると、2つのデータベースが表示されます:mysqlとinformation_schema。データベースでSHOW CREATE TABLEステートメントを使用した後information_schema、ビューのセットとしてではなく、ベーステーブルを使用して実装されているようです。この仮定は正しいですか?または、ユーザーから隠されている他のシステムテーブルがありますか?

5
MySQLの自己結合テーブルなしで複数の値に対して単一の列を一致させる
質問への回答を保存するために使用するテーブルがあります。特定の質問に対する特定の回答を持っているユーザーを見つけることができる必要があります。したがって、テーブルが次のデータで構成されている場合: user_id question_id answer_value Sally 1 Pooch Sally 2 Peach John 1 Pooch John 2 Duke そして、質問1で「Pooch」、質問2で「Peach」に答えるユーザーを見つけたいと思っています。次のSQLは(明らかに)動作しません。 select user_id from answers where question_id=1 and answer_value = 'Pooch' and question_id=2 and answer_value='Peach' 私が最初に考えたのは、探している答えごとにテーブルに参加することでした。 select a.user_id from answers a, answers b where a.user_id = b.user_id and a.question_id=1 and a.answer_value = 'Pooch' and …

3
テーブル内のフィールドが符号付きまたは符号なしの最大32ビット整数に近づいたらどうしますか?
一意の自動インクリメントフィールドの形式でユーザーレコードを保持する任意のデータベース(たとえば、ユーザー間メッセージ)...現在のデータ型の?(32ビットINT)?次のエントリに(2∧32)-1の番号を割り当てようとすると、データベースサーバーがオーバーフローするのではないかと推測しています。レコードを追加し続けますか?あなたならどうしますか? たとえば、VARCHARSではなくINTを使用するのはなぜですか? この架空の質問を自問してから数日が経ちましたが、専門家が何をするのか知りたいです。
14 mysql 



1
MySQL GRANT PROXY-それはどういう意味ですか?
走る: show grants for root@localhost; なるほど GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION mysql docsから: https://dev.mysql.com/doc/refman/5.5/en/proxy-users.html これにより、外部ユーザーは2番目のユーザーのプロキシになります。つまり、2番目のユーザーの特権を持ちます。つまり、外部ユーザーは「プロキシユーザー」(なりすましまたは別のユーザーとして知られるようになるユーザー)であり、2番目のユーザーは「プロキシユーザー」(IDがプロキシユーザーに引き継がれるユーザー)です。 。 しかし、私はそれらの意味を理解していません。仕事を辞めた別の労働者からシステムを入手しましたが、すべてが安全であり、この許可が必要かどうかわからないことを確認したいと思います。しかし、セキュリティの問題が発生しない場合は、そのままにしておきます。 誰かがもっと簡単に説明できますか? 更新: 別のユーザーとして接続するにはどうすればよいですか?ユーザー名とパスワードのさまざまな組み合わせを試しましたが、接続させることはできません。 たとえば、ユーザーrootを使用しましたが、別のユーザーのパスワードを使用しましたが、機能しませんでした。別のユーザーとルートパスワードを試してみましたが、動作しませんでした。 更新: または、これはおそらくルートユーザーが他のユーザーとして接続できることを意味しますか?もしそうなら、少なくともそれを行う方法?
14 mysql  proxy 

4
Ansible:サーバーを再プロビジョニングしてMySQLサーバーのルートパスワードを変更する方法
サーバーにAnsible Playbookをプロビジョニングしました。root / bedrock-Ansibleプレイブックを使用しました。 タスクの1つは、mysqlサーバーとmysql rootユーザーのパスワードをセットアップすることでした。 今、私は緊急にこのパスワードを変更する必要があります。私が取ったステップ: Ansibleロールの変数を更新しました ansible-playbook -i hosts/staging server.ymlサーバーを再プロビジョニングするためにコマンドを実行しました すべてのタスクは期待どおりに実行されました(変更なし)が、スクリプトは[mariadb | Set root user password]次のメッセージで失敗し ました: msg: unable to connect to database, check login_user and login_password are correct or ~/.my.cnf has the credentials 私の推測では、MySQLルートパスワードが設定されると、サーバーの再プロビジョニングはこのパスワードを変更できません。 Ansibleでサーバーを再プロビジョニングすることで、MySQLルートパスワードを変更することはまったく可能ですか?私のオプションは何ですか?
14 mysql 

1
最適なmysqldump設定は何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 2年前に閉店。 いくつかの検索の後、私は次の設定になりました: mysqldump\ --host=localhost\ --port=3306\ --databases ****\ --user=****\ --password=****\ --default-character-set=utf8\ --add-drop-database\ --add-drop-table\ --add-locks\ --complete-insert\ --extended-insert\ --lock-all-tables\ --create-options\ --disable-keys\ --quick\ --order-by-primary\ --set-charset\ --tz-utc\ > dump/test.sql これまでのところは良いですが、パラメーターと実行に関していくつか質問があります。 私の最初の懸念については、それらのすべてが必要であり、一緒に使用したときに競合を引き起こさないことを確認したいだけです。最終的に、テーブル、データベースを作成し、データを挿入する、数百万のレコードを持つ非常に堅牢で一貫したダンプファイルを作成したいと思います。良いことは、データベースをしばらく利用できないようにすることは私にとって問題ではないということです。私の唯一の目標は、堅牢で一貫性のあるダンプファイルを作成することです。 2回目のコンサートについては、コマンドが間違った場合に通知を受け取る方法を知りたい場合は例外をスローします。 何か案は? 編集 これは、RolandoMySQLDBAのフィードバックに基づいて更新されたmysqldumpコマンドです。 mysqldump\ --host=localhost\ --port=3306\ --databases ****\ --user=****\ --password=****\ --default-character-set=utf8\ --opt\ --single-transaction\ --routines\ --triggers\ --events\ --add-drop-database\ --add-drop-table\ --complete-insert\ --delayed-insert\ --tz-utc\ …

4
MySQLの2つのテーブルの継承をモデル化する方法
データを保存するテーブルがいくつかあり、仕事をした人のタイプ(労働者、市民)に応じてeventテーブルに保存しますが、今ではこれらの人が動物を救いanimalます(テーブルがあります)。 最後に、男(労働者、市民)が動物を救ったというイベントを保存するテーブルが必要ですが、お辞儀をする必要がありidますか、または仕事をした市民または労働者の価値を知る方法はありますか? さて、このデザインでは、どの人が仕事をしたかをどのように関連付けるかわかりません、私はこの最後の表の列にcivil_idベールを保存するだけの人(別名市民)しかいpersonません...しかし、どのように市民か労働者かを知っている場合、他の「中間」テーブルが必要ですか? 次の図の設計をMySQLに反映する方法は? 追加の詳細 次の方法でモデル化しました。 DROP TABLE IF EXISTS `tbl_animal`; CREATE TABLE `tbl_animal` ( id_animal INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(25) NOT NULL DEFAULT "no name", specie VARCHAR(10) NOT NULL DEFAULT "Other", sex CHAR(1) NOT NULL DEFAULT "M", size VARCHAR(10) NOT NULL DEFAULT "Mini", edad VARCHAR(10) NOT …

2
MySQLでREGEXPを使用してSUBSTRINGを使用する方法
次のような状況があります。MySQLを使用して、記述から正規表現を部分文字列にする必要があります。説明: Lorem D9801 ipsum dolor sit amet D9801はREGEXPです。すべての強力なテキスト記述は、異なるコンテンツを持っていますが、私の正規表現すべきであるように見えます:REGEXP「D [[:桁:]] {4}」 REGEXPの先頭は常に「D」、末尾は「xxxx」-末尾は4桁:Dxxxx REGEXPがtrue / false値のみを返すことは知っていますが、「D9801」値のみを返すクエリを作成するにはどうすればよいですか? 私はこのようなことを試しました: SELECT SUBSTRING (description, LOCATE(REGEXP 'D[[:digit:]]{4}', description), 5) FROM ( SELECT "Lorem D9801 ipsum dolor sit amet" AS description ) temp 私はそれが間違っていることを知っているので、これを試してみます: SELECT id, SUM(description REGEXP 'D[[:digit:]]{4}') AS matches, CASE WHEN (SUM(description REGEXP 'D[[:digit:]]{4}') > 0) …

2
カスタムデータ型などはありますか?
MySQLはカスタムデータ型をサポートしていますか?たとえば、郵便番号はvarchar(10)フィールドに格納されintますが、空白のオプションと5桁か5 + 4桁の郵便番号かを示すフラグを付けて、に圧縮できます。 そのようなことのためにシームレスなデータ型をインストールする方法はありますか?アプリケーションに関する限り、それは文字列型であり、アプリケーションが無効なデータを渡すと、データの切り捨て(警告の有無にかかわらず)が発生します。 カスタム関数を使用できます(たとえば、INET_ATONIPv4アドレス用の組み込み関数があります。ただし、zip LIKE '12345%'適切にインデックスを作成する必要があるものは許可されません。カスタムデータ型の適切なサポートにより、データ型をマークできます。そのため、コンパクトzip intは、並べ替えられると、まるでのように並べ替えられzip varchar(10)ます。 これにより、列の幅を固定でき、6または10バイトの変数ストレージを固定幅の4バイトに削減できます。 適用可能な用途がいくつかあります 郵便番号 IPv6アドレス 分のレベルの精度と容量を超えるカスタム2038ストレージタイムスタンプフィールドでdatetime、使用量は未満ですが、実装年より前の日付をサポートする必要はありません(システムで最も古い日付の場合、最小は2007になります) DSTを実装するタイムスタンプ(存在しないようです) 2文字の米国の州は1バイトで保存できます longはENUM、カスタムデータ型に分離DESCRIBEできるため、すべてのラッピングで出力がそれほど乱雑になりません。 データ型ハンドラーは、関数が保存される方法と同様に保存されることを期待しています。 データベースエンジンには、このようなリモートで何かがありますか?私は主にMySQLを使用しますが、これを実装したことがあるかどうか、アプリケーションに関数のような関数を呼び出させること以外は興味がありINET_ATONます。 MS SQLにはそのような性質があるように見えますが、単なる同義語以上のものかどうかを知りたいと思います。(例えばbooleanの同義語可能性がありtinyint(1)、またはpostal_codeのいずれかのcharまたはvarchar (5または9または10))シノニムは、私はおよそここに求めていたものではないです。

9
データマスキング用のツールは何ですか?(MySQL、Linux)[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 (理想的には無料のオープンソースの)データマスキングツールを探しています。そのようなものはありますか? 注:この関連する質問は、テストデータを生成するためのツールを扱っていますが、この質問では、実際のデータから始めて、テスト目的で興味深い特別な関係を失うことなくテストで使用するためにマスキングすることに興味があります。生成されたデータは一部のテスト目的には適していますが、実際のデータでは考えもしなかった問題が発生します。 テストデータの大規模なデータセットを生成するツール
14 mysql  linux  testing 

2
Explainが答えを知っているのに、なぜcount(*)が遅いのですか?
このクエリ:select count(*) from planner_event実行に非常に長い時間がかかります-とても長いので、終了する前にそれをgaveめて殺しました。ただし、実行するexplain select count(*) from planner_eventと、出力に列数(14m)の列が表示されます。 Explainが行数を即座に取得できるのに、count(*)の実行に時間がかかるのはなぜですか?
14 mysql  count  explain 

5
大きなテーブルでLEFT JOINを使用して非常に遅いSELECTを最適化する方法
私は何時間もグーグルで独学で解決策を探していましたが、運がありませんでした。ここではいくつかの同様の質問を見つけましたが、この場合は見つかりませんでした。 私のテーブル: 人(〜1000万行) 属性(場所、年齢、...) 人と属性の間のリンク(M:M)(〜40M行) フルダンプ〜280MB 状況:person_idいくつかの場所(location.attribute_value BETWEEN 3000 AND 7000)、性別(gender.attribute_value = 1)、生まれた年(bornyear.attribute_value BETWEEN 1980 AND 2000)、目の色(eyecolor.attribute_value IN (2,3))から すべての個人ID()を選択しようとしています。 これは私の魔女が3〜4 分かかったクエリです。最適化したい: SELECT person_id FROM person LEFT JOIN attribute location ON location.attribute_type_id = 1 AND location.person_id = person.person_id LEFT JOIN attribute gender ON gender.attribute_type_id = 2 AND gender.person_id = person.person_id …

4
CONCAT MySQL内のNULL値を除外する方法は?
これがある場合-taddはAddressテーブルです: CONCAT(tadd.street_number, ' ', tadd.street_name,', ', tadd.apt_number,', ', tadd.city,', ', tadd.postal_code,', ', tadd.country) AS 'Address' apt_numberが存在しない場合、除外する方法はありますか? 私は考えていました: WHERE tadd.apt_number IS NOT NULL しかし、それはでそれらの行のみを返しますapt_number、そして何かがうまくいくとしても、その余分なコンマをどのように処理しますか。 重複している場合は、コメントにリンクを投稿してください。
14 mysql  null  concat 

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