FreeBSD 12.4 RELEASE - MySQL - 設定

クラウディア 
1. コンフィグレーションファイルの設定
2. 文字コードを設定
3. プロンプトを変更する
4. 設定のチェック

1. コンフィグレーションファイルの設定

 コンフィグレーションファイルは、

/usr/local/etc/mysql/my.cnf
 です。  編集します。

vi /usr/local/etc/mysql/my.cnf
 デフォルトは以下のように書かれています。
[client]
port                            = 3306
socket                          = /tmp/mysql.sock

[mysql]
prompt                          = \u@\h [\d]>\_
no_auto_rehash

[mysqld]
user                            = mysql
port                            = 3306
socket                          = /tmp/mysql.sock
bind-address                    = 127.0.0.1
basedir                         = /usr/local
datadir                         = /var/db/mysql
tmpdir                          = /var/db/mysql_tmpdir
replica-load-tmpdir             = /var/db/mysql_tmpdir
secure-file-priv                = /var/db/mysql_secure
log-bin                         = mysql-bin
log-output                      = TABLE
relay-log-recovery              = 1
slow-query-log                  = 1
server-id                       = 1
sync_binlog                     = 1
sync_relay_log                  = 1
binlog_cache_size               = 16M
binlog_expire_logs_seconds      = 2592000
default_password_lifetime       = 0
enforce-gtid-consistency        = 1
gtid-mode                       = ON
safe-user-create                = 1
lower_case_table_names          = 1
explicit-defaults-for-timestamp = 1
myisam-recover-options          = BACKUP,FORCE
open_files_limit                = 32768
table_open_cache                = 16384
table_definition_cache          = 8192
net_retry_count                 = 16384
key_buffer_size                 = 256M
max_allowed_packet              = 64M
long_query_time                 = 0.5
innodb_buffer_pool_size         = 1G
innodb_data_home_dir            = /var/db/mysql
innodb_log_group_home_dir       = /var/db/mysql
innodb_data_file_path           = ibdata1:128M:autoextend
innodb_temp_data_file_path      = ibtmp1:128M:autoextend
innodb_flush_method             = O_DIRECT
innodb_redo_log_capacity        = 512M
innodb_log_buffer_size          = 16M
innodb_write_io_threads         = 8
innodb_read_io_threads          = 8
innodb_autoinc_lock_mode        = 2

[mysqldump]
max_allowed_packet              = 256M
quote_names
quick

2. 文字コードを設定

 「MySQL 5.7」では、デフォルトの文字コード設定で、「latin1」のものがあったので、文字コード設定を行っていたのですが。  文字コードを設定しようと、デフォルトの状態を確認すると。

mysql> show variables like "chara%";
+--------------------------+----------------------------------+
| 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     | utf8mb3                          |
| character_sets_dir       | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)

mysql>
 となっておる。  「utf8mb4」「utf8mb3」ってなんだろう?と思いつつ、以前と同じ設定を「/usr/local/etc/mysql/my.cnf」へ施して、再起動して確認しても、変更前と状況変わらず。  どうも、デフォルトの状態で、「utf8」の状態になっておるのかと思われます。  まだ、実際に、文字をいれて確認しているわけではありませんが、まぁ、デフォルトの状態にしておきます。

3. プロンプトを変更する

 プロンプトが

ユーザ名@localhost [(none)]>
 となってて、わたしは、装飾なしの方がいいのです。

prompt                          = \u@\h [\d]>\_
 の行を削除するなり、コメントアウトするなりすれば

mysql>
 に戻ります。

4. 設定のチェック

 以降、編集したら、それを反映させるには

service mysql-server restart
 で「mysql-server」を再起動するのですが。  編集を失敗していると停止だけして、起動できないことになります。  「MySQL 5.7」では、「apache」の「configtest」みたいなことを

/usr/local/libexec/mysqld --verbose --help > /dev/null
 というコマンドで実現できていたのですが、どうも、「MySQL 8.0」では、効果ないようです。  現在(2022年12月19日)何か、方法がないかと調査中です。
earthcar(アースカー)
損保との違い
健康サポート特集