ユーザ用ツール

サイト用ツール


serverapps:db:mysql

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
serverapps:mysql [2017/09/20 03:40] – [設定] hayashiserverapps:db:mysql [2022/05/24 12:19] – [設定] hayashi
行 1: 行 1:
 +====== MySQL ======
  
 +===== インストール =====
 +
 +  # pkg_replace -N databases/mysql55-server
 +
 +===== 起動 =====
 +/etc/rc.conf
 +
 +  mysql_enable="YES"
 +
 +
 +  # service mysql-server start
 +
 +==== エラーで立ち上がらない ====
 +=== Can't open and lock privilege tables ===
 +
 +2014.05.22 以下のようなエラーで立ち上がらない\\
 +2014.06.18 治った模様
 +  [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
 +どうやら、pkgでインストールした際にmysql_install_dbが動いていない模様
 +  mysql_install_db --datadir=/var/db/mysql --user=mysql
 +これをやれば動いた
 +
 +=== innodb_system data file '/var/db/mysql/ibdata1' is of a different size ===
 +以下のようなエラーで立ち上がらない\\
 +
 +  The Auto-extending innodb_system data file '/var/db/mysql/ibdata1' is of a different size
 +
 +innodb関連の設定変更でデータファイル(ibdataxxx)のサイズが変わっている場合に発生。\\
 +ib_logfile#, ibdata# などを削除します。
 +
 +ただし、すでにデータが収納されている場合は、先にデータの退避と変更後にimportが必要になりますので**要注意**
 +
 +
 +===== rootパスワード設定 =====
 +
 +  # mysqladmin -u root password XXXXXXXXXXX
 +
 +**MySQL5.7.1の罠:**mysqlの最初のログインパスワードがわからない
 +
 +* ~/.mysql_secretに記録されている((5.7.15))
 +
 +* <del>パスワードは起動時にログに記録されている</del>
 +
 +<del>  >>>cat /var/log/mysqld.log |grep password
 +  2015-12-17T09:06:57.427343Z 1 [Note] A temporary password is generated for root@localhost: 8#0Ehxxxxxx
 +</del>
 +
 +===== 設定 =====
 +
 +**MySQL5.7.1のはまりどころ**\\
 +パスワードポリシーが厳格になって、定期的に変更しないとパスワードが無効になって突然死亡する((MySQL 5.7.11でFIX))
 +
 +
 +<code >
 +
 +# 文字コード設定
 +character-set-server = utf8
 +# パスワードの寿命
 +default_password_lifetime = 0
 +</code>
 +
 +utf-8をDefaultにする。(my.cnf)\\
 +my.cnfの位置
 +  # mysql --verbose --help | grep -A 1 "Default options"
 +  Default options are read from the following files in the given order:
 +  /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf /usr/local/etc/mysql/my.cnf ~/.my.cnf 
 +
 +<code>
 +[mysqld]
 +...
 +default-storage-engine=INNODB ← INNODBをdefaultに
 +#default-character-set = utf8 ← 5.5で廃止されてます
 +character_set_server = utf8
 +
 +expire_logs_days = 14 ← LOGの保持期間(ここでは14日間)
 +
 +[client]
 +default-character-set=utf8 #clientセクションを追加
 +
 +# [mysql]
 +# default-character-set = utf8
 +
 +# [mysqldump]
 +# default-character-set = utf8
 +</code>
 +
 +===== character set 確認 =====
 +
 +  mysql> show variables like "chara%";
 +
 +<code>
 ++--------------------------+----------------------------+
 +| Variable_name            | Value                      |
 ++--------------------------+----------------------------+
 +| character_set_client     | utf8                       |
 +| character_set_connection | utf8                       |
 +| character_set_database   | latin1                     |
 +| character_set_filesystem | binary                     |
 +| character_set_results    | utf8                       |
 +| character_set_server     | utf8                       |
 +| character_set_system     | utf8                       |
 +| character_sets_dir       | /usr/localshare/mysql/charsets/ |
 ++--------------------------+----------------------------+
 +</code>
 +
 +===== バージョン確認 =====
 +以下のSQLを実行
 +
 +  select version();
 +===== バックアップ =====
 +パイプでつないで圧縮もする
 +
 +  /usr/local/bin/mysqldump -u <username> -p<password> <database> | gzip > /path/to/backup/hoge_`date +%Y_%m_%d`.gz
 +
 +===== リストア =====
 +gz圧縮されたものをリストア
 +
 +  zcat backupfile.gz | mysql -u <username> -p
 +
 +  mysql -u <username> -p < backupfile.sql
 +===== SQLをコマンドラインから直接実行する =====
 +
 +  # mysql -u <username> -p<password> <database> -e'show tables;'
 +
 +===== Adminer =====
 +phpMyAdminの代替。
 +
 +1ファイルで作成されているので設置も簡単です。 
 +
 +設定なんかはこっち→ [[serverapps:apache:adminer|Adminer]]
 +
 +===== 参考 =====
 +[[http://nippondanji.blogspot.com/2010/12/mysql-55.html|漢(オトコ)のコンピュータ道:MySQL 5.5新機能徹底解説]]
serverapps/db/mysql.txt · 最終更新: 2023/06/26 08:42 by hayashi