第一次还原到mariadb10.1时失败,但在重新创建数据库后再次还原时成功

mnemlml8  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(126)

我正在从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。

z9zf31ra

z9zf31ra1#

当恢复单独获取的mysql数据库的转储时(与执行特殊处理的--all-databases相反),需要FLUSH PRIVILEGES将该转储恢复到数据库的运行配置。
mysql_upgrade,现在在10.4+中称为mariadb-upgrade,改变了mysql.*表以对应mariadb版本的新功能,并发出FLUSH PRIVILEGES
因此,当还原到新的主版本时,请在还原mysql数据库后运行mysql_upgrade。如果恢复到相同的版本,则恢复后的FLUSH PRIVILEGES就足够了。

相关问题