Tôi đang chạy bản sao MySQL chính kép và bây giờ muốn chuyển sang một cơ sở dữ liệu duy nhất không có bản sao. Làm thế nào để tôi hoàn toàn vô hiệu hóa sao chép trên cả hai cơ sở dữ liệu?
Tôi đang chạy bản sao MySQL chính kép và bây giờ muốn chuyển sang một cơ sở dữ liệu duy nhất không có bản sao. Làm thế nào để tôi hoàn toàn vô hiệu hóa sao chép trên cả hai cơ sở dữ liệu?
Câu trả lời:
Để vô hiệu hóa hoàn toàn sao chép với thiết lập chính chủ, bạn nên thực hiện các thao tác sau trên mỗi nô lệ:
STOP SLAVE;
RESET SLAVE;
(Sử dụng RESET SLAVE ALL;
cho MySQL 5.5.16 trở lên)SLAVE STATUS
các truy vấn ngay cả sau khi RESET SLAVE
lệnh được đưa ra. Quan trọng cần biết để theo dõi hoặc các công cụ quản lý cấu hình từ xa. Xác nhận hành vi với MySQL 5.5,38 trên CentOS 6.5.
Tôi biết đây là một câu hỏi cũ nhưng tôi thấy tôi cũng phải đặt lại các biến nô lệ. Nếu bạn sử dụng "blah" như được đề xuất, máy chủ sẽ thử khởi động để tìm máy chủ 'blah'.
Thay đổi
MASTER
thànhMASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='';
Bạn có thể xác minh rằng máy không còn là nô lệ
SHOW SLAVE STATUS \G;
CHANGE MASTER TO MASTER_HOST=''
bây giờ ném một lỗi.
Trên (các) máy chủ nô lệ:
Không cần phải khởi động lại MySQL trên máy chủ hoặc nô lệ. Toàn bộ tài liệu có thể được tìm thấy trong phần 19 của Tài liệu tham khảo MySQL .
Tôi khuyên bạn nên để phần còn lại của cài đặt sao chép trong trường hợp bạn quyết định trở lại cấu hình trước đó. Bằng cách đó, bạn chỉ cần đẩy dữ liệu lên và đặt lại vị trí nô lệ (đừng quên xóa bỏ bắt đầu nô lệ) thay vì tạo lại toàn bộ thiết lập.
Bất kể phiên bản MySQL nào, Cách đầy đủ nhất để làm điều này là như sau
cd /var/lib/mysql
service mysql stop
rm -f master.info relay-*`
service mysql start
Điều này phải làm việc cho anh ta phiên bản mới nhất vì cài đặt sao chép vẫn còn lưu lại trong RAM cho MySQL 5.5.
Tôi vừa trả lời một câu hỏi tương tự về chủ đề này: Làm thế nào để thay đổi nô lệ trước đó của MySQL thành chủ và xóa thông tin trạng thái nô lệ?
Chỉ chỉnh sửa tệp my.cnf là không đủ để vô hiệu hóa sao chép. Trong thực tế, nó không còn là cách được khuyến nghị cho phép nó. Đặt các mục trong tệp my.cnf chỉ có hiệu quả cho lần khởi động tiếp theo và hoạt động như thể bạn đã nhập lệnh vào máy khách mysql:
mysql thay đổi chủ thành master_host = 'blah', master_user = 'blah', master_password = 'blah' ...;
Cả hai phương thức này sẽ tạo một tệp trong thư mục dữ liệu được gọi là master.info . Miễn là tệp này tồn tại, máy chủ sẽ thử và sao chép bằng các chi tiết ở đó. "RESET SLAVE;" lệnh được liệt kê trong câu trả lời đầu tiên sẽ thoát khỏi tệp master.info (cũng như tệp rơle-log.info ). Như đã đề cập trong câu trả lời đầu tiên, bạn cũng muốn đảm bảo rằng bạn không có thông tin cấu hình đó trong tệp my.cnf, nếu không, trong lần khởi động lại tiếp theo của máy chủ, đăng nhập sẽ được bật lại.
Một câu trả lời là đây:
http://www.oops.net.br/~bac/bam/canopy_Vpl_setup.htm
* Chỉnh sửa tệp cấu hình MySQL: /etc/my.cnf và xóa 7 dòng sau vào phần có tiêu đề [mysqld]:
port=3306
log-bin
server-id=1
master-host=10.0.0.2
master-user=server_1_repl
master-password=server_1_passwd
master-port=3306*
Khởi động lại MySQL.
Tôi đang thêm điều này vào câu trả lời của Harrison Fisk:
Nếu bạn đã sử dụng RESET SLAVE ALL;
thì khởi động lại là không cần thiết.
Ngoài ra, bạn có thể muốn bật các sự kiện đã bị vô hiệu hóa trên nô lệ:
select * from information_schema.events where status = 'SLAVESIDE_DISABLED';
Đối với mỗi người trong số họ:
alter event <event_name> enable;