■ インストール/初期設定
* MySQL 8.0 については、以下の関連記事を参照のこと。https://blogs.yahoo.co.jp/dk521123/37626919.html
インストール
sudo yum -y localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm # MySQLのインストール sudo yum install -y mysql mysql-devel mysql-server # バージョン確認 mysql --version # 一旦、MySQLの起動し、エラーが発生しないことを確認し、停止する sudo systemctl start mysqld sudo systemctl stop mysqld
初期設定(MySQLの修正)
# 修正前のファイルをバックアップとして、とっておく sudo cp -p /etc/my.cnf /etc/my.cnf.orig # viなどでファイルを修正する sudo vi /etc/my.cnf ~~~ [mysqld] ・・・ # 追加 character-set-server=utf8 # 【任意設定】MySQL5.7 からユーザーのパスワードの有効期限がデフォルトで360日(無期限にする) default_password_lifetime=0 # 【任意設定】弱いパスワードを設定できるようにする validate_password=0 ・・・ ~~~ # 意図した修正かどうかを最後に差分をとって確認する sudo diff /etc/my.cnf /etc/my.cnf.orig
■ MySQLの自動起動
sudo systemctl enable mysqld # enabledで表示されたら自動起動が有効になっている sudo systemctl is-enabled mysqld
■ MySQLの起動
# MySQLの起動 sudo systemctl start mysqld # MySQLの再起動 sudo systemctl restart mysqld # MySQLの停止 sudo systemctl stop mysqld
■ rootの設定
[前提条件] MySQLを起動させておく(sudo systemctl start mysqld)# [1] /var/log/mysqld.log で、検索キーワード「temporary password」などで # 仮パスワード(以下の「****」部分)をメモるかコピーしておく sudo less /var/log/mysqld.log /temporary password 2016-08-07T14:27:06.815348Z 1 [Note] A temporary password is generated for root@localhost: **** # q で終了 # [2] 初期設定を行う mysql -u root -p # パスワードは[1]を入れる。 # 新しいパスワードを変更する # 「validate_password=0」を行っていない場合は # 条件として「8文字以上、数字・大文字・記号を一文字づつ入れる」ようなパスワードを入力する # 例「Passwd1#」など ALTER USER 'root'@'localhost' IDENTIFIED BY 'Passwd1#'; GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'Passwd1#' WITH GRANT OPTION; FLUSH PRIVILEGES; SELECT Host, User FROM mysql.user; exit
【補足】パスワードの設定をゆるくするには...
SET GLOBAL validate_password_policy=LOW;
参考文献
http://weblabo.oscasierra.net/mysql-57-init-setup/http://gihyo.jp/dev/serial/01/mysql-road-construction-news/0010
より抜粋 ■rootアカウントの仮パスワード MySQL 5.6までは旧rpm版でのみ仮パスワードが生成され "/root/.mysql_secret"ファイルに出力されていましたが, MySQL 5.7ではデフォルトで仮パスワードが生成されるようになっています。 また、出力先も"/var/log/mysqld.log"(MySQLのエラーログファイル)に変更になっています。
【任意設定】外部からアクセスするためにファイアウォールをあける
# ファイアウォールが有効か?(「active (running)」なら以下を実行) systemctl status firewalld sudo firewall-cmd --add-service=mysql --zone=public --permanent sudo firewall-cmd --reload
■ アンインストール
# サービスを止める systemctl stop mysqld.service # アンインストール sudo yum -y remove mysql-libs mysql-server mysqlclient15 mysql-devel perl-DBD-mysql mysql mysql-community-common mysql57-community-release # 又は sudo yum -y remove mysql* でもよさそう sudo rm -rf /var/lib/mysql sudo rm /var/log/mysqld.log # 最後に削除されているか確認 rpm -qa | grep -i mysql
参考文献
http://qiita.com/rojiuratech/items/80dda65d832b407322f1■ おかしいなっと思ったら...
[1] MySQLのログ「/var/log/mysqld.log」を参照し、検索「error」等で おかしい箇所がないか探ってみるのも手かと... sudo less /var/log/mysqld.log ~~~~ 2017-02-07T13:58:05.108524Z 0 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use 2017-02-07T13:58:05.108527Z 0 [ERROR] Do you already have another mysqld server running on port: 3306 ? 2017-02-07T13:58:05.108534Z 0 [ERROR] Aborting # ポート「3306」が使われてるって怒られた ~~~~ [2] そもそもMySQLが起動したか調べる ps ax | grep mysqld
参考文献
http://weblabo.oscasierra.net/installing-mysql57-centos7-yum/https://yukiyamashina.com/blog/2016/01/18/clean-install-mysql-on-mac-os-x-el-capitan/
ファイアウォールの設定
http://qiita.com/haminiku/items/56fcb578d86abcd0b571