MySQL 升级方法指南大全第5/5页
更新时间:2008年01月26日 18:58:58 作者:
通常,从一个发布版本升级到另一个版本时,我们建议按照顺序来升级版本。例如,想要升级 MySQL 3.23 时,先升级到 MySQL 4.0,而不是直接升级到 MySQL 4.1 或 MySQL 5.0。
升级授权表之前一定要备份好 mysql 数据库,以备升级失败时使用旧的授权表。
在unix或类unix系统中,运行 mysql_fix_privilege_tables 脚本来升级授权表:
shell> mysql_fix_privilege_tables 必须在 mysqld 运行着的时候执行这个脚本,它尝试使用 root 帐号来连接服务器;因此,当 root 需要密码时,用如下方式来指定密码:
shell> mysql_fix_privilege_tables --password=root_password 在 MySQL 4.1之前,则是用如下形式来指定密码:
shell> mysql_fix_privilege_tables root_password
接下来 mysql_fix_privilege_tables 脚本会升级授权表,在这个过程中可能会有一些 Duplicate column name 警告信息,无需理会它们。待它运行完之后,重启一下服务器即可。
在windows平台上,授权表想要升级到4.0.15并不容易。从4.0.15开始,发行版中包含一个sql脚本:mysql_fix_privilege_tables.sql,用 mysql 客户端运行它来升级授权表,运行类似如下命令:
C:\> C:\mysql\bin\mysql -u root -p mysql
mysql> SOURCE C:/mysql/scripts/mysql_fix_privilege_tables.sql
把上面提到的目录改成真实的目录。
3、) 升级同步
请查看我翻译的文档"6.6 升级同步"
4、) mysql_update MySQL升级时检查数据表
每次升级的时候都必须运行 mysql_upgrade 脚本。它检查了当前版本的MySQL下的所有数据库表的不兼容性,就会检查这些表;并且发现有问题时,也会修复这些表。mysql_update 同时升级了系统表,因此可以兼容新的权限机制并且使用新增的权限。
由于 mysql_update 会把检查过和修复过的表都标记上当前的MySQL版本号,因而保证了下一次在同一个MySQL版本下运行这个脚本时,都会再次报告哪些表需要修复或检查。
它还会把MySQL的版本号记录在数据文件目录下的一个文件中:mysql_upgrade.info。这个文件用于标识当前发布版本检查表时哪些表可以略过,检查时想要忽略这个文件,只需附加上 --force 选项。
为了能检查和修复数据表,并且升级系统表,mysql_update 执行了一下命令:
mysqlcheck --check-upgrade --all-databases --auto-repair
mysql_fix_privilege_tables
mysql_update 目前只支持类unix平台;在windows下,需要手工执行 mysqlcheck 命令,升级授权表请看附录"升级授权表"。
执行 mysql_update 时,MySQL服务器必须运行着,它有以下几个参数:
--help
显示帮助信息并且退出
--basedir=path
设定MySQL的安装路径
--datadir=path
设定MySQL的数据文件路径
--force
告诉 mysql_update,在检查时忽略是否存在 mysql_upgrade.info 文件,强行检查该版本的MySQL数据表,不管是否已经检查过了
--user=user_name, -u user_name
连接到MySQL的用户名,默认是 root
--verbose
冗余模式。发生问题时打印出更多的信息
其他的选项诸如 --password[=password] 是要传递给 mysqlcheck 和 mysql_fix_privilege_tables 脚本的,并不是必须的。
相关文章
insert into … on duplicate key update / replace into 多行数据介绍
当我插入一条数据时,我要判断(k1,k2)是否已经存在(1条selete),若存在就update,不存在就insert2013-08-08
NaviCat连接时提示"不支持远程连接的MySql数据库"解决方法
前段时间,因为一项目,需要做MYSql的数据同步服务,但由于网站空间服务供应商不提供远程连接MYSql,所以无法利用NaviCat客户端通过填写服务器地址来连接远程服务器,在网上找到了SSH方式连接,但经过测试后发现依旧无法连接。2011-08-08
解决mySQL中1862(phpmyadmin)/1820(mysql)错误的方法
最近在工作中发现一直在运行的mysql突然报错了,错误提示1820,phpmyadmin也不能登陆,错误为1862,虽然摸不着头脑但只能想办法解决,下面这篇文章给大家分享了解决这个问题的方法,有需要的朋友们可以参考借鉴,下面来一起看看吧。2016-12-12
MySQL execute、executeUpdate、executeQuery三者的区别
这篇文章主要介绍了MySQL execute、executeUpdate、executeQuery三者的区别的相关资料,需要的朋友可以参考下2017-05-05


最新评论