我最近将我的MySQL服务器从5.1升级到5.5并且我正在尝试使用mysql_upgrade升级我的数据库,但我一直收到此错误:
[root@ip-??-???-???-??? ~]# mysql_upgrade -uadmin -p
Enter password:
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
FATAL ERROR: Upgrade failed
我无法理解为什么这不会运行。 MySQL服务器正在运行。
答案 0 :(得分:18)
我在OS X(通过MacPorts安装)上从MySQL 5.5到5.6也有同样的问题。
似乎mysql_upgrade
需要以用户root
运行且仅root
,并且需要为用户设置密码。具有管理权限的任何其他用户似乎都不起作用。
所以唯一有效的命令似乎是:mysql_upgrade -u root -p
Chris_H at FreeBSD forums的初步解决方案。
答案 1 :(得分:6)
为我工作,但我必须使用它:
mysql_upgrade --port=3306 --user=root --password=PASSWORD
我在
工作mysql -V
mysql Ver 14.14使用readline 6.3分发5.5.35,debian-linux-gnu(x86_64)
答案 2 :(得分:2)
如果您在非标准端口上运行MySQL,请务必包含--port = xxxxxx
我发现跳过可能会导致您收到的错误。
答案 3 :(得分:2)
对于我的情况,我需要明确传递我的套接字文件位置。
mysql_upgrade -S /usr/local/mysql/mysql.sock
答案 4 :(得分:2)
解决了致命错误:
1º - 执行shell命令:service mysqld stop
2º - 然后,将/etc/my.cnf
重命名为/etc/my.cnfbkp
3º - 执行shell命令:service mysqld start
4º - 执行shell命令:mysql_upgrade -u root -p YOUR_ROOT_PASSWORD
5º - 将/etc/my.cnfbkp
重命名为/etc/my.cnf
6º - 执行shell命令:service mysqld restart
答案 5 :(得分:0)
我在Windows服务器上的安装需要端口和用户/通过规范。
--port=3306 --user=root --password=XXXX
答案 6 :(得分:0)
只需将配置行添加到my.cnf即可 最后添加
[mysqlcheck的] socket = /dbabcstorage/data/mysql5/mysql.sock
您可以在my.cnf的前几行中复制的正确值
答案 7 :(得分:0)
这在CentOS / Plesk服务器上对我有用:
mysql_upgrade -uadmin -p < /etc/psa/.psa.shadow
-f
service mysqld restart
答案 8 :(得分:0)
解决!
按照 ADMINISTRATOR 帐户
的步骤操作1)安装MySQL
2)在位于MySQL路径上的my.ini文件中,设置datadir e basedir
3) 移动所有内容&#34;%MySQL%/ Data&#34;文件夹到上面的datadir
4)运行升级:
mysql_upgrade
5)像这样创建Windows服务:
sc create MySQL binPath=C:/MySQL
删除Windows服务:
sc delete MySQL