
塩分で血圧が上がってしまう理由は一般的に、血液中の塩分濃度を下げるため血流が増すからだと説明されています。
しかし、カナダの名門マギル大学(McGill University)の研究チームは、「塩分が引き起こす高血圧は、腎臓や血管だけでなく脳の炎症も関係しているのではないか」と仮説を立て、そのメカニズムを明らかにしました。
⇧ なるほど、「アルコール」で酔っ払ってる時に、塩分が欲しくなるのも、「脳」の「機能低下」が関係してるんですかね?
「ダイエット」とかで「味の濃い」ものを避けるというのも、「味の濃い」ものほど「美味しく」感じられる傾向が多い気がしますし、「美味しい」と感じるのも「脳」が「神経」を介して「電気信号」を送ってるからということですかね?
「脳疲労」が酷い状態だと、思考力が低下して普段は抑制している「ジャンクフード」を摂取しやすくなるという話もありますしな...
「濃い味付け」を「美味しい」と感じる科学的なメカニズムが分からないですが、
⇧ 上記サイト様の統計によると、「塩分摂取量」の上位は、「アジア圏」が多い。
と言うか、有志に頼るのではなく、国が統計を公開して欲しいところだが...
まぁ、「世界保健機関(WHO:World Health Organization)」の「推奨値」を大幅にオーバーしているのは、「日本」だけじゃないのだが、最早、「先進国」で「推奨値」を満たしている国は無い気がするんだが...
逆に、「世界保健機関(WHO:World Health Organization)が、どういった「食事」を想定しているのか教えて欲しい気はする...
MySQLはサイレントインストール的な仕組みが用意されていない
とりあえず、ネットの情報を検索してみたが、「サイレントインストール」的な仕組みは用意されていないらしい。
なので、「サイレントインストール」っぽいことを実現するには、
⇧ 上記サイト様にありますように、スクリプトを用意してあげる必要があるっぽい。
ちなみに、
⇧ 上記サイト様にありますように、「パスワード」オプションでスペースが不要という罠があるので注意。
そもそも、
⇧ パスワードの直接指定が非推奨らしい。
VagrantとVirtualboxでMySQLにDNS経由で接続できる環境を構築してみる
で、昨今の「クラウドサービスプロバイダー」の「サービス」を利用した環境において、「マネージドサービス」の「データベース」を利用することが多い気がする。
例えば、「Microsoft Azure」だと、
⇧ 上記サイト様にありますように、デフォルトで「Azure」の「リソース」に対して「名前解決(DNS:Domain Name System)」を行っている。
とりあえず、
⇧ 上記サイト様を参考に構築してみる。
環境としては、
- ホスト側
- Windows 10 Home
- Vagrant
- VirtualBox
- VS Code(Visual Studio Code)
- ゲスト側
といった感じですかね。
「ゲスト」側は、
で、構築することになるのだが、
| No | 役割 | ホスト名 | NIC | IPアドレス |
|---|---|---|---|---|
| 1 | MySQL クライアント | mysql-client | NAT | ※1 |
| 内部ネットワーク | 10.10.10.101 | |||
| ホストオンリーアダプター | 192.168.56.101 | |||
| 2 | DNS サーバー | dns-router | NAT | ※1 |
| 内部ネットワーク | 10.10.10.10 | |||
| 3 | MySQL サーバー | mysql-server | NAT | ※1 |
| 内部ネットワーク | 10.10.10.201 |
※1 Vagrantがデフォルトで作成。vagrant ssh の時に利用されると思われる。
⇧ のような感じ。
■今回のvagrant upの実行に必要なファイル群
D:\work-soft\vagrant\mysql
│ Vagrantfile
│
└─vms
├─dns-router
│ └─scripts
│ setup.sh
│
└─mysql-server
└─scripts
setup.sh
⇧
■D:\work-soft\vagrant\mysql\vms\mysql-server\scripts\setup.sh
#!/bin/bash
# MySQLリポジトリのセットアップ
# https://dev.mysql.com/doc/refman/8.4/en/linux-installation-yum-repo.html
#sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
curl -OL https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm
# GPGキーのインポート
#sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql
rpm -ivh mysql84-community-release-el9-1.noarch.rpm
# MySQL 8.4(LTS版)をインストール
echo "######## Install mysql mysql-server ########"
#sudo dnf install -y mysql-server
sudo dnf install -y mysql mysql-server
# firewalldをインストール
echo "######## Install firewalld ########"
sudo dnf install -y firewalld
# MySQLを開始して自動起動を有効化
echo "######## MySQL service start ########"
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl stop mysqld
# MySQL設定: リモート接続を許可する設定
echo "######## modify MySQL conf ########"
#sudo sed -i 's/^bind-address\s*=.*$/bind-address = 0.0.0.0/' /etc/my.cnf
sudo sed -i '/^bind-address/d' /etc/my.cnf
sudo sed -i '/^\[mysqld\]/a bind-address = 0.0.0.0' /etc/my.cnf
sudo systemctl restart mysqld
sudo systemctl status mysqld
# 初期パスワードを抽出
# https://dev.mysql.com/doc/refman/8.4/en/linux-installation-rpm.html
MYSQL_INITIAL_ROOT_PASSWORD=$(sudo cat /var/log/mysqld.log | grep 'temporary password' | awk '{print $13}')
# MUST total password length is at least 8 characters
MYSQL_MODIFIED_ROOT_PASSWORD="Rootpassword#1"
MYSQL_CLIENT_USER_PASSWORD="Mypassword#1"
# MySQLのユーザーrootのパスワードをリセット
echo "######## Modify user root paswword for MySQL ########"
mysql -u root -p"${MYSQL_INITIAL_ROOT_PASSWORD}" --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$MYSQL_MODIFIED_ROOT_PASSWORD';"
# パスワードポリシー無効化(強制的なパスワードポリシーを無効にする)
echo "######## Disabling password policy for MySQL ########"
# 変更前のパスワードポリシー
BEFORE_PASSWORD_POLICY=$(mysql -u root -p"${MYSQL_MODIFIED_ROOT_PASSWORD}" --connect-expired-password -e "show variables like 'validate_password%';")
# パスワードポリシーの変更
mysql -u root -p"${MYSQL_MODIFIED_ROOT_PASSWORD}" --connect-expired-password -e "SET GLOBAL validate_password.policy = LOW;"
mysql -u root -p"${MYSQL_MODIFIED_ROOT_PASSWORD}" --connect-expired-password -e "SET GLOBAL validate_password.length = 6;"
# 変更後のパスワードポリシー
AFTER_PASSWORD_POLICY=$(mysql -u root -p"${MYSQL_MODIFIED_ROOT_PASSWORD}" --connect-expired-password -e "show variables like 'validate_password%';")
# 変更前と変更後の差分
diff <( echo "${BEFORE_PASSWORD_POLICY}" ) <( echo "${AFTER_PASSWORD_POLICY}" )
# MySQLユーザーを作成(外部接続許可)
# https://dev.mysql.com/doc/refman/8.4/en/creating-accounts.html
echo "######## Create user for MySQL ########"
mysql -u root -p"${MYSQL_MODIFIED_ROOT_PASSWORD}" --connect-expired-password -e "CREATE USER 'client_user'@'%' IDENTIFIED BY '$MYSQL_CLIENT_USER_PASSWORD';"
mysql -u root -p"${MYSQL_MODIFIED_ROOT_PASSWORD}" --connect-expired-password -e "GRANT ALL PRIVILEGES ON *.* TO 'client_user'@'%' WITH GRANT OPTION;"
mysql -u root -p"${MYSQL_MODIFIED_ROOT_PASSWORD}" --connect-expired-password -e "FLUSH PRIVILEGES;"
# ファイアウォール設定: MySQLポート開放
echo "######## Firewall service start ########"
sudo systemctl start firewalld
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
■D:\work-soft\vagrant\mysql\vms\dns-router\scripts\setup.sh
#!/bin/bash
sudo dnf install -y firewalld bind bind-utils policycoreutils-python-utils
sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --zone=public --add-service=dns
sudo firewall-cmd --reload
sudo systemctl start named
sudo systemctl enable named
sudo cp -p /etc/named.conf /etc/named.conf.bk
sudo sed -i -r 's/listen-on port 53 \{ 127.0.0.1; \};/listen-on port 53 \{ any; \};/' /etc/named.conf
sudo sed -i -r 's/listen-on-v6 port 53 \{ ::1; \};/#&/g' /etc/named.conf
sudo sed -i -r 's@allow-query\s*\{ localhost; \};@allow-query \{ any; \};@' /etc/named.conf
grep -q 'zone "mysql.local"' /etc/named.conf || cat <<EOF | sudo tee -a /etc/named.conf
zone "mysql.local" IN {
type master;
file "/etc/named/zones/mysql.local.zone";
allow-update { none; };
};
EOF
sudo mkdir -p /etc/named/zones
MYSQL_LOCAL_ZONE=`cat <<"EOF"
$TTL 86400
@ IN SOA DNS-server.mysql.local. root.mysql.local. (
2025082901 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
86400 ; Minimum TTL
)
@ IN NS DNS-server.mysql.local.
DNS-server.mysql.local. IN A 10.10.10.10
mysql.local. IN A 10.10.10.201
EOF`
echo "${MYSQL_LOCAL_ZONE}" | sudo tee /etc/named/zones/mysql.local.zone
sudo chown root:named /etc/named/zones/mysql.local.zone
sudo semanage fcontext -a -t named_zone_t "/etc/named/zones/mysql.local.zone"
sudo restorecon -v /etc/named/zones/mysql.local.zone
sudo named-checkzone mysql.local /etc/named/zones/mysql.local.zone
sudo systemctl restart named
sudo systemctl status named || exit 1
■D:\work-soft\vagrant\mysql\Vagrantfile
# https://portal.cloud.hashicorp.com/vagrant/discover/almalinux/9
IMAGE_NAME = "almalinux/9"
IMAGE_VESION = "9.6.20250522"
Vagrant.configure("2") do |config|
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 1
end
# クライアントVM設定
config.vm.define "mysql-client" do |client|
client.vm.box = IMAGE_NAME
client.vm.box_version = IMAGE_VESION
client.vm.hostname = "client"
# ホストオンリーアダプター
# ホスト側のMySQLクライアントで接続するため用
client.vm.network "private_network", ip: "192.168.56.101"
# 内部ネットワーク
client.vm.network "private_network", ip: "10.10.10.101", virtualbox__intnet: "internal_net"
# クライアントVMに関する設定など
client.vm.provision "shell", inline: <<-SHELL
# MySQLクライアントのインストール
sudo dnf install -y mysql
# DNSの接続に関するデバッグ用途
sudo dnf install -y bind-utils
SHELL
# クライアントVMのDNS設定を変更(ルーターVMのDNSを使用)
client.vm.provision "shell", inline: <<-SHELL
echo "nameserver 10.10.10.10" | sudo tee /etc/resolv.conf
SHELL
end
# MySQLサーバー用VM設定(MySQL LTS版インストール)
config.vm.define "mysql-server" do |server|
server.vm.provider "virtualbox" do |v|
v.memory = 2048
v.cpus = 2
end
server.vm.disk :disk, size: "200GB", primary: true
server.vm.box = IMAGE_NAME
server.vm.box_version = IMAGE_VESION
# MySQLサーバー用VMのホスト名を設定
server.vm.hostname = "mysql.local"
# 内部ネットワーク
server.vm.network "private_network", ip: "10.10.10.201", virtualbox__intnet: "internal_net"
#
server.vm.provision "file", source: "vms/mysql-server/scripts/setup.sh", destination: "/tmp/mysql-server/scripts/setup.sh"
# MySQLサーバー用VMにMySQL LTS版をインストール
server.vm.provision "shell", inline: <<-SHELL
chmod +x /tmp/mysql-server/scripts/setup.sh
/tmp/mysql-server/scripts/setup.sh
SHELL
end
# DNSサーバー用VM設定(異なるサブネット間のルーティング + BINDインストール)
config.vm.define "dns-router" do |dns|
dns.vm.box = IMAGE_NAME
dns.vm.box_version = IMAGE_VESION
dns.vm.hostname = "dns"
# 内部ネットワーク
dns.vm.network "private_network", ip: "10.10.10.10", virtualbox__intnet: "internal_net"
dns.vm.provision "file", source: "vms/dns-router/scripts/setup.sh", destination: "/tmp/dns-router/scripts/setup.sh"
# DNSサーバー用設定: IPフォワーディングとNAT
dns.vm.provision "shell", inline: <<-SHELL
chmod +x /tmp/dns-router/scripts/setup.sh
/tmp/dns-router/scripts/setup.sh
SHELL
end
end
⇧ で、「Vagrantfile」ファイルの配置されているディレクトリに移動し、「Vagrant」の機能で「仮想マシン」の構築と、設定などを実施。
■「Vagrantfile」ファイルの配置されているディレクトリに移動
cd /d D:\work-soft\vagrant\mysql
■vagrant up
vagrant up


そしたらば、新たに「コマンドプロンプト」を起ち上げて、「MySQLクライアント用」の「仮想マシン」にSSHログインし、「MySQLサーバー用」の「仮想マシン」で稼働している「MySQL」に対して「名前解決(DNS:Domain Name System)」で接続。

接続できました。
ホスト側の「VS Code(Visual Studio Code)」の「拡張機能」の「MySQLクライアント」とかで踏み台サーバー経由による「MySQL」への接続は、別の機会に。
「VS Code(Visual Studio Code)」の「拡張機能」の「MySQLクライアント」を探すところからになりますが...
毎度モヤモヤ感が半端ない…
今回はこのへんで。
