我正在从mariadb5.5升级到10.1。我尝试将转储文件输出从5.5恢复到10.1,但我遇到了这样的现象:第一次恢复总是失败,而在删除并重新创建数据库后恢复成功。错误的内容是
第44811行出现错误1449(HY 000):指定为definer('batch'@'localhost')的用户不存在
但是'batch'@'localhost'确实存在,并且第二次恢复成功,使用相同的转储文件,而不添加用户。我实际使用的命令是:
// in mariadb5.5
$ mysqldump -u root -p -x -h localhost -R --opt --quick databasename | gzip > /root/backup_db/databasename.sql.gz
$ mysqldump -u root -p -x -h localhost --allow-keywords mysql | gzip > /root/backup_db/mysql.sql.gz
// After installing mariadb10.1
$ mysql_secure_installation
$ mysql_upgrade -u root -p
$ mysql -u root -p -h localhost
# create database databasename;
# \q
// After decompressing the compressed dump file
$ mysql -u root -p -h localhost mysql < mysql.sql
$ mysql -u root -p -h localhost databasename< databasename.sql // always fails here
$ mysql -u root -p -h localhost
# drop database databasename;
# create database databasename;
# \q
$ mysql -u root -p -h localhost databasename< databasename.sql // success here
字符串
请让我知道是否有任何可能的原因或需要检查的事情。- 谢谢-谢谢
认为net_buffer_length不足,
net_buffer_length=1024000
我尝试通过更改为来恢复,但失败了。此时的Max_allowed_packet为
max_allowed_packet=100MB。
1条答案
按热度按时间z9zf31ra1#
当恢复单独获取的
mysql
数据库的转储时(与执行特殊处理的--all-databases
相反),需要FLUSH PRIVILEGES
将该转储恢复到数据库的运行配置。mysql_upgrade
,现在在10.4+中称为mariadb-upgrade
,改变了mysql.*
表以对应mariadb版本的新功能,并发出FLUSH PRIVILEGES
。因此,当还原到新的主版本时,请在还原
mysql
数据库后运行mysql_upgrade
。如果恢复到相同的版本,则恢复后的FLUSH PRIVILEGES
就足够了。