Phải liên tục khởi động lại mariadb


(Duc Nguyen) #1

Hiện tại mình đang sử dụng VPS centos7 và sử dụng sentora để chạy server.
Không hiểu vì lý do gì mà server liên tục bị lỗi mất kết nối với database. Cứ mỗi lúc đó lại phải chạy lại câu lệnh:
systemctl start mariadb.
Các thông số về vps đều bình thường về ram + hdd + cpu use.
Em có ý tưởng là sẽ viết 1 cái script cứ khoảng 2 tiếng lại chạy lại câu này cho chắc ăn. Đang tính học mà cũng lười quá :smile:
Một số hình ảnh minh họa:
RAM:

HDD:

CPU:


Mong các thánh chỉ giáo.


(Duc Nguyen) #2

Up top mong các thánh chỉ giáo ạ!


(Mã: 20OFF. https://profvps.com) #3

Bạn có thể show file my.conf lên cho mình xem được không?


(Duc Nguyen) #4

Đây ạ. Mong thánh chỉ giáo :frowning:
[mysqld]
secure-file-priv = /var/tmp
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

(Mã: 20OFF. https://profvps.com) #5

bạn xem ở trong folder này “/etc/my.cnf.d” còn file nào nữa không? nếu có thì gửi mình xem!!!


(Duc Nguyen) #6

Trong này có 3 file (tìm bằng câu lệnh ls):


(Mã: 20OFF. https://profvps.com) #7

Bạn chạy file my.cnf theo dưới nha:

[mysqld]
local-infile=0
back_log = 300

max_connections = 1000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 128
max_allowed_packet = 4M
max_heap_table_size = 8M
tmp_table_size = 16M

read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
key_buffer_size = 4M

thread_cache_size = 8

query_cache_type = 1
query_cache_size = 8M
query_cache_limit = 2M

ft_min_word_len = 4

expire_logs_days = 7

log_error = mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = mysql-slow.log

performance_schema = 0

skip-external-locking

default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 64M
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120

bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 8M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1

interactive_timeout = 28800
wait_timeout = 28800

[mysqldump]
quick
max_allowed_packet = 16M

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M


(Luôn luôn lắng nghe, lâu lâu mới hiểu...) #8

Nâng thông số lên như bác @jazz1611 là khá ổn. Còn vẫn muốn cố chấp thì đây là câu lệnh cho bồ chạy lại MariaDB 2 tiếng/lần
sudo crontab -e
thêm vào dòng sau
* */2 * * * systemctl restart mariadb
Mỗi 2 tiếng nó khởi động lại MariaDB 1 lần. <= NOTE: Kiểu Amater này hay lỗi lắm đấy. Thích cứ thử. :smiley:


(Luân Trần) #9

Bạn xem biểu đồ RAM + CPU xem có lúc nào overload không? Mình đang nghiêng về hướng server quá tải nên stop service MySQL.
Ngoài ra tạo SWAP nữa đi nhé.


(Thành) #10

Xin lỗi, hơi khác chủ đề chút.
mình muốn sửa cấu hình [ft_min_word_len = 3 ]
word-length-fulltext-search trong mysql mà không biết là sửa file nào,
mở file /etc/my.cnf thì không đọc được, mở ra toàn chữ NUL
mà trong thư mục /etc/my.cnf.d/ thì có 4 file:
client.cnf , mysql-clients.cnf , server.cnf , tokudb.cnf
không biết sửa file nào cho đúng. Mình dùng hocvps trên vultr, centos 7, php7
Bác luân giúp em với ạ. cám ơn!