ユーザ用ツール

サイト用ツール


サイドバー

Index

はじめてのおつかい






DokuWiki整形記法


PlayGround



serverapps:db:mysql

文書の過去の版を表示しています。


MySQL

インストール

# pkg_replace -N databases/mysql55-server

起動

/etc/rc.conf

mysql_enable="YES"
# service mysql-server start

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

これをやれば動いた

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

設定

MySQL5.7.1のはまりどころ
パスワードポリシーが厳格になって、定期的に変更しないとパスワードが無効になって突然死亡する

[client]
# 文字コード設定
character-set-server = utf8
# パスワードポリシーの無効化
validate_password= OFF

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に
#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/ |
+--------------------------+----------------------------+

バージョン確認

以下の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ファイルで作成されているので設置も簡単です。

設定なんかはこっち→ Adminer

参考

1)
5.7.15
serverapps/db/mysql.1528896775.txt.gz · 最終更新: 2018/06/13 22:32 by hayashi