最速! mysql5.7 インストール手順
MySQL5.7のインストール
しばらくMariaDBに使っていたので、MySQL 5.7のインストール方法について、すっかり忘れてしまったので、備忘録代わりに書きます。その過程でエラーおよびワーニングが発生ししたものに関しては、1つずつ、my.cnfを修正して、結果エラーはZEROになりましたので、最後に出てくるmy.cnfはまるっとコピペしても大丈かと思います。 また、今回、centos6系でインストールを実施しましたが、32BITも、64BITも同様の手順で行えます。
インストール
rpm --import http://dev.mysql.com/doc/refman/5.7/en/checking-gpg-signature.html rpm -ihv http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm yum --enablerepo='mysql57-community*' install mysql-community-server mysql-community-common mysql-community-devel mysql-community-embedded mysql-community-libs /etc/init.d/mysqld start ---------------------------------------------------------------------------------------------- mysqld を起動中: [ OK ]
必要があれば、MySQLのデータディレクトリの初期化
mysqld --initialize chown -Rf mysql:mysql mysql/
初期パスワードを確認する
cat /var/log/mysqld.log | grep "temporary password" ---------------------------------------------------------------------------------------------- 2016-12-20T01:04:30.285707Z 1 [Note] A temporary password is generated for root@localhost: 5NlWj;(+5a(y
SSLキーを発行する
ぶっちゃけ、これが何に役立つかわかってないですが、起動時にワーニングがでるので設定しておきます ログファイルに以下の感じのものが出ておりましたら、対応しておいたほうがいいです(適当
2016-12-20T02:26:29.581960Z 0 [Warning] CA certificate ca.pem is self signed.
SSLキーを生成する
cd /var/lib/mysql ; mysql_ssl_rsa_setup; chown mysql:mysql *.pem ll *.pem ------------------------------------------------------------------------------------- -rw------- 1 mysql mysql 1675 12月 20 11:23 2016 ca-key.pem -rw-r--r-- 1 mysql mysql 1074 12月 20 11:23 2016 ca.pem -rw-r--r-- 1 mysql mysql 1078 12月 20 11:23 2016 client-cert.pem -rw------- 1 mysql mysql 1679 12月 20 11:23 2016 client-key.pem -rw------- 1 mysql mysql 1679 12月 20 11:23 2016 private_key.pem -rw-r--r-- 1 mysql mysql 451 12月 20 11:23 2016 public_key.pem -rw-r--r-- 1 mysql mysql 1078 12月 20 11:23 2016 server-cert.pem -rw------- 1 mysql mysql 1679 12月 20 11:23 2016 server-key.pem
my.cnf に以下の値を入力する
初回ログインする
mysql -uroot -p パスワードは、上記の5NlWj;(+5a(yを入力する
パスワードの変更
とりあえず、複雑なパスワードを求められるので、複雑なパスワードを入れてくださいw
SET password for root@localhost=password('@a@1@2@3@4@55azA@');
my.cnfの編集
一概にこれが正解ってわけでもないのですが、私の場合、こんな感じにしております こちらは環境にあわせて適宜変更するのが、よろしかと思います。
my.cnf
[root@gate mysql]# cat /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # データディレクトリにシンボリックの利用を許可する # (セキュリティリスクあり) 0: 許可しない 1:許可する symbolic-links=1 server-id = 100001128 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid wait_timeout=28800 log-bin-trust-function-creators=1 # log_bin_trust_function_creators # ストアドファンクションおよびトリガー作成に対して # MySQL がどのように制限を適用するかに影響します。 port = 3306 socket = /var/lib/mysql/mysql.sock # IGNORE_SPACE # ファンクション名と後続の括弧間に余白が存在 # してはいけないという要求を緩和 # PIPES_AS_CONCAT # 文字列結合に||が利用できる # NO_AUTO_CREATE_USER # パスワード無しでのユーザー作成不可 sql_mode = 'IGNORE_SPACE,PIPES_AS_CONCAT,NO_AUTO_CREATE_USER' # SSLの設定 # 下記コマンドを入力してSSLキーを作成する # cd /var/lib/mysql ; mysql_ssl_rsa_setup; chown mysql:mysql *.pem ssl-ca=/var/lib/mysql/ca-key.pem ssl-cert=/var/lib/mysql/server-cert.pem ssl-key=/var/lib/mysql/server-key.pem character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 lower_case_table_names=1 max_connections = 10000 max_connect_errors = 10 table_open_cache = 15000 max_allowed_packet = 64M binlog_cache_size = 128M max_heap_table_size = 100M read_buffer_size = 128M read_buffer_size = 128M read_rnd_buffer_size = 2M sort_buffer_size = 2M join_buffer_size = 128 thread_cache_size = 8000 max_heap_table_size = 204857600 query_cache_size = 128M thread_stack = 192K transaction_isolation = READ-COMMITTED tmp_table_size = 200M log-bin=mysql-bin log-bin-index=mysql-bin relay-log=relay-bin relay-log-index=relay-bin expire_logs_days = 7 binlog_format=mixed explicit_defaults_for_timestamp = true # explicit_defaults_for_timestamp # 0の場合、 # timestamp 型に明示的にデフォルト値を設定しない # (暗黙的なデフォルト値が設定される)ということ。 log_error_verbosity=2 # -- log_error_verbosity -- # Verbosity Value # 1 Errors only # 2 Errors and warnings # 3 Errors, warnings, and notes slow_query_log long_query_time = 1.5 innodb_buffer_pool_size = 256M innodb_data_file_path = ibdata1:10M:autoextend innodb_file_per_table innodb_flush_log_at_trx_commit = 1 innodb_log_buffer_size = 8M innodb_log_file_size = 256M innodb_max_dirty_pages_pct = 90 innodb_lock_wait_timeout = 120
ログを確認する
ここまでやれば、エラーおよびワーニングは出ていないと思うけど、念のため確認しておきましょう /var/log/mysql