#author("2024-03-15T21:27:07+09:00","default:irrp","irrp") #author("2024-03-16T22:14:06+09:00","default:irrp","irrp") →データベース関連 #contents *公式サイト [#sc4b63d6] -https://dev.mysql.com/doc/refman/8.0/ja/preface.html -[[公式ドキュメンテーション>https://dev.mysql.com/doc/]] *入門記事 [#s98370f5] -[[SQLの達人への道: MySQLでの高速・効率的クエリ作成術 #MySQL - Qiita>https://qiita.com/SimonLee/items/a878f721975370b45883]] 2024.2 -[[わからないなりに理解したいデータベース?:RDB編:MySQL? | SIOS Tech. Lab>https://tech-lab.sios.jp/archives/29702]] 2022.6 -[[MySQLの使い方>https://www.dbonline.jp/mysql/]] -[[MySQL Tutorial 1: Overview, Tables, Queries>http://arachnoid.com/MySQL/]] -[[MySQLを基礎から運用まで深く学びたい人におすすめのスライドまとめ8つ >http://it-ch.net/t/11]] 2012.7.25 *基礎知識 [#t196031f] -ユーザ作成で、@以下のホスト名が違うと異なるユーザとして扱われる。 -mysqlクライアントから入力するコマンドは、基本は大文字/小文字は区別しない。但し、データベース名のみはLinux環境では大文字/小文字は区別される。 -mysqlクライアントからのコマンドで、最後に;で終わるものはSQL、ないものはmysqlに対するコマンド。 -データベースの格納先はデフォルトでは/var/lib/mysql/。/etc/mysql/mysql.conf.d/mysqld.cnfのdatadirに指定してある。 -外部ホストから許可するのにbind-addressの記述はアドレスのみで、192.168.1.*のようなネットワークアドレスは指定できない。 *DDL、スキーマ作成 [#b8355f63] -[[MySQL :: MySQL 8.0 リファレンスマニュアル :: 3.3 データベースの作成と使用>https://dev.mysql.com/doc/refman/8.0/ja/database-use.html]] 2023.11 -username@ の後のホスト名にワイルドカードを使える --ホスト名にはワイルドカードである '_' と '%' が使用できます。 --'_'は任意の一文字を表し'%'は任意の長さの文字列に一致します。(ユーザー名ではワイルドカードを使用できません)。 -[[MySQLの日付型の扱い方や機能をまとめてみました >http://tech-blog.tsukaby.com/archives/179]] 2013 *状態を知るSQL [#j19898f4] -バージョン、現在日付 mysql> SELECT VERSION(), CURRENT_DATE; +-----------+--------------+ | VERSION() | CURRENT_DATE | +-----------+--------------+ | 8.0.35 | 2023-11-15 | +-----------+--------------+ 1 row in set (0.00 sec) -ユーザをリストする select user, host from mysql.user; +------------------+-----------+ | user | host | +------------------+-----------+ | wordpress | % | | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 5 rows in set (0.00 sec) -DBをリスト mysql> select host,db,user from mysql.db; +-----------+--------------------+---------------+ | host | db | user | +-----------+--------------------+---------------+ | localhost | performance_schema | mysql.session | | localhost | sys | mysql.sys | +-----------+--------------------+---------------+ 2 rows in set (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) -テーブルをリストする(https://uxmilk.jp/12296) mysql> show tables from sys; +-----------------------------------------------+ | Tables_in_sys | +-----------------------------------------------+ | host_summary | | host_summary_by_file_io | | host_summary_by_file_io_type | | host_summary_by_stages | | host_summary_by_statement_latency | | host_summary_by_statement_type | | innodb_buffer_stats_by_schema | | innodb_buffer_stats_by_table | | innodb_lock_waits | | io_by_thread_by_latency | | io_global_by_file_by_bytes | | io_global_by_file_by_latency | | io_global_by_wait_by_bytes | | io_global_by_wait_by_latency | | latest_file_io | | memory_by_host_by_current_bytes | … | x$wait_classes_global_by_avg_latency | | x$wait_classes_global_by_latency | | x$waits_by_host_by_latency | | x$waits_by_user_by_latency | | x$waits_global_by_latency | +-----------------------------------------------+ 101 rows in set (0.02 sec) -テーブルのDDLを表示させる show create table <table名> -[[MySQLでユーザー一覧を取得する方法 権限とパスワード一覧も取得!>https://www.sejuku.net/blog/81974]] 2018.12 --テーブルのカラム表示 SHOW COLUMNS FROM <table>; --ユーザの権限一覧 SHOW GRANTS FOR <user>@<host>; *Tips [#f8bc018e] -[[第217回 MySQL ShellでJavaScriptを使ってMySQLを操作してみよう[その2] | gihyo.jp>https://gihyo.jp/article/2024/03/mysql-rcn0217]] 2024.3 -[[MySQL テーブルデータをcsv形式で出力する | mebee>https://mebee.info/2021/12/17/post-46374/]] 2021 -[[【MySQL】フロントエンドエンジニアがMySQLのWITH句の便利さを知った話>https://zenn.dev/manalink_dev/articles/mysql-with-benri]] 2024.1 -[[データの秘密を暴く!MySQLでシステムを徹底解析する究極のガイド | ジコログ>https://self-development.info/%e3%83%87%e3%83%bc%e3%82%bf%e3%81%ae%e7%a7%98%e5%af%86%e3%82%92%e6%9a%b4%e3%81%8f%ef%bc%81mysql%e3%81%a7%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%92%e5%be%b9%e5%ba%95%e8%a7%a3%e6%9e%90%e3%81%99/]] 2023.11 -[[MySQL のインデックスと EXPLAIN の社内講習会しました!|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ>https://www.infiniteloop.co.jp/tech-blog/2023/08/learning-mysql-index-explain/]] 2023.8 -[[MySQL8.0ではGRANTでユーザ登録ができなかった話>https://qiita.com/tech31/items/e40a3e73c237c97f94f1]] 2019 -[[Node.jsのMySQLでAsync/Awaitする方法>https://qiita.com/reon777/items/d3781e40ba518a6544f8]] 2018.5 -[[MySQLのCollationを理解するためにまとめてみた。>http://blog.6vox.com/2014/05/mysqlcollatoin.html]] 2014 -[[テキストファイルから SQL ステートメントを実行する(公式)>https://dev.mysql.com/doc/refman/5.6/ja/mysql-batch-commands.html]] -[[mysqldumpで特定のレコードだけエクスポートする>https://journal.lampetty.net/entry/mysqldump-option-where]] 2016.12 -[[DeNAによる大規模なMySQLノンストップ運用の裏側にある、フェイルオーバー自動化ツール>http://www.publickey1.jp/blog/11/denamysql.html]] 2011.4.15 -[[MySQL管理者最速マスター>http://nippondanji.blogspot.com/2010/02/mysql.html]] 2010.2.5 -[[MySQLに纏わる10の都市伝説>http://nippondanji.blogspot.com/2009/12/mysql10.html]] 2009.12.18 -[[MySQL InnoDBだけで全文検索>http://d.hatena.ne.jp/sh2/20091206]] 2009.12.6 --Twitterのデータを転置インデックスで検索 -[[MySQLのEXPLAINを徹底解説>http://nippondanji.blogspot.com/2009/03/mysqlexplain.html]] 2009 -[[なぜMySQLのサブクエリは遅いのか>http://nippondanji.blogspot.com/2009/03/mysql_25.html]] 2009 --結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリのカラムを参照しているサブクエリのことである。そして、 MySQLのオプティマイザはたびたび相関関係のないもの、つまり本来はSUBQUERYと分類されるべきものをDEPENDENT SUBQUERYであると判断してしまう。そのため、多くの場合においてサブクエリが遅くなってしまうのである。 -[[MySQLでOracleのROWNUM>http://code.nanigac.com/source/view/88]] *関連ツール [#ob21c660] -[[MySQL Workbench>https://www.mysql.com/jp/products/workbench/]] 公式ツール -[[ブラウザから快適に使えるMySQL管理ツール『SQL Buddy』を試してみた>http://www.ideaxidea.com/archives/2008/08/mysqlsql_buddy.html]] -https://www.heidisql.com/ --接続時に 10061 エラーになったら→ hosts.allow で許可する --接続時に ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 102→mysql.cnfで許可設定 $ sudo -e /etc/mysql/mysql.conf.d/mysqld.cnf #bind-address = 172.0.0.1 <コメントアウトする --参考:https://qiita.com/hachiya/items/a496cd2ec4ac3be4ea84 -https://www.phpmyadmin.net/ *インストール [#qd8b1421] -[[【AWS EC2】Amazon Linux2 にMySQLをインストールしようとしてGPGでつまづいた話 #AWS - Qiita>https://qiita.com/Code_Dejiro/items/c97c400b92a85dce4468]] 2024.1 -[[MySQL 8.0 を yum でインストール&設定メモ | あぱーブログ>https://blog.apar.jp/linux/9868/]] 2023.11 -[[[小ネタ]Amazon Linux 2023にMySQL Clientをインストールする | DevelopersIO>https://dev.classmethod.jp/articles/install-mysql-client-to-amazon-linux-2023/]] 2023.3 -[[MySQLの認証プラグインを変更する方法(caching_sha2_password)>https://qiita.com/shungo_m/items/5363c16b698ef6310014]] 2021.9 --以下のようなエラーが出た場合の対応 ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory -[[Ubuntuでmysql-serverを完全に削除する方法>https://a-zumi.net/ubuntu-mysql-server-purge/]] -[[【Ubuntu 18.04 LTS Server】MySQLサーバを動かす >https://www.yokoweb.net/2018/05/13/ubuntu-18_04-server-mysql/]] 2019.5 -自動起動するように設定 sudo chkconfig mysqld on