博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

采用MySQL_upgrade升级授权表方式升级

Posted on 2016-07-13 22:49  moss_tan_jun  阅读(1073)  评论(0编辑  收藏  举报

1.7.1 采用MySQL_upgrade升级授权表方式升级(1)

这种升级方式比较省事,通过MySQL_upgrade命令即可完成。下面来演示一下整个升级过程。

1)修改my.cnf配置文件,因为MySQL5.1里的参数在5.5版本里已经不识别了。
 

  1. #skip-locking  在5.5里已经不识别了,改成  
  2. skip-external-locking  
  3.  
  4. #log-long-format  在5.5里已经不识别了,改成  
  5. log-short-format  
  6.  
  7. #log_slow_queries  在5.5里已经不识别了,改成  
  8. slow-query-log  
  9.  
  10. #default-character-set = utf8  在5.5里已经不识别了,改成  
  11. character-set-server = utf8 
  12.  
  13. #注释掉default_table_type = MyISAM? 在5.5里已经不识别了  
  14.  
  15. #注释掉MyISAM_max_extra_sort_file_size  在5.5里已经不识别了  
  16.  
  17. #innodb_file_io_threads已经不识别了,改成  
  18. innodb_read_io_threads = 
  19. innodb_write_io_threads = 
  20.  
  21. # 把以前的built-in文件格式改为Barracuda  
  22. innodb_file_format = Barracuda 
  23. #注释掉同步的信息,否则启动时报错  
  24. #master-host = 192.168.110.20  
  25. #master-user = repl 
  26. #master-password = repl 
  27. #master-connect-retry=30 
  28. #另如果你采用了InnoDB-Plugin,还要注销掉  
  29. #ignore_builtin_innodb  
  30. #plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_i 
  31. nnodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_c  
  32. mpmem_reset=ha_innodb_plugin.so 

2)修改innodb_fast_shutdown等于0。先来看一下这个参数是做什么的。
 

解释:关闭MySQL时,设置为1,不会做清除脏页和插入缓冲区合并操作,也不会把脏页刷入磁盘。设置为0,会做清除脏页和插入缓冲区合并操作,并把脏页刷入磁盘,如此设置关闭速度是最慢的。设置为2,不会做清除脏页和插入缓冲区合并操作,也不会把脏页刷入磁盘,而是刷入redo log事务日志里,待其下次启动MySQL时再恢复,关闭速度是最快的。在做升级或降级操作时,应将其设置为0,保证数据的完整性,避免发生错误。该参数支持动态修改。

设置该参数的命令如下:
 

  1. set global innodb_fast_shutdown=0; 

关于innodb_fast_shutdown 参数的介绍,请参见MySQL5.5手册:
 

3)关闭MySQL服务,命令如下:
 

  1. /etc/init.d/MySQL stop或MySQLadmin -uroot -p123456 shutdown 

4)跳过MySQL授权表启动MySQL服务,命令如下:
 

  1. MySQLd --defaults-file=/etc/my.cnf --skip-grant-tables & 

5)执行更新程序,如下所示:
 

    1. [root@vm02 MySQL]# /usr/local/MySQL/bin/MySQL_upgrade  
    2. Looking for 'MySQL' as: bin/MySQL  
    3. Looking for 'MySQLcheck' as: bin/MySQLcheck  
    4. Running 'MySQLcheck' with connection arguments: '--port=3306' '--socket=/tmp/MySQL.sock'  
    5. Running 'MySQLcheck' with connection arguments: '--port=3306' '--socket=/tmp/MySQL.sock'  
    6. MySQL.columns_priv                                 OK  
    7. MySQL.db                                           OK  
    8. MySQL.event                                        OK  
    9. MySQL.func                                         OK  
    10. MySQL.general_log                                  OK  
    11. MySQL.help_category                                OK  
    12. MySQL.help_keyword                                 OK  
    13. MySQL.help_relation                                OK  
    14. MySQL.help_topic                                   OK  
    15. MySQL.host                                         OK  
    16. MySQL.ndb_binlog_index                             OK  
    17. MySQL.plugin                                       OK  
    18. MySQL.proc                                         OK  
    19. MySQL.procs_priv                                   OK  
    20. MySQL.servers                                      OK  
    21. MySQL.slow_log                                     OK  
    22. MySQL.tables_priv                                  OK  
    23. MySQL.time_zone                                    OK  
    24. MySQL.time_zone_leap_second                        OK  
    25. MySQL.time_zone_name                               OK  
    26. MySQL.time_zone_transition                         OK  
    27. MySQL.time_zone_transition_type                    OK  
    28. MySQL.user                                         OK  
    29. test.heartbeat                                     OK  
    30. test.log20111127                                   OK  
    31. test.log20111128                                   OK  
    32. test.log20111129                                   OK  
    33. test.log20111130                                   OK  
    34. test.log20111201                                   OK  
    35. test.log20111202                                   OK  
    36. test.log20111203                                   OK  
    37. test.log20111204                                   OK  
    38. test.log20111205                                   OK  
    39. test.log20111206                                   OK  
    40. test.log20111207                                   OK  
    41. test.t1                                                       OK  
    42. test.t2                                                       OK  
    43. Running 'MySQL_fix_privilege_tables'...  
    44. OK 
    45. .7.1 采用MySQL_upgrade升级授权表方式升级(2)

      6)再次关闭MySQL服务,命令如下:
       

      1. /etc/init.d/MySQL stop或MySQLadmin -uroot -p123456 shutdown 

      7)正常启动MySQL服务,命令如下:
       

      1. MySQLd_safe  --defaults-file=/etc/my.cnf --user=MySQL & 

      8)来查看一下版本,如下所示:
       

      1. MySQL> select version();  
      2. +-----------------------------------------------------------+  
      3. | version()                                                                |  
      4. +-----------------------------------------------------------+  
      5. | 5.5.20-enterprise-commercial-advanced-log |  
      6. +-----------------------------------------------------------+  
      7. 1 row in set (0.00 sec)  
      8. MySQL> select @@innodb_version;  
      9. +----------------------------+  
      10. | @@innodb_version |  
      11. +----------------------------+  
      12. | 1.1.8                            |  
      13. +----------------------------+  
      14. 1 row in set (0.00 sec) 

      至此,升级过程完毕。

      在升级过程中,有一个需要注意的问题,这是作者之前在安装时遇到的。RHEL5.3安装MySQL5.5时出现系统崩溃(如图1-24所示),当时的环境为:系统是RHEL5.3,64位,XFS分区,MySQL5.5.20二进制版本。

       

       

      系统崩溃时,作者用DELLDRAC远程管理卡抓的截屏如图1-25所示。

       

       

      可以看出,XFS文件系统在读写时出现报错。出现此问题的原因是,RHEL5.3系统内核未自带XFS文件系统,是通过往内核打补丁使之支持的,后来把系统升级为RHEL5.5,系统正常了,没有出现死机情况。

      注意

      RHEL5.5版本开始,内核支持XFS文件系统。