2019 Oct. 14.
2019 Jan. 03.
2019 Jan. 02.
2018 Nov. 18.
2018 Sep. 15.
2018 Sep. 02.
インストール
# apt install mysql-serverFLUSH PRIVILEGES; 別のターミナルを開いて sudo 無しでログインできるか確認する
利用文字コードはutf8mb4、collationはutf8mb4_binにする
MySQL 8.0.1 以降では collation-server のデフォルト値は utf8mb4_0900_ai_ci
設定状況確認
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
+----------------------+--------------------+
| Variable_name | Value |
+----------------------+--------------------+
| collation_connection | utf8mb4_0900_ai_ci |
| collation_database | utf8mb4_0900_ai_ci |
| collation_server | utf8mb4_0900_ai_ci |
+----------------------+--------------------+
設定変更
/etc/mysql/conf.d/ に拡張子を".cnf"とする任意のファイル名で次の設定を記述
あるいは
~/.my.cnf に記述
[client]
# default-character-set = utf8mb4 設定するとクライアント画面で日本語入力ができない
[mysqld]
character-set-server=utf8mb4
# default-character-set = CODE ではmysqlが起動しない
collation_server=utf8mb4_bin
[mysqldump]
default-character-set = utf8mb4
[mysql]
# default-character-set = utf8 設定すると日本語入力できない
確認
| 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 | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
+----------------------+--------------------+
| Variable_name | Value |
+----------------------+--------------------+
| collation_connection | utf8mb4_0900_ai_ci |
| collation_database | utf8mb4_bin |
| collation_server | utf8mb4_bin |
+----------------------+--------------------+
collation設定
確認:SELECT @@character_set_database, @@collation_database;
変更:ALTER DATABASE COLLATE 'utf8_general_ci'
(テーブル単位)
確認:show table status from データベース名;
変更:ALTER TABLE テーブル名 COLLATE 'utf8_general_ci';
(カラム単位)
確認:
use information_schema;
select table_name, column_name, collation_name from columns where table_schema="データベース名" and collation_name is not null
変更:
use データベース名
ALTER TABLE テーブル名 MODIFY COLUMN カラム名 varchar (255) COLLATE 'utf8_general_ci';
既存データベースの文字コードとcollationの変更
ALTER DATABASE DB名 CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
既存テーブルの文字コードとcollationの変更
EPGREC用設定
[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
( askubuntu.com/questions/615129/systemd-mysql-wont-stop より)
# cp /lib/systemd/system/mysql.service /etc/systemd/system/
# chmod 755 /etc/systemd/system/mysql.service