如何升级 MySQL
发布网友
发布时间:2022-04-20 07:38
我来回答
共3个回答
懂视网
时间:2022-05-01 11:21
character-set-server = utf8
#注释掉default_table_type = MyISAM? 在5.5里已经不识别了
#注释掉MyISAM_max_extra_sort_file_size 在5.5里已经不识别了
#innodb_file_io_threads已经不识别了,改成
innodb_read_io_threads = 8
innodb_write_io_threads = 8
# 把以前的built-in文件格式改为Barracuda
innodb_file_format = Barracuda
#注释掉同步的信息,否则启动时报错
#master-host = 192.168.110.20
#master-user = repl
#master-password = repl
#master-connect-retry=30
#另如果你采用了InnoDB-Plugin,还要注销掉
#ignore_builtin_innodb
#plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_i
nnodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_c
mpmem_reset=ha_innodb_plugin.so
2)修改innodb_fast_shutdown等于0。先来看一下这个参数是做什么的。
解释:关闭MySQL时,设置为1,不会做清除脏页和插入缓冲区合并操作,也不会把脏页刷入磁盘。设置为0,会做清除脏页和插入缓冲区合并操作,并把脏页刷入磁盘,如此设置关闭速度是最慢的。设置为2,不会做清除脏页和插入缓冲区合并操作,也不会把脏页刷入磁盘,而是刷入redo log事务日志里,待其下次启动MySQL时再恢复,关闭速度是最快的。在做升级或降级操作时,应将其设置为0,保证数据的完整性,避免发生错误。该参数支持动态修改。
设置该参数的命令如下:
- set global innodb_fast_shutdown=0;
关于innodb_fast_shutdown 参数的介绍,请参见MySQL5.5手册:
3)关闭MySQL服务,命令如下:
- /etc/init.d/MySQL stop或MySQLadmin -uroot -p123456 shutdown
4)跳过MySQL授权表启动MySQL服务,命令如下:
- MySQLd --defaults-file=/etc/my.cnf --skip-grant-tables &
5)执行更新程序,如下所示:
- [root@vm02 MySQL]# /usr/local/MySQL/bin/MySQL_upgrade
- Looking for ‘MySQL‘ as: bin/MySQL
- Looking for ‘MySQLcheck‘ as: bin/MySQLcheck
- Running ‘MySQLcheck‘ with connection arguments: ‘--port=3306‘ ‘--socket=/tmp/MySQL.sock‘
- Running ‘MySQLcheck‘ with connection arguments: ‘--port=3306‘ ‘--socket=/tmp/MySQL.sock‘
- MySQL.columns_priv OK
- MySQL.db OK
- MySQL.event OK
- MySQL.func OK
- MySQL.general_log OK
- MySQL.help_category OK
- MySQL.help_keyword OK
- MySQL.help_relation OK
- MySQL.help_topic OK
- MySQL.host OK
- MySQL.ndb_binlog_index OK
- MySQL.plugin OK
- MySQL.proc OK
- MySQL.procs_priv OK
- MySQL.servers OK
- MySQL.slow_log OK
- MySQL.tables_priv OK
- MySQL.time_zone OK
- MySQL.time_zone_leap_second OK
- MySQL.time_zone_name OK
- MySQL.time_zone_transition OK
- MySQL.time_zone_transition_type OK
- MySQL.user OK
- test.heartbeat OK
- test.log20111127 OK
- test.log20111128 OK
- test.log20111129 OK
- test.log20111130 OK
- test.log20111201 OK
- test.log20111202 OK
- test.log20111203 OK
- test.log20111204 OK
- test.log20111205 OK
- test.log20111206 OK
- test.log20111207 OK
- test.t1 OK
- test.t2 OK
- Running ‘MySQL_fix_privilege_tables‘...
- OK
-
.7.1 采用MySQL_upgrade升级授权表方式升级(2)
6)再次关闭MySQL服务,命令如下:
- /etc/init.d/MySQL stop或MySQLadmin -uroot -p123456 shutdown
7)正常启动MySQL服务,命令如下:
- MySQLd_safe --defaults-file=/etc/my.cnf --user=MySQL &
8)来查看一下版本,如下所示:
- MySQL> select version();
- +-----------------------------------------------------------+
- | version() |
- +-----------------------------------------------------------+
- | 5.5.20-enterprise-commercial-advanced-log |
- +-----------------------------------------------------------+
- 1 row in set (0.00 sec)
- MySQL> select @@innodb_version;
- +----------------------------+
- | @@innodb_version |
- +----------------------------+
- | 1.1.8 |
- +----------------------------+
- 1 row in set (0.00 sec)
至此,升级过程完毕。
在升级过程中,有一个需要注意的问题,这是作者之前在安装时遇到的。RHEL5.3安装MySQL5.5时出现系统崩溃(如图1-24所示),当时的环境为:系统是RHEL5.3,位,XFS分区,MySQL5.5.20二进制版本。
系统崩溃时,作者用DELLDRAC远程管理卡抓的截屏如图1-25所示。
可以看出,XFS文件系统在读写时出现报错。出现此问题的原因是,RHEL5.3系统内核未自带XFS文件系统,是通过往内核打补丁使之支持的,后来把系统升级为RHEL5.5,系统正常了,没有出现死机情况。
注意
RHEL5.5版本开始,内核支持XFS文件系统。
采用MySQL_upgrade升级授权表方式升级
标签:
热心网友
时间:2022-05-01 08:29
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发布事项中提到的升级需要注意的地方,如果发现不能直接升级的话,就先用 mysqlmp 将数据导出来,然后再导回去。 如果担心升级失败,就先把旧版本的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升级时检查数据表" ◆可能某些发布版本会改变授权表的机制
热心网友
时间:2022-05-01 09:47
mysql
无法平滑升级,mysql升级需要先备份数据、停机,导入数据,而且mysql的安装时间一般都较长。只要mysql没有出现重大的安全问题,一般不需要升级。