塩分で血圧が上がってしまう理由は一般的に、血液中の塩分濃度を下げるため血流が増すからだと説明されています。
しかし、カナダの名門マギル大学(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クライアント」を探すところからになりますが...
毎度モヤモヤ感が半端ない…
今回はこのへんで。