#author("2023-08-30T16:35:20+09:00","default:irrp","irrp")
→データベース関連

#contents


*公式サイト [#sc4b63d6]
-[[公式ドキュメンテーション>https://dev.mysql.com/doc/]]
-[[MySQL 5.7 Reference Manual>https://dev.mysql.com/doc/refman/5.7/en/]]


*入門記事 [#s98370f5]
-[[わからないなりに理解したいデータベース?: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]
-username@ の後のホスト名にワイルドカードを使える
--ホスト名にはワイルドカードである '_' と '%' が使用できます。
--'_'は任意の一文字を表し'%'は任意の長さの文字列に一致します。(ユーザー名ではワイルドカードを使用できません)。 

-[[MySQLの日付型の扱い方や機能をまとめてみました >http://tech-blog.tsukaby.com/archives/179]] 2013

*状態を知るSQL [#j19898f4]
-ユーザをリストする
 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)

-テーブルをリストする(https://uxmilk.jp/12296)
 MySQL [(none)]> show tables from wordpress;
 +-----------------------+
 | Tables_in_wordpress   |
 +-----------------------+
 | wp_commentmeta        |
 | wp_comments           |
 | wp_links              |
 | wp_options            |
 | wp_postmeta           |
 | wp_posts              |
 | wp_term_relationships |
 | wp_term_taxonomy      |
 | wp_termmeta           |
 | wp_terms              |
 | wp_usermeta           |
 | wp_users              |
 +-----------------------+
 12 rows in set (0.01 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]
-[[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]]
-[[なぜMySQLのサブクエリは遅いのか>http://nippondanji.blogspot.com/2009/03/mysql_25.html]]
--結論から言おう。遅いのは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]
-[[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

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS