Cài đặt và cấu hình MySQL trên Ubuntu 16.04.6

Cập nhật nguồn phần mềm

sudo apt-get update

Cài đặt MySQL Server

sudo apt-get install mysql-server

Lệnh trên sẽ cài đặt các gói sau: apparmor, mysql-client-5.7, mysql-common, mysql-server, mysql-server-5.7, mysql-server-core-5.7. Quá trình cài đặt sẽ yêu cầu bạn đặt mật khẩu cho người dùng root của MySQL. Sau khi hoàn tất, MySQL sẽ tự động khởi động.

Quản lý dịch vụ MySQL

# Khởi động
service mysql start
# Dừng
service mysql stop
# Khởi động lại
service mysql restart

Kiểm tra trạng thái MySQL

Để xác nhận MySQL đã khởi động thành công, kiểm tra xem có trạng thái LISTEN:

sudo netstat -tap | grep mysql

Truy cập shell MySQL

mysql -u root -p

Nhập mật khẩu root đã thiết lập.

Cấu hình truy cập từ xa

vi /etc/mysql/mysql.conf.d/mysqld.cnf

Lưu và thoát, sau đó vào MySQL và thực thi lệnh cấp quyền:

grant all on *.* to root@'%' identified by 'mat_khau_cua_ban' with grant option;
flush privileges;

Thoát MySQL và khởi động lại dịch vụ:

service mysql restart

Thiết lập tự động khởi động

systemctl enable mysql

Cấu hình Master-Slave Replication

Trên cả hai máy, cấu hình quyền truy cập cho /etc/my.cnf:

cat /etc/apparmor.d/usr.sbin.mysqld

Chỉnh sửa file cấu hình:

vi /etc/apparmor.d/usr.sbin.mysqld

Khởi động lại hệ thống:

reboot

Cấu hình Master (192.168.88.51)

vi /etc/my.cnf

Thêm vào:

[mysqld]
log_bin=mysql-bin
server_id=1

Lưu và khởi động lại MySQL:

service mysql restart

Cấu hình Slave (192.168.88.52)

vi /etc/my.cnf

Thêm vào:

[mysqld]
log_bin=mysql-bin
server_id=2

Lưu và khởi động lại MySQL:

service mysql restart

Cấu hình replication trong MySQL

Trên Master:

mysql -u root -p
-- Tạo tài khoản复制
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'192.168.88.52' IDENTIFIED BY 'mat_khau_replica';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;

Ghi lại giá trị trong cột File và Position.

Trên Slave:

mysql -u root -p
-- Cấu hình Master
CHANGE MASTER TO MASTER_HOST='192.168.88.51', MASTER_USER='replica_user', MASTER_PASSWORD='mat_khau_replica', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;
-- Bắt đầu replication
START SLAVE;
SHOW SLAVE STATUS\G;

Cấu hình không phân biệt chữ hoa chữ thường

vi /etc/mysql/mysql.conf.d/mysqld.cnf

Thêm vào phần [mysqld]:

lower_case_table_names=1

Lưu và khởi động lại dịch vụ:

service mysql restart

Phục hồi replication khi gặp sự cố

Dừng Slave:

mysql -u root -p
STOP SLAVE;

Trên Master, kiểm tra trạng thái:

SHOW MASTER STATUS;

Ghi lại File và Position.

Trên Slave, thực thi lệnh:

CHANGE MASTER TO MASTER_HOST='IP_Master', MASTER_USER='tai_khoan', MASTER_PASSWORD='mat_khau', MASTER_LOG_FILE='file_ghi', MASTER_LOG_POS=position;
START SLAVE;

Kiểm tra lại trạng thái.

Bật binlog

Trên Ubuntu, cần cấu hình AppArmor:

sudo vim /etc/apparmor.d/usr.sbin.mysqld

Thêm đường dẫn thư mục:

/data/mysql/ r,
/data/mysql/** rwk,

Khởi động lại AppArmor:

sudo service apparmor restart

Thay đổi quyền truy cập:

mkdir -p /data/mysql/
chown -R mysql:mysql /data/mysql/
chmod -R 777 /data/mysql/

Cấu hình binlog trong my.cnf

vi /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
server-id=1
binlog_format=MIXED
log_bin=/data/mysql/mysql-bin
expire_logs_days=7
max_binlog_size=100m
binlog_cache_size=4m
max_binlog_cache_size=512m

Khởi động lại MySQL và kiểm tra:

sudo /etc/init.d/mysql restart
SHOW VARIABLES LIKE 'log\_%';

Thẻ: mysql Ubuntu Database replication server administration

Đăng vào ngày 11 tháng 6 lúc 21:52