2018年9月2日日曜日

mysqlインストール

2019 Nov. 02.
2019 Oct. 14.
2019 Jan. 03.
2019 Jan. 02.
2018 Nov. 18.
2018 Sep. 15.
2018 Sep. 02.

インストール

# apt install mysql-server
続いて
# mysql_secure_installation
  質問にはすべて "y" でよい。

"$ mysql -p -u root" でログインできるようにする


"$ mysql -p -u root" でログインできない状態となっている。
"$ sudo mysql -p -u root" ならログインできる。
  
"$ mysql -p -u root" でログインできるようにする
( https://note.mu/junf/n/na40fbca9e6ea )
 
  $ sudo mysql -u root -p
  mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
  mysql> FLUSH PRIVILEGES; 
  別のターミナルを開いて sudo 無しでログインできるか確認する


利用文字コードをutf8にする。

/etc/mysql/conf.d/ に拡張子を".cnf"とする任意なファイル名で次の設定を記述

あるいは

 ~/.my.cnf に記述


  [client]
  # default-character-set = utf8 (設定すると日本語入力できない)

  [mysqld]
  character-set-server=utf8
    # default-character-set = utf8 ではmysqlが起動しない

  [mysqldump]
  default-character-set = utf8

  [mysql]
  # default-character-set = utf8 (設定すると日本語入力できない)

 

  確認

( www.jifu-labo.net/2015/09/ubuntu_epgrecuna/ より)
$ mysql -u root -p
   文字コードの設定に問題がないか確認。
   set_filesystemとsets_dir以外が全てutf8ならば問題ない。
  mysql> show variables like "char%";
  +--------------------------+----------------------------+
  | Variable_name            | Value                      |
  +--------------------------+----------------------------+
  | character_set_client     | utf8                       |
  | character_set_connection | utf8                       |
  | character_set_database   | utf8                       |
  | character_set_filesystem | binary                     |
  | character_set_results    | utf8                       |
  | character_set_server     | utf8                       |
  | character_set_system     | utf8                       |
  | character_sets_dir       | /usr/share/mysql/charsets/ |
  +--------------------------+----------------------------+
  8 rows in set (0.01 sec)


 EPGREC用設定

sql-modeの指定をしない(strict制約をしない)。sql_mode=''
・書き出し先ディレクトリ制約をしない。secure-file-priv = ""

[mysqld]
sql_mode=''
secure-file-priv = ""



ネットワーク(127.0.0.1 を含む)からのアクセスを許可する

/etc/mysql/ 内の設定ファイルに
skip-networking
の行があれば削除もしくはコメント化する。

外部からのにアクセスを許可する場合

アクセス許可するIPアドレス設定(bind-address = 0.0.0.0)

/etc/mysql.conf.d/mysqld.cnf の "bind-address = xxx.xxx.xxx.xxx" を修正する。
 すべてのIPアドレスからのアスセスを許可 ->  bind-address = 0.0.0.0
 localhostからのアクセスのみを許可 -> bind-address =127.0.0.1
 bind-addressを複数行記述すると最終行のみが有効。
 1行に、スペース区切りで複数アドレスを記述すると最初のアドレスのみが有効。
 "xxx.xxx.xxx." "xxx.xxx.xxx.0/24" "xxx.xxx.xxx.0/255.255.255.0" といった記述はできない。


/etc/hosts.allow 設定


  mysqld: ALL  (すべてのIPアドレスからのアクセスを許可)
  mysqld: 127.0.0.1  (localhostからのアクセスを許可)
  mysqld: 192.168.1.  (192.168.1/24からのアクセスを許可)

3306ポート開放

# ufw enable
# ufw allow 3306/tcp
# ufw allow 3306/udp

3306ポートをLISTENしているのを確認する。
$ netstat -na | grep 3306
$ mysql -h 127.0.0.1 -P 3306 -u root -p
 

PC shutdown時にmysqlが終了しない現象を防ぐ(ubuntu15.04以降)


システムシャットダウン時にmysqlを手動で止める?
# systemctl stop mysql.service && systemctl disable mysql.service


以下の対策では再発した。
shutdown時に"A stop job is running for MySQL Community Server" と表示され10分間停止してしまう現象への対処

( askubuntu.com/questions/615129/systemd-mysql-wont-stop より)
# chgrp mysql /etc/mysql/debian.cnf
# chmod 640 /etc/mysql/debian.cnf
# cp /lib/systemd/system/mysql.service /etc/systemd/system/
# chmod 755 /etc/systemd/system/mysql.service

/etc/systemd/system/mysql.service を編集する。
  [Service]セクションに次の行を書き込む。
    ExecStop=/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown

変更をsystemdに登録する。
  # systemctl daemon-reload

以下の対策はxubuntu16.04では改善されなかった。
( askubuntu.com/questions/615129/systemd-mysql-wont-stop より)
# cat /etc/mysql/debian.cnf
    password = xxxxx を確認する。

$ mysql -u root -p

mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'xxxxx' ;
mysql> flush privileges;

以下の対策はxubuntu16.04では改善されなかった。
  # cp /lib/systemd/system/mysql.service /etc/systemd/system/
  # chmod 755 /etc/systemd/system/mysql.service

0 件のコメント:

コメントを投稿