Bạn luôn có thể di chuyển các tệp dữ liệu và biểu mẫu MySQL giữa các phiên bản khác nhau trên cùng một kiến trúc miễn là bạn có cùng một phiên bản cơ sở của MySQL. Phiên bản cơ sở hiện tại là 3. Nếu bạn thay đổi bộ ký tự khi chạy MySQL (điều này cũng có thể thay đổi thứ tự sắp xếp), bạn phải chạy myisamchk -r -q trên tất cả các bảng. Nếu không, các chỉ mục của bạn có thể không được sắp xếp chính xác Show
Nếu bạn sợ các phiên bản mới, bạn luôn có thể đổi tên mysqld cũ của mình thành mysqld-old-version-number. Nếu mysqld mới của bạn sau đó làm điều gì đó không mong muốn, bạn chỉ cần tắt nó và khởi động lại với mysqld cũ của bạn Tất nhiên, khi bạn nâng cấp, bạn cũng nên sao lưu cơ sở dữ liệu cũ của mình Nếu sau khi nâng cấp, bạn gặp sự cố với các chương trình máy khách được biên dịch lại, chẳng hạn như Lệnh không đồng bộ hoặc kết xuất lõi không mong muốn, thì có thể bạn đã sử dụng tệp thư viện hoặc tiêu đề cũ khi biên dịch chương trình của mình. Trong trường hợp này, bạn nên kiểm tra ngày của tệp shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name7 và thư viện shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name8 để xác minh rằng chúng đến từ bản phân phối MySQL mới. Nếu không, vui lòng biên dịch lại chương trình của bạn Nếu bạn gặp một số vấn đề khiến máy chủ mysqld mới không muốn khởi động hoặc bạn không thể kết nối mà không có mật khẩu, hãy kiểm tra để đảm bảo rằng bạn không có một số tệp shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name9 cũ từ bản cài đặt cũ của mình. Bạn có thể kiểm tra điều này với. tên chương trình --print-defaults. Nếu điều này xuất ra bất kỳ thứ gì khác ngoài tên chương trình, bạn có một tệp shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name9 đang hoạt động sẽ ảnh hưởng đến mọi thứ Bạn nên xây dựng lại và cài đặt lại bản phân phối mô-đun Msql-Mysql bất cứ khi nào bạn cài đặt một bản phát hành mới của MySQL, đặc biệt nếu bạn nhận thấy các triệu chứng chẳng hạn như tất cả các tập lệnh DBI của bạn đều đổ lõi sau khi bạn nâng cấp MySQL Nâng cấp từ Phiên bản 3. 23 đến Phiên bản 4. 0Bạn có thể sử dụng các tệp dữ liệu cũ của mình mà không cần sửa đổi gì với Phiên bản 4. 0. Nếu bạn muốn di chuyển dữ liệu của mình từ MySQL 4. 0 sang máy chủ cũ hơn, bạn phải sử dụng mysqldump Máy khách cũ nên hoạt động với Phiên bản 4. 0 máy chủ mà không gặp bất kỳ sự cố nào Các danh sách sau đây cho biết những gì bạn phải chú ý khi nâng cấp lên phiên bản 4. 0;
Nâng cấp từ Phiên bản 3. 22 đến Phiên bản 3. 23Phiên bản MySQL 3. 23 hỗ trợ các bảng kiểu MyISAM mới và kiểu ISAM cũ. Bạn không cần phải chuyển đổi các bảng cũ của mình để sử dụng các bảng này với Phiên bản 3. 23. Theo mặc định, tất cả các bảng mới sẽ được tạo với kiểu MyISAM (trừ khi bạn bắt đầu mysqld với tùy chọn --default-table-type=isam). Bạn có thể thay đổi bảng ISAM thành bảng MyISAM bằng ALTER TABLE tên_bảng TYPE=MyISAM hoặc tập lệnh Perl mysql_convert_table_format Phiên bản 3. 22 và 3. 21 khách hàng sẽ hoạt động mà không gặp bất kỳ sự cố nào với Phiên bản 3. 23 máy chủ Danh sách sau đây cho biết những điều bạn phải chú ý khi nâng cấp lên Phiên bản 3. 23
Nâng cấp từ Phiên bản 3. 21 đến Phiên bản 3. 22Không có gì ảnh hưởng đến khả năng tương thích đã thay đổi giữa các phiên bản 3. 21 và 3. 22. Điều đáng tiếc duy nhất là các bảng mới được tạo với các cột loại NGÀY sẽ sử dụng cách mới để lưu trữ ngày tháng. Bạn không thể truy cập các trường mới này từ phiên bản cũ của mysqld Sau khi cài đặt MySQL Phiên bản 3. 22, bạn nên khởi động máy chủ mới và sau đó chạy tập lệnh mysql_fix_privilege_tables. Thao tác này sẽ thêm các đặc quyền mới mà bạn cần để sử dụng lệnh GRANT. Nếu quên điều này, bạn sẽ bị Từ chối truy cập khi cố gắng sử dụng ALTER TABLE, CREATE INDEX hoặc DROP INDEX. Nếu người dùng root MySQL của bạn yêu cầu mật khẩu, bạn nên cung cấp mật khẩu này làm đối số cho mysql_fix_privilege_tables Giao diện C API tới mysql_real_connect( ) đã thay đổi. Nếu bạn có một chương trình máy khách cũ gọi hàm này, bạn phải đặt 0 cho đối số db mới (hoặc mã hóa lại máy khách để gửi phần tử db để kết nối nhanh hơn). Bạn cũng phải gọi mysql_init() trước khi gọi mysql_real_connect(). Thay đổi này được thực hiện để cho phép hàm mysql_options( ) mới lưu các tùy chọn trong cấu trúc trình xử lý MYSQL Biến mysqld key_buffer đã đổi tên thành key_buffer_size, nhưng bạn vẫn có thể sử dụng tên cũ trong các tệp khởi động của mình Nâng cấp từ Phiên bản 3. 20 đến Phiên bản 3. 21Nếu bạn đang chạy phiên bản cũ hơn Phiên bản 3. 20. 28 và muốn chuyển sang Phiên bản 3. 21, bạn cần làm như sau Bạn có thể bắt đầu phiên bản mysqld 3. 21 với safe_mysqld --old-protocol để sử dụng nó với các máy khách từ Phiên bản 3. 20 phân phối. Trong trường hợp này, chức năng máy khách mới mysql_errno( ) sẽ không trả về bất kỳ lỗi máy chủ nào, chỉ trả về CR_UNKNOWN_ERROR (nhưng nó hoạt động với các lỗi máy khách) và máy chủ sử dụng kiểm tra mật khẩu cũ( ) thay vì kiểm tra mật khẩu mới Nếu bạn không sử dụng tùy chọn --old-protocol cho mysqld, bạn sẽ cần thực hiện các thay đổi sau
Phiên bản MySQL 3. 20. 28 trở lên có thể xử lý định dạng bảng người dùng mới mà không ảnh hưởng đến máy khách. Nếu bạn có phiên bản MySQL sớm hơn Phiên bản 3. 20. 28, mật khẩu sẽ không còn hoạt động với nó nếu bạn chuyển đổi bảng người dùng. Vì vậy, để an toàn, trước tiên bạn nên nâng cấp lên ít nhất Phiên bản 3. 20. 28 và sau đó nâng cấp lên Phiên bản 3. 21 Mã khách hàng mới hoạt động với 3. 20. x máy chủ mysqld, vì vậy nếu bạn gặp sự cố với 3. 21. x, bạn có thể sử dụng 3 cũ. 20. x mà không cần phải biên dịch lại máy khách Nếu bạn không sử dụng tùy chọn --old-protocol cho mysqld, các máy khách cũ sẽ đưa ra thông báo lỗi ERROR: Protocol mismatch. Server Version = 10 Client Version = 9 Giao diện Perl DBI/DBD mới cũng hỗ trợ giao diện mysqlperl cũ. Thay đổi duy nhất bạn phải thực hiện nếu sử dụng mysqlperl là thay đổi các đối số thành hàm connect(). Các lập luận mới là. máy chủ, cơ sở dữ liệu, người dùng và mật khẩu (đối số người dùng và mật khẩu đã thay đổi vị trí). Thấy Những thay đổi sau đây có thể ảnh hưởng đến truy vấn trong các ứng dụng cũ
Nâng cấp lên kiến trúc khácNếu bạn đang sử dụng MySQL Phiên bản 3. 23, bạn có thể sao chép các tệp shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name6, shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name3 và shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name8 giữa các kiến trúc khác nhau hỗ trợ cùng một định dạng dấu phẩy động. (MySQL xử lý mọi sự cố hoán đổi byte. ) Các tệp chỉ mục và dữ liệu ISAM của MySQL (lần lượt là ____09 và shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name00) phụ thuộc vào kiến trúc và trong một số trường hợp phụ thuộc vào hệ điều hành. Nếu bạn muốn di chuyển các ứng dụng của mình sang một máy khác có kiến trúc hoặc hệ điều hành khác với máy hiện tại của bạn, bạn không nên cố di chuyển cơ sở dữ liệu bằng cách sao chép các tệp sang máy khác. Sử dụng mysqldump thay thế Theo mặc định, mysqldump sẽ tạo một tệp chứa đầy các câu lệnh SQL. Sau đó, bạn có thể chuyển tệp sang máy khác và cung cấp tệp đó làm đầu vào cho ứng dụng khách mysql Hãy thử mysqldump --help để xem có những tùy chọn nào. Nếu bạn đang di chuyển dữ liệu sang phiên bản MySQL mới hơn, bạn nên sử dụng mysqldump --opt với phiên bản mới hơn để có kết xuất nhanh, gọn Cách dễ nhất (mặc dù không phải là nhanh nhất) để di chuyển cơ sở dữ liệu giữa hai máy là chạy các lệnh sau trên máy chứa cơ sở dữ liệu shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name Nếu bạn muốn sao chép cơ sở dữ liệu từ máy từ xa qua mạng chậm, bạn có thể sử dụng shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name0 Bạn cũng có thể lưu trữ kết quả trong một tệp, sau đó chuyển tệp đến máy đích và tải tệp vào cơ sở dữ liệu ở đó. Ví dụ: bạn có thể kết xuất cơ sở dữ liệu vào một tệp trên máy nguồn như thế này shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name3 (Tệp được tạo trong ví dụ này được nén. ) Truyền tệp chứa nội dung cơ sở dữ liệu sang máy đích và chạy các lệnh này ở đó shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name4 Bạn cũng có thể sử dụng mysqldump và mysqlimport để thực hiện chuyển cơ sở dữ liệu. Đối với các bảng lớn, điều này nhanh hơn nhiều so với việc chỉ sử dụng mysqldump. Trong các lệnh sau, DUMPDIR đại diện cho tên đường dẫn đầy đủ của thư mục bạn sử dụng để lưu trữ đầu ra từ mysqldump Đầu tiên, tạo thư mục cho các tệp đầu ra và kết xuất cơ sở dữ liệu shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name5 Sau đó chuyển các tệp trong thư mục DUMPDIR sang một số thư mục tương ứng trên máy đích và tải các tệp vào MySQL ở đó shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name6 Ngoài ra, đừng quên sao chép cơ sở dữ liệu mysql vì đó là nơi lưu trữ các bảng cấp (người dùng, db, máy chủ). Bạn có thể phải chạy các lệnh với tư cách là người dùng root MySQL trên máy mới cho đến khi bạn có cơ sở dữ liệu mysql tại chỗ Sau khi bạn nhập cơ sở dữ liệu mysql trên máy mới, hãy thực thi mysqladmin flush-privileges để máy chủ tải lại thông tin bảng cấp Làm cách nào để hạ cấp MySQL trên Mac?Mybrew MySQL 8. 0 hạ cấp xuống MySQL 5. 7 . gỡ cài đặt mysql và mysql@5. 7 bởi homebrew điều hướng đến /tmp xóa mysql. vớ và mysql. bít tất. Khóa cài đặt lại mysql@5. 7 bắt đầu dịch vụ Sự khác biệt giữa MySQL 5 là gì. 7 và MySQL 8?MySQL 8. 0 làm cho UTF8MB4 trở thành bộ ký tự mặc định . Hiệu suất SQL – chẳng hạn như sắp xếp các chuỗi UTF8MB4 – đã được cải thiện theo hệ số 20 trên 8. 0 so với 5. 7. UTF8MB4 là mã hóa ký tự thống trị cho web và động thái này sẽ giúp cuộc sống của đại đa số người dùng MySQL trở nên dễ dàng hơn.
Các phiên bản của MySQL là gì?Các tính năng bị xóa trong MySQL 8. 0 Làm cách nào để kiểm tra phiên bản MySQL?Trong MySQL Command Line Client, nhập lệnh sau. HIỂN THỊ BIẾN NHƯ 'phiên bản'; Phiên bản MySQL sẽ được hiển thị ngay lập tức. |