Có hỗ trợ khá nhiều thao tác chuyển từ Mnesia sang SQL, lệnh đặc biệt ejabberdctl export2sql
(trong các phiên bản cũ hơn, nó thường được gọi là xuất2odbc
). Một số thiết lập có thể cần điều đó vì Mnesia bị giới hạn ở 2GiB và blah blah blah.
Trong trường hợp của tôi, thực sự không cần phải có cơ sở dữ liệu bên ngoài. Có khoảng 10-15 người dùng đang hoạt động và không quá 30 trong tổng số người dùng và kích thước xuất từ cơ sở dữ liệu SQL là khoảng 200 kB.
Ai đó trong quá khứ đã làm điều đó, xuất cơ sở dữ liệu sang SQL (cụ thể là MySQL). Làm cách nào tôi có thể hoàn nguyên thay đổi đó?
Có thể export_piefxis
giúp tôi bằng cách nào đó? Những gì nó làm?
cập nhật 1. Sau một số khám phá, tôi thấy rằng chỉ có hai mô-đun có một số dữ liệu trong cơ sở dữ liệu SQL: mod_roster
và mod_vcard
. Vì vậy, chỉ những người cần phải được chuyển đổi. Có cách nào để chuyển đổi dữ liệu của họ ra bên ngoài và tải vào ejabberd không? Ý tôi là, có một ejabberdctl dump_table
, nhưng lại không có lệnh đảo ngược.
Cũng thế, export_piefxis
dường như không giúp được gì. Nó chỉ xuất nội dung bằng không, trong khi có dữ liệu trong cơ sở dữ liệu và nó được tìm nạp khi tôi kết nối với ví dụ:. khách hàng mới được khởi tạo.
Cập nhật 2. Phần mềm: Bộ chứa Debian 11.2 LXC chạy trên máy chủ Proxmox VE 6.4-1. Ejabberd 21.01-2 được cài đặt với đúng cách
từ kho lưu trữ Debian tiêu chuẩn.
Cơ sở dữ liệu đã được di chuyển từ Ejabberd cũ vào khoảng phiên bản 2.1, đang chạy trên Gentoo và được cập nhật lần cuối vào năm 2015.Tôi không có cái máy đó theo ý mình nữa. Di chuyển cơ sở dữ liệu Mnesia đã được thực hiện như sau:
# trên máy cũ
sao lưu ejabberdctl /tmp/[email protected]
ejabberdctl mnesia_change_nodename ejabberd@localhost ejabberd@jabber2 \
/tmp/[email protected] /tmp/[email protected]
# trên máy mới (bắt đầu với cơ sở dữ liệu trống)
ejabberdctl install_fallback /tmp/[email protected]
dừng ejabberdctl
bắt đầu ejabberdctl
Cấu hình trên máy mới chỉ tham chiếu cùng một cơ sở dữ liệu MySQL cho mod_roster
và mod_vcard
.
ejabberd.yml
:
loglevel: thông tin
log_rotate_count: 0
máy chủ:
- "ví dụ.org"
máy chủ_config:
"rterm.ru":
sql_type: mysql
sql_server: "máy chủ db"
sql_database: "ejabberd"
sql_username: "ejabberd"
sql_password: "mật khẩu"
auth_method: [bên ngoài]
tệp chứng chỉ:
- "/etc/ejabberd/ejabberd.pem"
tốt:
tự động: sai
xác định_macro:
'TLS_CIPHERS': "CAO:!aNULL:!eNULL:!3DES:@STRENGTH"
'TLS_OPTIONS':
- "no_sslv3"
- "no_tlsv1"
- "no_tlsv1_1"
- "cipher_server_preference"
- "không_nén"
c2s_ciphers: 'TLS_CIPHERS'
s2s_ciphers: 'TLS_CIPHERS'
c2s_protocol_options: 'TLS_OPTIONS'
s2s_protocol_options: 'TLS_OPTIONS'
nghe:
-
cổng: 5222
ip: "::"
mô-đun: ejabberd_c2s
max_stanza_size: 262144
trình tạo hình: c2s_shaper
truy cập: c2s
starttls_required: đúng
giao thức_options: 'TLS_OPTIONS'
-
cổng: 5223
ip: "::"
mô-đun: ejabberd_c2s
max_stanza_size: 262144
trình tạo hình: c2s_shaper
truy cập: c2s
tl: đúng
giao thức_options: 'TLS_OPTIONS'
-
cổng: 5269
ip: "::"
mô-đun: ejabberd_s2s_in
max_stanza_size: 524288
-
cổng: 5443
ip: "::"
mô-đun: ejabberd_http
tl: đúng
giao thức_options: 'TLS_OPTIONS'
request_handlers:
/ quản trị viên: ejabberd_web_admin
/api: mod_http_api
/bosh: mod_bosh
/tải lên: mod_http_upload
/ws: ejabberd_http_ws
-
cổng: 5280
ip: "::"
mô-đun: ejabberd_http
tls: sai
request_handlers:
# Điều này chạy phía sau proxy HTTP ngược với Let's Encrypt, là vùng chứa hàng xóm trên cùng một máy chủ, vì vậy điều này an toàn
/ quản trị viên: ejabberd_web_admin
/bosh: mod_bosh
/tải lên: mod_http_upload
-
cảng: 1883
ip: "::"
mô-đun: mod_mqtt
tồn đọng: 1000
auth_method: [bên ngoài]
extauth_program: "/etc/ejabberd/auth_mysql.py"
extauth_pool_size: 5
vô hiệu hóa_sasl_mechanism:
- "X-OAUTH2"
s2s_use_starttls: bắt buộc
acl:
quản trị viên:
người dùng:
- "[email protected]"
địa phương:
user_regexp: ""
lặp lại:
IP:
- 127.0.0.0/8
- ::1/128
truy cập_rules:
địa phương:
cho phép: cục bộ
c2s:
từ chối: bị chặn
chấp nhận tất cả
thông báo:
cho phép: quản trị viên
cấu hình:
cho phép: quản trị viên
muc_create:
cho phép: cục bộ
pubsub_createnode:
cho phép: cục bộ
đáng tin cậy_mạng:
cho phép: loopback
api_permissions:
"lệnh điều khiển":
từ:
- ejabberd_ctl
ai: tất cả
Gì: "*"
"quyền truy cập quản trị viên":
Ai:
quyền:
cho phép:
- acl: lặp lại
- acl: quản trị viên
thề:
phạm vi: "ejabberd: quản trị viên"
quyền:
cho phép:
- acl: lặp lại
- acl: quản trị viên
Gì:
- "*"
- "!dừng lại"
- "!bắt đầu"
"lệnh công cộng":
Ai:
IP: 127.0.0.1/8
Gì:
- trạng thái
- số_người_dùng_được_kết_nối
máy ép:
thông thường:
tỷ lệ: 3000
kích thước bùng nổ: 20000
nhanh: 200000
shaper_rules:
max_user_sessions: 10
max_user_offline_messages:
5000: quản trị viên
100: tất cả
c2s_shaper:
không có: quản trị viên
bình thường: tất cả
s2s_shaper: nhanh
mô-đun:
mod_adhoc: {}
mod_admin_extra: {}
mod_announce:
truy cập: thông báo
mod_avatar: {}
mod_blocking: {}
mod_bosh: {}
mod_caps: {}
mod_carboncopy: {}
mod_client_state: {}
mod_configure: {}
mod_disco: {}
mod_fail2ban: {}
mod_http_api: {}
mod_http_upload:
put_url: https://@HOST@:5443/upload
custom_headers:
"Kiểm soát truy cập-Cho phép-Xuất xứ": "https://@HOST@"
"Phương thức kiểm soát truy cập-cho phép": "NHẬN,HEAD,PUT,TÙY CHỌN"
"Kiểm soát truy cập-Cho phép-Tiêu đề": "Loại nội dung"
mod_last: {}
mod_mqtt: {}
mod_muc:
quyền:
- cho phép
truy cập_admin:
- cho phép: quản trị viên
access_create: muc_create
access_persistent: muc_create
truy cập_mâm:
- cho phép
default_room_options:
mẹ: đúng
mod_muc_admin: {}
mod_offline:
access_max_user_messages: max_user_offline_messages
mod_ping: {}
mod_pres_counter:
đếm: 5
khoảng thời gian: 60
mod_privacy: {}
mod_private: {}
mod_proxy65:
truy cập: cục bộ
max_connections: 5
mod_pubsub:
access_createnode: pubsub_createnode
bổ sung:
- bằng phẳng
- pê-đê
force_node_config:
"eu.siacs.conversations.axolotl.*":
access_model: mở
lưu trữ: đánh dấu:
access_model: danh sách trắng
mod_push: {}
mod_push_keepalive: {}
mod_roster:
db_type: sql # Đây là thứ tôi muốn loại bỏ
phiên bản: đúng
mod_s2s_dialback: {}
mod_shared_roster: {}
mod_sic: {}
mod_stream_mgmt:
resend_on_timeout: if_offline
mod_stun_disco: {}
mod_vcard:
db_type: sql # Và cái này
tìm kiếm: sai
mod_vcard_xupdate: {}
mod_version: {}