常見問題
1. 初始化脚本无效,手动生成
# 连接到 Docker 中运行的 MySQL 容器
sudo docker exec -it mysql mysql -u root -p
Enter password: 这个要看docker-compose.yml 当初设置的root password
# 创建DATABASE
mysql> CREATE DATABASE IF NOT EXISTS redmine_db;
Query OK, 1 row affected (0.01 sec)
# 创建新的用户
mysql> CREATE USER 'redmine_user'@'%' IDENTIFIED BY 'redmine_password';
Query OK, 0 rows affected (0.02 sec)
# 授予权限
mysql> GRANT ALL PRIVILEGES ON redmine_db.* TO 'redmine_user'@'%';
Query OK, 0 rows affected (0.02 sec)
# 查看当前有哪些DATABASE
mysql> show DATABASES;
# 重新加载权限
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
2. 无法创建新专案
先到 /网站管理/載入預設組態
3. Redmine顯示無法載入預設組態
無法載入預設組態: Mysql2::Error: Incorrect string value: '\xE7\xAE\xA1\xE7\x90\x86...' for column 'name' at row 1 無法載入預設組態: Mysql2::Error: Incorrect string value: '\xE4\xBD\x8E' for column 'name' at row 1
这个错误通常与 MySQL 数据库的字符集或排序规则不兼容有关,特别是在存储包含非 ASCII 字符的数据时。建议确保 MySQL 和 Redmine 数据库的字符集设置为支持 Unicode 的 utf8mb4
USE redmine_db;
-- 确认数据库中的表和列的字符集
SELECT table_name, table_collation
FROM information_schema.tables
WHERE table_schema = 'redmine_db';
SELECT column_name, character_set_name, collation_name
FROM information_schema.columns
WHERE table_schema = 'redmine_db' AND table_name = '';
-- 确保 redmine_db 数据库级别的字符集设置为 utf8mb4 和排序规则为 utf8mb4_unicode_ci
ALTER DATABASE redmine_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 查询数据库中的所有表并生成 ALTER 语句
-- 这会生成一系列 ALTER TABLE 语句,将所有表设置为 utf8mb4。执行这些语句后,再次尝试加载默认配置。
SELECT CONCAT('ALTER TABLE `', table_name, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;')
FROM information_schema.tables
WHERE table_schema = 'redmine_db';