精华内容
下载资源
问答
  • MySQL 版本升级

    2019-11-06 16:22:46
    MySQL 版本升级

    前提

    • 注意对旧版本中 MySQL 的数据进行备份操作

     

    安装包下载

    本次使用 zip 包的方式进行升级, 下载 zip 包, 解压到指定目录(后面${MYSQL_HOME}环境变量需要修改为此目录路径)

     

    新旧版本安装路径说明

    • 旧版本安装路径: ${MYSQL_HOME}=C:\Program Files\mysql-5.7.22-winx64
    • 新版本安装路径: ${MYSQL_HOME}=C:\soft\mysql-8.0.18-winx64

     

    旧版本卸载操作

    # 进入旧版本的 mysql 安装目录的 bin 目录下
    cd C:\Program Files\mysql-5.7.22-winx64
    
    # 停止 mysql 服务
    net stop mysql
    
    # 移除 mysql 服务
    mysqld --remove mysql
    

     

    新版本安装操作

    # 修改环境变量 Path 中 MySQL 的指向(MYSQL_HOME 环境变量指向新版本的安装目录)
    PATH=${MYSQL_HOME}/bin
    
    # 在新版本的 mysql 安装目录(${MYSQL_HOME})下新建文件(内容见<my.ini 文件内容>)
    touch my.ini
    
    # 进入新版本的mysql 安装目录(如果是 zip 包安装则进入 zip 包的解压目录)
    cd C:\\soft\mysql-8.0.18-winx64\bin
    
    # 安装 mysql 服务
    mysqld --install mysql
    
    # 初始化 mysql 信息, 会在 mysql 安装目录下生成 data 目录(data文件夹会自动生成)
    # 注意会打印出root@localhost用户的密码(Mysql 5.8: root@localhost is created with an empty password)
    mysqld --initialize-insecure --console
    
    # 启动 mysql 服务
    net start mysql
    
    # 进行 'root'@'localhost' 用户的密码修改
    mysql -u root -p
    select host,user,plugin,authentication_string from mysql.user;
    # 设置 root@localhost 用户的密码
    set password = 'root';
    flush privileges;
    
    # 创建新用户 'root'@'%' 并进行授权
    create user 'root'@'%' identified by '123456789';
    grant all privileges on *.to 'root'@'%';
    

    my.ini 文件内容

    [mysqld]
    # 绑定IPv4
    #bind-address = 0.0.0.0
    # 设置mysql的安装目录,即你解压缩安装包的位置
    basedir = "C:\\soft\mysql-8.0.18-winx64"
    # 设置mysql数据库的数据的存放目录
    datadir = "C:\\soft\mysql-8.0.18-winx64\data"
    # 设置端口号
    port = 3306
    # 允许最大连接数
    max_connections = 200
    # 设置字符集为utf8
    # default-character-set = utf8
    character-set-server = utf8
    # loose-default-character-set = utf8
    # 开启查询缓存
    explicit_defaults_for_timestamp = true
    # windows下区分表名大小写(0:不区分,2区分(5.7版本))
    # lower_case_table_names=2
    # sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    log-bin=C:\\log\mysql-bin
    # binglog-format=Row
    server-id=1
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    
    [client] 
    # 设置客户端字符集
    port=3306
    default-character-set = utf8
    # character-set-client = utf8
    # loose-default-character-set = utf8
    [WinMySQLadmin] 
    Server = "C:\\soft\mysql-8.0.18-winx64\bin\mysqld.exe"
    

    注意修改 basedir & datadir & log-bin & Server 属性的值

     

    错误排查

    1. Navicat 连接 Mysql 服务报错: 1251 client does not support …
    # 更改加密方式
    ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
    # 更新用户密码
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456789';
    # 刷新权限
    FLUSH PRIVILEGES;
    
    展开全文
  • MySQL版本升级

    2019-03-22 11:06:00
    MySQL版本升级 MySQL使用过程中常因为某些bug或者新特性需求进行版本升级,生产环境一般升级有两种方法,原地升级和逻辑升级,逻辑升级就是比较纯粹的导入导出,耗时较长,最稳当。原地升级则是用新版本拉起旧版本...

    MySQL版本升级

    MySQL使用过程中常因为某些bug或者新特性需求进行版本升级,生产环境一般升级有两种方法,原地升级和逻辑升级,逻辑升级就是比较纯粹的导入导出,耗时较长,最稳当。原地升级则是用新版本拉起旧版本数据后更新元数据,耗时少,可能很小概率会有问题,这里我们走一遍原地升级的流程。

    Ⅰ、整体流程

    停库 ---> 备份 ---> 拉起 ---> 更新

    Ⅱ、上手

    2.1 查看当前MySQL版本

    [root@master mysql]# mysql -e "\s" |grep 'Server version' |awk '{print $3}'
    5.6.39

    2.2 停库&&备份

    注意停库的时候慢一点,最大程度保证数据完整性(full purge and a change buffer merge before shutting down)

    [root@master mysql]# mysql -e "SET GLOBAL innodb_fast_shutdown = 0;"
    [root@master mysql]# /etc/init.d/mysql.server stop
    Shutting down MySQL.. SUCCESS! 
    [root@master mysql]# cp -r /data/mysql /data/mysql_bak

    2.3 新版本启动

    [root@master local]# unlink mysql
    [root@master local]# ln -s mysql-5.7.23-el7-x86_64/ mysql
    [root@master local]# /etc/init.d/mysql.server start
    Starting MySQL.. SUCCESS!

    2.4 更新元数据

    这里用了-s参数(--upgrade-system-tables),表示只更新系统表(元数据表),不更新数据,数据方面高版本是兼容低版本的,具体用法参考mysql_upgrade --help
    更新完记得重启一哈

    [root@master local]# mysql_upgrade -s
    The --upgrade-system-tables option was used, databases won't be touched.
    Checking if update is needed.
    Checking server version.
    Running queries to upgrade MySQL server.
    Upgrading the sys schema.
    Upgrade process completed successfully.
    Checking if update is needed.
    [root@master ~]# /etc/init.d/mysql.server restart
    Shutting down MySQL.... SUCCESS! 
    Starting MySQL. SUCCESS! 

    2.5 没关系,咱们看结果

    [root@master local]# mysql -e "\s" |grep 'Server version' |awk '{print $3}'
    5.7.23

    Ⅲ、插两句

    ①可以跨大版本升级,但必须先备份,必须
    ②互联网公司升级方案:主从--->升级从--->主从互换--->升级原主
    ③降级也是用这个命令,mysql_upgrade -s,一般不降级,了解一下,小版本之间可以降级 5.7.2到5.7.1这种 ,大版本之间是不可以的

    转载于:https://www.cnblogs.com/---wunian/p/10576998.html

    展开全文
  • mysql版本升级

    万次阅读 2018-09-17 13:56:00
    MYSQL 升级方式有两种,一种叫做In-place Upgrade,另一种叫logical upgrade(逻辑升级方式)。 Logical upgrade:利用mysqldump直接导出sql文件,然后倒入到新库中,适用于跨度大的版本升级方案,做法相对安全,并能...

    MYSQL 升级方式有两种,一种叫做In-place Upgrade,另一种叫logical upgrade(逻辑升级方式)。

    Logical upgrade:利用mysqldump直接导出sql文件,然后倒入到新库中,适用于跨度大的版本的升级方案,做法相对安全,并能整理表中碎片。但如果有数据量较大的库需要mysqldump导出,时间就会很长。

    In-place upgrade:他的工作方法简单快速,就是直接替换掉原来版本的MySQL的安装目录和my.cnf配置文件,利用mysql_upgrade 脚本来完成系统表的升级。

    注意:跨小版本升级可以使用in-place这种方法。

     

    1、in-place upgrade

    1.1.     环境介绍

    IP: 172.16.10.22

    数据目录:/mydata/mysql/mysql3306/data

    安装目录:/usr/local/mysql5.6

    配置文件:/etc/my3306.cnf

    当前版本:5.6.38

     

    1.2.     升级(5.6.38升级到5.7.20)

    a)    设置INNODB_FAST_SHUTDOWN参数设置为0

     

    set global innodb_fast_shutdown=0;

     

     

    innodb_fast_shutdown有0,1,2三个值。参数0代表mysql关闭,innodb需要完成所有full purge和merge insert buffer操作,这个过程需要一定的时间,有事可能会花上几个小时。参数值为1是该参数的默认值,表示关闭mysql时不完成full purge和merge insert buffer操作,但是缓冲池中的脏页还是会写到磁盘中。参数值为2时,表示既不完成full purge和merge insert buffer 操作,也不将缓冲池中的脏页刷新到磁盘,而是将日志写入到日志文件中。

     

    b)   关闭mysql服务

    mysqladmin -S /tmp/mysql3306.sock -uroot -pmysql shutdown

     

     

    c)    替换mysql的安装文件和参数以及路径

     

    cp /soft/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz /usr/local/

    tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

    unlink mysql5.6

    ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql5.7

    mv /etc/my3306.cnf /etc/my3306.cnf.bak

     

    vi /root/.bash_profile

    export PATH=$PATH:/usr/local/mysql5.7/bin

    source /root/.bash_profile

     

    cd /mydata/mysql/

    mv mysql3306 mysql3307

    由于我的数据文件路径是:/mydata/mysql/mysql3306/data

    现在需要修改成:

    /mydata/mysql/mysql3307/data

     

    设置新的my3307.cnf文件(具体情况具体修改):

     

    [client]

    port = 3307

    socket = /tmp/mysql5.7.sock

    [mysql]

    prompt="\u@db \R:\m:\s [\d]> "

    no-auto-rehash

    [mysqld]

    user = mysql

    port = 3307

    basedir = /usr/local/mysql5.7

    datadir = /mydata/mysql/mysql3307/data

    log_bin_trust_function_creators=1

    socket = /tmp/mysql3307.sock

    lower_case_table_names=1

    character-set-server = utf8mb4

    skip_name_resolve = 1

    innodb_undo_log_truncate=1

    open_files_limit = 65535

    back_log = 1024

    max_connections = 500

    max_connect_errors = 1000000

    table_open_cache = 1024

    table_definition_cache = 1024

    table_open_cache_instances = 64

    thread_stack = 512K

    external-locking = FALSE

    max_allowed_packet = 32M

    sort_buffer_size = 4M

    join_buffer_size = 4M

    thread_cache_size = 768

    query_cache_size = 0

    query_cache_type = 0

    interactive_timeout = 600

    wait_timeout = 600

    tmp_table_size = 32M

    max_heap_table_size = 32M

    slow_query_log = 1

    slow_query_log_file = /mydata/mysql/mysql3307/logs/slow.log

    log-error = /mydata/mysql/mysql3307/logs/error.log

    long_query_time = 0.1

    server-id = 3307101

    log-bin = /mydata/mysql/mysql3307/logs/mysql-binlog

    sync_binlog = 1

    binlog_cache_size = 4M

    max_binlog_cache_size = 1G

    max_binlog_size = 1G

    expire_logs_days = 7

    master_info_repository = TABLE

    relay_log_info_repository = TABLE

    gtid_mode = on

    enforce_gtid_consistency = 1

    log_slave_updates

    binlog_format = row

    relay_log_recovery = 1

    relay-log-purge = 1

    key_buffer_size = 32M

    read_buffer_size = 8M

    read_rnd_buffer_size = 4M

    bulk_insert_buffer_size = 64M

    lock_wait_timeout = 3600

    explicit_defaults_for_timestamp = 1

    innodb_thread_concurrency = 0

    innodb_sync_spin_loops = 100

    innodb_spin_wait_delay = 30

    transaction_isolation = REPEATABLE-READ

    innodb_buffer_pool_size = 1024M

    innodb_buffer_pool_instances = 8

    innodb_buffer_pool_load_at_startup = 1

    innodb_buffer_pool_dump_at_shutdown = 1

    innodb_data_file_path = ibdata1:1G:autoextend

    innodb_flush_log_at_trx_commit = 1

    innodb_log_buffer_size = 32M

    innodb_log_file_size = 2G

    innodb_log_files_in_group = 2

    innodb_max_undo_log_size = 4G

    innodb_io_capacity = 2000

    innodb_io_capacity_max = 4000

    innodb_flush_neighbors = 0

    innodb_write_io_threads = 8

    innodb_read_io_threads = 8

    innodb_purge_threads = 4

    innodb_page_cleaners = 4

    innodb_open_files = 65535

    innodb_max_dirty_pages_pct = 50

    innodb_flush_method = O_DIRECT

    innodb_lru_scan_depth = 4000

    innodb_checksum_algorithm = crc32

    innodb_lock_wait_timeout = 10

    innodb_rollback_on_timeout = 1

    innodb_print_all_deadlocks = 1

    innodb_file_per_table = 1

    innodb_online_alter_log_max_size = 4G

    internal_tmp_disk_storage_engine = InnoDB

    innodb_stats_on_metadata = 0

    innodb_status_file = 1

    innodb_status_output = 0

    innodb_status_output_locks = 0

    performance_schema = 1

    performance_schema_instrument = '%=on'

    #innodb monitor

    innodb_monitor_enable="module_innodb"

    innodb_monitor_enable="module_server"

    innodb_monitor_enable="module_dml"

    innodb_monitor_enable="module_ddl"

    innodb_monitor_enable="module_trx"

    innodb_monitor_enable="module_os"

    innodb_monitor_enable="module_purge"

    innodb_monitor_enable="module_log"

    innodb_monitor_enable="module_lock"

    innodb_monitor_enable="module_buffer"

    innodb_monitor_enable="module_index"

    innodb_monitor_enable="module_ibuf_system"

    innodb_monitor_enable="module_buffer_page"

    innodb_monitor_enable="module_adaptive_hash"

    [mysqldump]

    quick

    max_allowed_packet = 32M

     

    d)   启动mysql服务

     

    启动过程需要加上 --skip-grant-tables和--skip-networking 参数,来保证没有任何的应用连接,让升级过程更加安全。

    /usr/local/mysql5.7/bin/mysqld_safe --defaults-file=/etc/my3307.cnf --skip-grant-tables --skip-networking &

     

     

    错误日志很多报错:

     

     

    证明系统没有升级系统表信息。

     

    e)   升级系统数据字典信息

     

    /usr/local/mysql5.7/bin/mysql_upgrade -S /tmp/mysql3307.sock

     

     

    没有报错表示系统表升级成功。

     

    f)   正常启动MYSQL不使用--skip-grant-tables和--skip-networking 参数

    /usr/local/mysql5.7/bin/mysqladmin -S /tmp/mysql3307.sock -uroot -pmysql shutdown

     

    /usr/local/mysql5.7/bin/mysqld_safe --defaults-file=/etc/my3307.cnf &

     

    /usr/local/mysql5.7/bin/mysql -S /tmp/mysql3307.sock -uroot -pmysql

     

     

    查看sys库也存在:

     

     

    2、logical upgrade

    第二种办法多用于跨度大的版本升级,我一般是用于一台服务器迁移到另一台服务器:

    例如,我从5.1.72升级到5.7.20

     

    首先利用MySQLDUMP 出数据库文件,由于版本差距太大,我把导出的SQL文件引擎全部换成INNODB。

     

    在5.1.72库上执行:

    mysql -S /tmp/mysql.sock  -uroot -p smsdbtest > /soft/smsdbtest.sql

     

    把导出的文件传到安装的5.7.20库上进行导入:

     

     

    导入:

    mysql -S /tmp/mysql3307.sock -uroot -p smsdbtest < /soft/smsdbtest.sql

     

     

    导入成功,并进行检查。

     

    转载于:https://www.cnblogs.com/hmwh/p/9661731.html

    展开全文
  • Mysql版本升级

    2018-05-29 05:04:39
    MySQL 升级要考虑什么? 如何进行升级MySQL 升级要考虑什么? 不能为了升级升级,要有足够的理由。 在对 MySQL 进行升级前要考虑什么? 升级可以给业务带来的益处 是否可以解决业务上某一方面的痛点 是否...
    • MySQL 升级要考虑什么?
    • 如何进行升级?

    MySQL 升级要考虑什么?

    不能为了升级而升级,要有足够的理由。

    • 在对 MySQL 进行升级前要考虑什么?
      • 升级可以给业务带来的益处
        • 是否可以解决业务上某一方面的痛点
        • 是否可以解决运维上某一方面的痛点
      • 升级可能给业务带来的影响
        • 对原业务程序的支持是否有影响
        • 对原业务程序的性能是否有影响
      • 数据库升级方案的制定
        • 评估受影响的业务系统
        • 升级的详细步骤
        • 升级后的数据库环境检查
        • 升级后的业务检查
      • 升级失败的回滚方案
        • 升级失败回滚的步骤
        • 回滚后的数据库环境检查
        • 回滚后的业务检查

    如何进行升级?

    • MySQL 升级步骤?
      • 对待升级数据库进行备份
      • 升级Slave服务器版本(关闭老版本,启动新版本)
      • 手动进行主从切换
      • 升级MASTER服务器版本
      • 升级完成后进行业务检查
    展开全文
  • mysql版本升级方法

    2016-01-12 10:33:27
    mysql版本升级方法 
  • MySQL版本升级20201128

    2021-01-03 14:14:46
    MySQL版本升级 概述 MySQL版本升级这项工作对DBA来说是十分必要的,因为每个MySQL 版本都有自己支持的生命周期,在超过生命周期之后,官方就不再提供服务支持。而且新版本的性能与特性比老版本的 MySQL提升得太多...
  • 主要为大家详细介绍了ubuntu下mysql版本升级到5.7的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 这篇mysql版本升级写的挺详细的,一般情况下应该都能成功升级,只是我在最后启动mysql的时候报无法启动,服务没有报任何错误 看网上的解决方法都试过了包括不要自己创建data目录,要让初始化后自己生成,修改my....
  • Windows系统下mysql版本升级 mysql5--mysql8问题解决mysql8下载复制原来mysql的my.ini文件到解压的根目录下安装mysql服务启动mysql服务Navicat连接 问题解决 这篇文章记录了在升级mysql时遇到的各种问题,包括安装...
  • 文章目录MYSQL-mysql版本升级到5.7并迁移数据1. 安装mariadb数据库,并测试登录2.查看test数据库并备份数据3. 卸载mariadb数据库4. 安装高版本mysql数据库5. 恢复数据 MYSQL-mysql版本升级到5.7并迁移数据 1. 安装...
  • phpStudy的MySQL版本升级方法 phpstudy里没有地方可以设置mysql数据库,很多人都疑惑在phpstudy里怎么升级mysql数据库版本,本文就教你如何在phpstudy中升级mysql的版本。 PhpStudy集成环境中的mysql数据库的版本...
  • phpstudy安装的mysql版本一般都是5.5或5.4的,但是有时候做项目又必须用到mysql5.7版本,所以我们现在来看一下如何在phpstudy的环境下将mysql版本升级至5.7 温馨提醒: 先删掉所有环境变量,如果是之前有的话,...
  • ![图片说明](https://img-ask.csdn.net/upload/201608/31/1472574549_774007.png) !...如何能使mysql版本升级到高版本 他们之间传输数据的时候,高版本数据库定义时间戳的列不能导到高版本的数据库里
  • 前提:为什么要升级到5.7版本? 因为博主在5.6版本上执行脚本时候报出异常:to your MySQL server version for the right syntax to use near 'json DEFAULT... 大概意思是5.6版本不支持原生...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,355
精华内容 2,142
关键字:

mysql版本升级

mysql 订阅