====== 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)) * パスワードは起動時にログに記録されている >>>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 ===== MySQLのレプリケーションユーザーのパスワード確認方法 ===== - スレーブサーバーへログイン - MySQLのデータディレクトリのmaster.infoを確認する ===== 設定 ===== **MySQL5.7.1のはまりどころ**\\ パスワードポリシーが厳格になって、定期的に変更しないとパスワードが無効になって突然死亡する((MySQL 5.7.11でFIX)) # 文字コード設定 character-set-server = utf8 # パスワードの寿命 default_password_lifetime = 0 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 [mysqld] ... default-storage-engine=INNODB ← INNODBをdefaultに 5.5.5以降不要 #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 ===== character set 確認 ===== mysql> show variables like "chara%"; +--------------------------+----------------------------+ | 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/ | +--------------------------+----------------------------+ ===== ユーザの確認 ===== mysql> select user,host from mysql.user; +------+-----------------------+ | user | host | +------+-----------------------+ | root | 127.0.0.1 | | root | ::1 | | | localhost | | root | localhost | | | localhost.localdomain | | root | localhost.localdomain | +------+-----------------------+ ===== バージョン確認 ===== 以下のSQLを実行 select version(); ===== バックアップ ===== パイプでつないで圧縮もする /usr/local/bin/mysqldump -u -p | gzip > /path/to/backup/hoge_`date +%Y_%m_%d`.gz ===== リストア ===== gz圧縮されたものをリストア zcat backupfile.gz | mysql -u -p mysql -u -p < backupfile.sql ===== SQLをコマンドラインから直接実行する ===== # mysql -u -p -e'show tables;' ===== Adminer ===== phpMyAdminの代替。 1ファイルで作成されているので設置も簡単です。 設定なんかはこっち→ [[serverapps:apache:adminer|Adminer]] ===== 参考 ===== [[http://nippondanji.blogspot.com/2010/12/mysql-55.html|漢(オトコ)のコンピュータ道:MySQL 5.5新機能徹底解説]]