serverapps:db:mysql
目次
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に記録されている1)
* パスワードは起動時にログに記録されている
»>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のはまりどころ
パスワードポリシーが厳格になって、定期的に変更しないとパスワードが無効になって突然死亡する2)
# 文字コード設定 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();
DBエンジン
show engines;
select table_schema, table_name, engine from tables where table_schema = 'テーブル名';
バックアップ
パイプでつないで圧縮もする
/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
参考
serverapps/db/mysql.txt · 最終更新: 2024/10/03 09:58 by admin