4月
20
2011
my.confの[client]と[mysql]のところへsslの設定を追記
ssl-ca ssl-cert ssl-keyのパスはOpenSSL設定でSSL設定した場合
# vi /etc/my.cnf
[client]
ssl-ca = /etc/pki/CA/cacert.pem
ssl-cert = /usr/local/ssl/cert-ca.pem
ssl-key = /usr/local/ssl/server.key
[mysqld]
ssl-ca = /etc/pki/CA/cacert.pem
ssl-cert = /usr/local/ssl/cert-ca.pem
ssl-key = /usr/local/ssl/server.key
Mysqlを再起動
# service mysqld restart
mysqld を停止中: [ OK ]
mysqld を起動中: [ OK ]
MysqlでSSLへの対応確認
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
mysql> SHOW VARIABLES LIKE '%ssl%';
+---------------+----------------------------+
| Variable_name | Value |
+---------------+----------------------------+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | /etc/pki/CA/cacert.pem |
| ssl_capath | |
| ssl_cert | /usr/local/ssl/cert-ca.pem |
| ssl_cipher | |
| ssl_key | /usr/local/ssl/server.key |
+---------------+----------------------------+
have_opensslとhave_sslがYESならOK!もしDISABLEDならパスが違う。
OKならSSL通信できてるか確認。
mysql> SHOW STATUS LIKE 'Ssl_cipher';
+---------------+--------------------+
| Variable_name | Value |
+---------------+--------------------+
| Ssl_cipher | DHE-RSA-AES256-SHA |
+---------------+-------------------
Ssl_cipherの値が空でなければSSL通信ができているようである。
《参考サイト》
MySQLサーバにSSLで接続する
MySQL 5.0で容易になったSSLによる暗号化通信
4月
14
2011
ユーザー追加
権利 ALL PRIVILEGES 全権
ユーザー admin
データーベース dbA
ホスト % 無制限
パスワード *****
mysql> GRANT ALL PRIVILEGES ON dbA.* TO 'admin'@'%' IDENTIFIED BY '*****';
権限の種類
all — 全ての権限を与える。ALL PRIVIREGES または、ALL
usage — 全ての権限を与えない
create — テーブルを作成する権限を付与する
alter — テーブルを変更する権限を付与する
drop — テーブルを削除する権限を付与する
index — インデックスを作成/削除する権限を付与する
Select,Update,Insert,Delete テーブル操作
パスワードの変更
mysql> SET PASSWORD FOR ユーザー@"ホスト"=PASSWORD('パスワード');
ユーザー削除
ユーザー admin
ホスト %
DELETE FROM mysql.user WHERE user='admin' AND host='%';
4月
09
2011
CentOs5.5 Mysql5.5 php5.3の環境でphpMyAdminを使いたくインストールすると・・・・php-mysqlのインストールでエラーが
# yum --enablerepo=remi install php-mysql
....................
Missing Dependency: libmysqlclient.so.16 is needed by package php-mysql-5.3.6-1.el5.remi.i386
libmysqlclient.so.16がないと怒られた
yumでインストールできるようだ。。。。。。
# yum --enablerepo=remi-test install mysqlclient16
《参考サイト》
mysqlclient16のインストール
4月
06
2011
接続関係
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
#文字コード
character-set-server = utf8
#名前解決しない 外部ネットワークから接続しない時は設定したほうが良い
skip-name-resolve
#同時接続最大数 デフォルト100
max_connections = 100
#接続ごとに作成されるスレッドをキャッシュ max_connectionsの3分の1程度が推奨
thread_cache_size = 30
#同時に実行するスレッド数
thread_concurrency = 8
#休眠中のコネクションを切る デフォルトは1時間 60(1分)ほどで十分のようだ
wait_timeout = 60
メモリ関係
#検索に使われるインデックスをバッファに保存するメモリ 全メモリの30-40%程度とか
key_buffer_size = 256M
#ORDER BYやGROUP BYのときに使われるメモリ上の領域
sort_buffer_size = 1M
#インデックスを用いないテーブル結合のときに使われるメモリ上の領域
join_buffer_size = 256K
#インデックスを指定しないSELECTなどで利用(MyISAM)
read_buffer_size = 1M
#キーを指定しないORDER BYなどで利用(MyISAM)
read_rnd_buffer_size = 4M
#CREATE INDEX ALTER INDEX等でインデックスのソートに使用とかあまりいらしい
myisam_sort_buffer_size = 1M
#入力データ保持の最大バッファサイズ 最大16M 画像を保存するときは大きめに
max_allowed_packet = 1M
#メモリ領域内で生成される一時テーブルのサイズGROUP BYの処理などで頻繁に使用
tmp_table_size = 32M
#クエリーキャッシュのサイズ クエリの結果をメモリに保持
query_cache_size= 128M
#1回のクエリについてキャッシュすることが出来る最大値
query_cache_limit = 4M
#接続バッファと結果バッファの初期サイズ
#必要に応じて max_allowed_packet で設定した値まで大きくなる
net_buffer_length = 16K
#テーブルキャッシュのサイズ 頻繁なアクセスをキャッシュ
table_open_cache = 256
log レプリケーション関連
# 遅いクエリ(1秒以上)をログファイルに記録する
slow_query_log=ON
slow_query_log_file=mysql-slow.log
long_query_time=1
# インデックスを使用しないクエリもスロークエリログに記録する
log-queries-not-using-indexes
# バイナリログの保存先 レプリケーションに必要
log-bin = logbin
# バイナリログのtype
binlog_format = mixed
# ID masterとslaveでこの値を変える
server-id = 1
innodb 関連
#ディレクトリの設定
innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/
#InnoDBのデータやインデックスをキャッシュするメモリ領域 搭載メモリの70~80%
innodb_buffer_pool_size = 256M
#InnoDBの内部データなどを保持する領域
innodb_additional_mem_pool_size = 20M
#InnoDBの更新ログを記録するメモリ領域
innodb_log_buffer_size = 8M
#InnoDBの更新ログを記録するディスク上のファイル innodb_buffer_pool_size の25%程度?
#innodb_buffer_pool_size < innodb_log_file_size×innodb_log_files_in_groupになるように
innodb_log_file_size = 64M
innodb_log_files_in_group = 2
#flush logの設定 1ディスク、2メモリ、0なし
#レプリケーションをした場合はスレーブでは2にしても良いようだ
innodb_flush_log_at_trx_commit = 1
設定がすんだら5分でできる、MySQLのメモリ関係のチューニング!からダウンロードしたmymemcheckでチェック。。。。
するとエラーが・・・・・・・・・・・・・・・・
Can't locate Readonly.pm in @INC ........
Can't locate UNIVERSAL/require.pm in @INC ..........
Readonly.pmがない???
そこでperlのモジュールをインストール
Mysqlを起動・・・・・・ 失敗
# service mysqld start
MySQL Daemon failed to start.
mysqld を起動中: [失敗]
前のデータが残ってるみたい・・・・
# rm -rf /var/lib/mysql
データを削除したらOK
《参考サイト》
MySQLのパラメータ調整
Results tagged “my.cnf”
mysqlを高速化したいときのチューニング方法
MySQLのチューニング
my.cnfの設定例
5分でできる、MySQLのメモリ関係のチューニング!
[MySQL] パフォーマンス関連メモ
4月
06
2011
remiなどでMysqlを新しくした時Mysqlが起動しない
# service mysqld start
MySQL Daemon failed to start.
mysqld を起動中: [失敗]
以前のバージョンが邪魔しているみたいです。なので削除して再インストール
# yum remove mysql mysql-server
# rm -fr /var/lib/mysql/
# rm -fr /usr/share/mysql/
# yum --enablerepo=remi-test --disablerepo=base,updates install mysql mysql-server
これで
# service mysqld start
mysqld を起動中: [ OK ]
Mysql5.5にした場合は /etc/my.cnfのcharacter-setを変更する
#default-character-set=utf8
character-set-server = utf8
《参考サイト》
さくらの VPSで mysql が起動しない