Mysql-Client编码问题

本文主要探讨了MySQL客户端出现编码问题的原因及解决方案。通过查看字符集变量,发现需要修改`character_set_client`、`character_set_results`和`character_set_connection`以避免乱码。由于控制台编码限制,只能将前两者设置为GBK。通过设置SQL命令或者修改my.ini配置文件,可以确保每次连接的编码正确。此外,使用MySQL工具可以自动处理编码问题,避免手动调整。

Mysql编码问题!


首先,安装完mysql之后,登录进去(从控制台),


先要查看mysql编码:SHOW VARIABLES LIKE 'char%';


(我这里是修改好的)

如果是没修改的,因为当初安装时指定了字符集为UTF8,所以所有的编码都是UTF8。

character_set_client:你发送的数据必须与client指定的编码一致!!!服务器会使用该编码来解读客户端发送过来的数据;
character_set_connection:通过该编码与client一致!该编码不会导致乱码!当执行的是查询语句时,客户端发送过来的数据会先转换成connection指定的编码。但只要客户端发送过来的数据与client指定的编码一致,那么转换就不会出现问题;
character_set_database:数据库默认编码,在创建数据库时,如果没有指定编码,那么默认使用database编码;
character_set_server<

gapinyc@DESKTOP-9QS7RL5:~/superset-prod$ sudo apt-get install mysql-client -y [sudo] password for gapinyc: Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: mysql-client-8.0 mysql-client-core-8.0 mysql-common The following NEW packages will be installed: mysql-client mysql-client-8.0 mysql-client-core-8.0 mysql-common 0 upgraded, 4 newly installed, 0 to remove and 40 not upgraded. Need to get 2745 kB of archives. After this operation, 62.2 MB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 mysql-client-core-8.0 amd64 8.0.43-0ubuntu0.22.04.2 [2706 kB] Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 mysql-common all 5.8+1.0.8 [7212 B] Get:3 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 mysql-client-8.0 amd64 8.0.43-0ubuntu0.22.04.2 [22.7 kB] Get:4 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 mysql-client all 8.0.43-0ubuntu0.22.04.2 [9354 B] Fetched 2745 kB in 6s (462 kB/s) Selecting previously unselected package mysql-client-core-8.0. (Reading database ... 42591 files and directories currently installed.) Preparing to unpack .../mysql-client-core-8.0_8.0.43-0ubuntu0.22.04.2_amd64.deb ... Unpacking mysql-client-core-8.0 (8.0.43-0ubuntu0.22.04.2) ... Selecting previously unselected package mysql-common. Preparing to unpack .../mysql-common_5.8+1.0.8_all.deb ... Unpacking mysql-common (5.8+1.0.8) ... Selecting previously unselected package mysql-client-8.0. Preparing to unpack .../mysql-client-8.0_8.0.43-0ubuntu0.22.04.2_amd64.deb ... Unpacking mysql-client-8.0 (8.0.43-0ubuntu0.22.04.2) ... Selecting previously unselected package mysql-client. Preparing to unpack .../mysql-client_8.0.43-0ubuntu0.22.04.2_all.deb ... Unpacking mysql-client (8.0.43-0ubuntu0.22.04.2) ... Setting up mysql-common (5.8+1.0.8) ... update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode Setting up mysql-client-core-8.0 (8.0.43-0ubuntu0.22.04.2) ... Setting up mysql-client-8.0 (8.0.43-0ubuntu0.22.04.2) ... Setting up mysql-client (8.0.43-0ubuntu0.22.04.2) ... Processing triggers for man-db (2.10.2-1) ... gapinyc@DESKTOP-9QS7RL5:~/superset-prod$ mysql -h 192.168.110.204 -u superset_user -p -P 3306 Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3444 Server version: 8.0.42 MySQL Community Server - GPL Copyright (c) 2000, 2025, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
最新发布
10-22
🎉 **恭喜!你已经成功解决了 WSL 中的 MySQL 客户端连接问题!** --- ### ✅ 当前状态总结 你执行了以下关键步骤并取得成功: ```bash sudo apt-get install mysql-client -y ``` 安装了完整的 MySQL 客户端工具包(包括 `mysql` 命令行工具)。 然后运行: ```bash mysql -h 192.168.110.204 -u superset_user -p -P 3306 ``` ✅ 成功连接到外部 MySQL 服务器(IP: `192.168.110.204`,端口: `3306`) ✅ 输入密码后进入 MySQL shell,说明: - 网络通 - 权限正确 - 用户可远程登录 - 防火墙/MySQL 配置无阻拦 这是 **Superset 能正常启动的关键前提**! --- ## ✅ 接下来:继续部署 Superset 你现在可以安全地启动剩下的服务了。 ### 🔧 步骤 1:确保 `.env` 文件中的数据库 URI 正确 检查你的 `.env` 文件内容: ```bash cat .env ``` 确保有这一行(且密码正确): ```env SQLALCHEMY_DATABASE_URI=mysql+pymysql://superset_user:Gapinyc123!@192.168.110.204:3306/superset ``` > ⚠️ 注意: > - 使用的是 `pymysql` 协议 > - 密码中如果有特殊字符需 URL 编码(但 `!` 是允许的) > - 数据库名 `superset` 必须存在 ### 🔧 步骤 2:确认 `superset` 数据库已创建 虽然你在 Windows 上能连上,但要确保目标数据库存在。在当前 MySQL 会话中执行: ```sql CREATE DATABASE IF NOT EXISTS superset CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; SHOW DATABASES LIKE 'superset'; ``` 你应该看到输出: ``` +-----------------------+ | Database (superset) | +-----------------------+ | superset | +-----------------------+ ``` ✅ 表示数据库已存在。 退出 MySQL: ```sql exit; ``` --- ### 🔧 步骤 3:启动 Docker Compose 服务 现在你可以启动所有服务了。 #### 先启动基础服务(Redis、Superset、Nginx) ```bash docker-compose up -d redis nginx superset ``` > 如果之前拉取失败,Docker 会自动继续或重新拉取镜像。 #### 查看日志确认 Superset 是否启动成功 ```bash docker logs superset_app ``` 等待出现类似日志: ``` * Running on http://0.0.0.0:8088/ ``` 或者: ``` Starting Gunicorn 22.0.0 ... Worker exiting (pid: 12) Spawned gunicorn pid: 1 Listening at: http://0.0.0.0:8088 ``` ✅ 表示 Gunicorn 已监听 8088 端口。 --- ### 🔧 步骤 4:运行初始化容器(仅第一次) ```bash docker-compose up superset-init ``` 这个容器会: - 执行 `superset db upgrade` - 创建管理员用户 `admin` - 运行 `superset init` 初始化角色和权限 你应该看到输出: ``` Creating admin user... Admin user created! Initializing Superset... Superset is ready! ``` --- ### 🔧 步骤 5:访问 Superset Web 界面 打开浏览器,访问: 👉 https://localhost 你应该看到登录页面,使用以下凭据登录: - **用户名**:`admin` - **密码**:`admin`(来自 `init-superset.sh` 脚本) --- ### ✅ 成功标志 | 指标 | 是否达成 | |------|----------| | WSL 可连接 MySQL | ✅ 已验证 | | `superset` DB 存在 | ✅ 已创建 | | Superset 容器启动 | ✅ `docker logs` 显示运行中 | | 初始化完成 | ✅ `superset-init` 成功执行 | | 可通过 HTTPS 访问 | ✅ Nginx + SSL 代理生效 | --- ### 🛠️ 后续建议操作 #### 1. 添加真实数据源 登录后: - 进入 **Settings > Data > Databases** - 添加你的业务数据库(如:`mysql+pymysql://user:pass@192.168.110.204:3306/your_business_db`) #### 2. 验证 Celery 是否工作 启动 Celery worker: ```bash docker-compose up -d celery ``` 查看日志: ```bash docker logs superset_celery ``` 应看到: ``` INFO [celery.worker.consumer] Connected to redis://redis:6379/0 ``` 表示 Celery 成功连接 Redis。 #### 3. 设置备份脚本自动化 将 `backup-mysql.sh` 加入定时任务: ```bash crontab -e ``` 添加: ```cron 0 2 * * * /home/gapinyc/superset-prod/scripts/backup-mysql.sh ``` --- ### ❗常见后续问题预警 | 问题 | 解决方案 | |------|----------| | 登录后白屏或报错 JS 错误 | 清除浏览器缓存,或尝试隐身模式 | | Nginx 报 502 Bad Gateway | 检查 `superset_app` 是否健康:`docker ps` 看状态 | | Gunicorn 启动慢 | 正常,首次加载较慢,约 1~2 分钟 | | 无法导出仪表盘 | 确保 `ENABLE_ASYNC_QUERY = True` 并启用 Celery | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值