Nếu bạn đang thay đổi phiên bản, ĐỪNG CHUYỂN ĐỔI SCHema mysql .
Tại sao bạn không nên di chuyển thư mục mysql? Nó phải làm với các đặc quyền xác thực.
Số lượng cột trong mysql.user khác nhau từ phiên bản này sang phiên bản khác
Nếu bạn chạy desc mysql.user
- Bạn sẽ thấy 31 hàng cho MySQL 4.1
- Bạn sẽ thấy 37 hàng cho MySQL 5.0
- Bạn sẽ thấy 39 hàng cho MySQL 5.1
- Bạn sẽ thấy 42 hàng cho MySQL 5.5
Tôi đã viết về điều này trước đây
Nó là OK để di chuyển mọi thứ khác. Trên máy mới có MySQL 5.5.24, hãy làm điều này:
mv /var/lib/mysql /var/lib/mysql/mysql55
mkdir /var/lib/mysql
<scp or rsync /var/lib/mysql of MySQL 5.1.41 over to /var/lib.mysql of MySQL 5.5.24>
rm -f /var/lib/mysql/mysql/*
cp /var/lib/mysql/mysql55/* /var/lib/mysql/mysql/*
chown -R mysql:mysql /var/lib/mysql
service mysql start
Vì vậy, câu hỏi vẫn còn:
Làm thế nào để bạn chuyển Đặc quyền người dùng trong MySQL 5.1.41 cũ sang MySQL 5.5.24 ???
Có hai cách để thực hiện việc này bắt đầu trên máy MySQL 5.1.41:
Chương trình Bộ công cụ Percona này di chuyển in ra Quyền của người dùng trong Pure SQL. Bạn có thể chạy kết quả đầu ra vào một tệp văn bản. Sau đó, thực thi tệp văn bản trong MySQL 5.5.24. Kết thúc câu chuyện.
pt-show-grants ... > MySQLUserGrants.sql
PHƯƠNG PHÁP # 2: Thi đua pt-show-trợ cấp
Tôi đã thực hiện kỹ thuật của riêng mình cho pt-show-Grants
mysql -hhostaddr -umyuserid -pmypassword --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | mysql -hhostaddr -umyuserid -pmypassword --skip-column-names -A | sed 's/$/;/g' > MySQLUserGrants.sql
Dù bằng cách nào, hãy chuyển MySQLUserGrant.sql sang máy MySQL 5.5.24 và thực thi tập lệnh
Tôi đã viết về điều này trước đây: nhập cơ sở dữ liệu myisam 5.0 vào máy chủ innodb 5.5