十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
我在windows环境下升级MySQL 从5.0到5.5升级。
成都创新互联主要从事网站建设、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务义马,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
升级就是重新安装了mysql。把原来的5.0下的data数据拷贝给5.5mysql下的data。但是拷贝后,重启5.5mysql 突然识别不了innodb的table_type。经过学习了解后。把5.0下的my.ini 文件中innodb的配置选项拷贝给了5.5后,重启问题得到了解决。
有两种方法,一种方法使用mysql的check table和repair table 的sql语句,另一种方法是使用MySQL提供的多个myisamchk, isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。
1. check table 和 repair table
登陆mysql 终端:
mysql -uxxxxx -p dbname
check table tabTest;
如果出现的结果说Status是OK,则不用修复,如果有Error,可以用:
repair table tabTest;
进行修复,修复之后可以在用check table命令来进行检查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:
myisamchk tablename.MYI
进行检测,如果需要修复的话,可以使用:
myisamchk -of tablename.MYI
关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。
-----------------------------
另外可以把下面的命令放在你的rc.local里面启动MySQL服务器前:
[ -x /tmp/mysql.sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/mysql.sock是MySQL监听的Sock文件位置,对于使用RPM安装的用户应该是/var/lib/mysql/mysql.sock,对于使用源码安装则是/tmp/mysql.sock可以根据自己的实际情况进行变更,而pathtochk则是myisamchk所在的位置,DATA_DIR是你的MySQL数据库存放的位置。
需要注意的时,如果你打算把这条命令放在你的rc.local里面,必须确认在执行这条指令时MySQL服务器必须没有启动!检测修复所有数据库(表)
1、概述通常,从一个发布版本升级到另一个版本时,我们建议按照顺序来升级版本。例如,想要升级 MySQL 3.23 时,先升级到 MySQL 4.0,而不是直接升级到 MySQL 4.1 或 MySQL 5.0。 以下是在升级 MySQL 时需要注意的事项: 仔细阅读一下升级的目标版本的新特性和改变的特性,以及2个版本之间的不同特性 升级前一定要备份所有的数据 如果是在Windows平台上升级MySQL,请阅读附录 "在Windows平台上升级MySQL" 有些不同版本间的升级可能会涉及对授权表的修改,请尤其注意这个问题,详情请阅读附录 "升级授权表" ◆如果正在运行着同步,请阅读附录 "升级同步" ◆如果之前运行着MySQL-Max发布版本,想要升级到非MySQL-Max发布版本时,就需要从 mysqld_safe 去掉启动 mysqld-max 服务器的参数 在同一个发布系列版本的MySQL间,可以随意拷贝格式文件和数据文件。如果在MySQL运行过程中改变了字符集,就需要对每个MyISAM表执行 "myisamchk -r -q --set-character-set=charset" 命令修复一下。否则的话,索引的排序可能不正确,因为修改了字符集,就可能会改变索引的顺序。 通常情况下,升级到新版本不需要修改任何数据表。请检查MySQL发布事项中提到的升级需要注意的地方,如果发现不能直接升级的话,就先用 mysqldump 将数据导出来,然后再导回去。 如果担心升级失败,就先把旧版本的MySQL改个名字备份起来,以备所需。 同时,升级完之后可能还需要重新编译跟MySQL相关的程序,因为新版本的头文件和库文件可能有改变了。 如果升级后发生问题了,请先检查是否使用了旧的my.cnf配置文件,可以通过执行命令 "mysqld --print-defaults" 来打印出各种配置信息来确认。 升级的时候最好也升级类似Perl的 DBD::mysql 模块,同样,对PHP和Python而言也是一样。 2、从 MySQL 5.0 升级到 MySQL 5.1 从 5.0 升级到 5.1 的时候,必须要升级授权表。否则,可能某些存储过程无法运行。详情请看附录 "mysql_update MySQL升级时检查数据表"。 以下是从 5.0 升级到 5.1 需要注意的事项: 检查所有的变化,尤其注意那些标志为 "不兼容的变化" 的部分。详情请看附录 "mysql_update MySQL升级时检查数据表" ◆可能某些发布版本会改变授权表的机制
我的版本是5.7.30 升级到5.7.33
1.停服务,服务列表去找,如果有环境变量换成新的路径
2.将新的mysql解压到你想安装的路径下(与原路径相同就好)
3.将旧版本下的data文件和my.ini文件copy至新版路径下, 注意修改ini文件basedir和datadir
4.cd到新版的bin目录下,并执行如下命令
5.启动MYSQL57服务
升级mysql:mysql_upgrade -uroot -p 并输入密码
移除MySQL服务,可以不做
cd 到5.7.30的bin目录下,并执行如下命令
mysqld --remove mysql5.7
1.先用SQLyog之类的图形化数据库管理工具把数据库内的所有东西备份出来。backup database as sql dump。注意要选structure and data (结构和数据)。导出sql文件后,确认一下sql文件无误。
2.系统中可能存在自带的MySQL,采用命令进行强制删除
rpm –qa|grep mysql
rpm -e mysql-5.1.61 --nodeps 强制删除mysql 不考虑依赖关系 (此处根据上一步查询到的结果)
3.安装mysql
rpm -ivh MySQL-server-community-5.1.61-0.rhel5.x86_64.rpm (包名根据实际情况)
4.在MySQL配置文件/etc/my.cnf中根据实际需要添加
lower_case_table_names=1
skip-name-resolve
event_scheduler=1
default-character-set=utf8
wait_timeout=31536000
interactive_timeout=31536000
5.启动服务
cd /etc/init.d
./mysql restart
或者service mysqld restart
6.登陆MySQL
/usr/local/mysql/bin/mysql -u root –p
7.新增用户,根据允许访问的地址和用户,可能需要多次执行。
GRANT ALL PRIVILEGES ON *.* TO 'user'@'192.168.1.1(你的ip)' IDENTIFIED BY 'password' WITH GRANT OPTION;
flush privileges;
8.
用SQLyog之类的图形化数据库管理工具把数据库备份出来的sql语句执行一遍
9.完成
1.停止原来的MySQL服务
2.备份原来数据库的数据
3.卸载原来安装的程序
4.安装新版本的程序
5.数据还原