Navicat(App Store版)でSnowflakeサーバーへの接続を確立しようとすると、「Snowflake ODBC Driver is required (Snowflake ODBCドライバーが必要です)」というエラーメッセージが表示されます。それは何ですか?どうすればいいですか?
更新日時:
対応OS:macOS
対応Navicat製品:Navicat for Snowflake、Navicat Premium(App Store版)
Snowflakeデータベースに接続するためには、Snowflake ODBCドライバーが必要です。
インストール手順
- macOSプラットフォームのODBCドライバーをダウンロードしてインストールします(https://developers.snowflake.com/odbc/)
- Navicatを再起動します
- 接続をテストします
トラブルシューティング:"Snowflake ODBC Driver is Required"
Navicatで'Snowflake ODBC Driver is required'というメッセージが引き続き表示される場合は、以下の追加手順に従って、Navicat App Store版からアクセスできる場所にSnowflake ODBCドライバーをインストールしてください。
- スクリプトをコピーする:
以下のスクリプトをコピーし、macOS デバイスにconfigure_snowflake_odbc.shスクリプトファイルとして保存します。#!/bin/bash
# Step 2: Verify the Driver Installation
echo "Step 2: Verifying Snowflake ODBC driver installation..."
# Check if the driver files exist in /opt/snowflake
if [ ! -d "/opt/snowflake" ]; then
echo "Error: Snowflake ODBC driver not found in /opt/snowflake."
exit 1
fi
echo "Snowflake ODBC driver found in /opt/snowflake."
# Check if the driver entry exists in ~/Library/ODBC/odbcinst.ini or /Library/ODBC/odbcinst.ini
USER_ODBCINST_INI="$HOME/Library/ODBC/odbcinst.ini"
SYSTEM_ODBCINST_INI="/Library/ODBC/odbcinst.ini"
if [ -f "$USER_ODBCINST_INI" ] && grep -q "\[Snowflake\]" "$USER_ODBCINST_INI"; then
echo "Snowflake driver entry found in $USER_ODBCINST_INI."
DRIVER_ENTRY=$(grep -A 1 "\[Snowflake\]" "$USER_ODBCINST_INI")
elif [ -f "$SYSTEM_ODBCINST_INI" ] && grep -q "\[Snowflake\]" "$SYSTEM_ODBCINST_INI"; then
echo "Snowflake driver entry found in $SYSTEM_ODBCINST_INI."
DRIVER_ENTRY=$(grep -A 1 "\[Snowflake\]" "$SYSTEM_ODBCINST_INI")
else
echo "Error: Snowflake driver entry not found in $USER_ODBCINST_INI or $SYSTEM_ODBCINST_INI."
exit 1
fi
# Step 3: Create or Update /Library/ODBC/odbcinst.ini
echo "Step 3: Creating or updating /Library/ODBC/odbcinst.ini..."
# Create /Library/ODBC directory if it doesn't exist
sudo mkdir -p /Library/ODBC
# Create /Library/ODBC/odbcinst.ini if it doesn't exist
if [ ! -f "$SYSTEM_ODBCINST_INI" ]; then
sudo touch "$SYSTEM_ODBCINST_INI"
echo "Created $SYSTEM_ODBCINST_INI."
fi
# Ensure the [ODBC Drivers] section exists
if ! grep -q "\[ODBC Drivers\]" "$SYSTEM_ODBCINST_INI"; then
echo "[ODBC Drivers]" | sudo tee -a "$SYSTEM_ODBCINST_INI" > /dev/null
echo "Snowflake = Installed" | sudo tee -a "$SYSTEM_ODBCINST_INI" > /dev/null
echo "Added [ODBC Drivers] section to $SYSTEM_ODBCINST_INI."
fi
# Add the Snowflake entry under [ODBC Drivers] if it doesn't exist
if ! grep -q "Snowflake[[:space:]]*=" "$SYSTEM_ODBCINST_INI"; then
sudo sed -i '' '/\[ODBC Drivers\]/a\
Snowflake = Installed
' "$SYSTEM_ODBCINST_INI"
echo "Added Snowflake entry under [ODBC Drivers] in $SYSTEM_ODBCINST_INI."
else
echo "Snowflake entry already exists under [ODBC Drivers] in $SYSTEM_ODBCINST_INI."
fi
# Add the Snowflake driver entry to /Library/ODBC/odbcinst.ini
if ! grep -q "\[Snowflake\]" "$SYSTEM_ODBCINST_INI"; then
# Append two newlines before the [Snowflake] section
echo "" | sudo tee -a "$SYSTEM_ODBCINST_INI" > /dev/null
echo "" | sudo tee -a "$SYSTEM_ODBCINST_INI" > /dev/null
# Append the Snowflake driver entry
echo "$DRIVER_ENTRY" | sudo tee -a "$SYSTEM_ODBCINST_INI" > /dev/null
echo "Added Snowflake driver entry to $SYSTEM_ODBCINST_INI."
else
echo "Snowflake driver entry already exists in $SYSTEM_ODBCINST_INI."
fi
# Step 4: Copy the Driver to a Sandbox-Accessible Location
echo "Step 4: Copying Snowflake driver to /Library/ODBC/snowflake..."
# Create /Library/ODBC/snowflake directory if it doesn't exist
sudo mkdir -p /Library/ODBC/snowflake
# Copy the driver files to /Library/ODBC/snowflake
sudo cp -r /opt/snowflake/* /Library/ODBC/snowflake/
echo "Copied Snowflake driver files to /Library/ODBC/snowflake."
# Step 5: Update the ODBC Configuration
echo "Step 5: Updating ODBC configuration..."
# Update the driver path in /Library/ODBC/odbcinst.ini
sudo sed -i '' 's|Driver[[:space:]]*=[[:space:]]*/opt/snowflake/snowflakeodbc/lib/universal/libSnowflake.dylib|Driver = /Library/ODBC/snowflake/snowflakeodbc/lib/universal/libSnowflake.dylib|g' "$SYSTEM_ODBCINST_INI"
echo "Updated driver path in $SYSTEM_ODBCINST_INI."
# Find and update paths in simba.snowflake.ini
echo "Updating paths in simba.snowflake.ini..."
# Search for simba.snowflake.ini in all directories under /Library/ODBC/snowflake/
find /Library/ODBC/snowflake -type f -name "simba.snowflake.ini" | while read -r file; do
echo "Found simba.snowflake.ini at: $file"
# Update paths starting with /opt/snowflake to /Library/ODBC/snowflake
sudo sed -i '' 's|/opt/snowflake|/Library/ODBC/snowflake|g' "$file"
echo "Updated paths in $file."
done
echo "Configuration completed successfully!" - ターミナルを開く:
macOSデバイスでターミナルアプリケーションを開きます。 - スクリプトを実行可能にする:
configure_snowflake_odbc.shファイルを保存したディレクトリに移動します。
以下のコマンドを実行して、スクリプトを実行可能にします:chmod +x configure_snowflake_odbc.sh
- sudoでスクリプトを実行する:
以下のコマンドを実行して、管理者権限でスクリプトを実行します:sudo ./configure_snowflake_odbc.sh
- 接続をテストする
さらに質問がございましたら、