ラベル mysqlインストール の投稿を表示しています。 すべての投稿を表示
ラベル mysqlインストール の投稿を表示しています。 すべての投稿を表示

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