mysql5.5到8.0,以及Navicat的相关升级操作

  1. 先去mysql官网上下载mysql8.0的安装包.(官网下载三四百兆的那个,小的那个是联网下载.下载的时候可以右击复制链接,去迅雷下载,会快很多)
  2. 备份原有数据库

    相关命令(我直接备份实例上所有数据库)

    1、备份命令
    格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql
    例如: mysqldump -h 192.168.1.100 -p 3306 -uroot -ppassword --database cmdb > /data/backup/cmdb.sql
    
    
    2、备份压缩
    导出的数据有可能比较大,不好备份到远程,这时候就需要进行压缩
    格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 | gzip > 文件名.sql.gz
    例如: mysqldump -h192.168.1.100 -p 3306 -uroot -ppassword --database cmdb | gzip > /data/backup/cmdb.sql.gz
    
    
    3、备份同个库多个表
    格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 表1 表2 .... > 文件名.sql
    例如 mysqldump -h192.168.1.100 -p3306 -uroot -ppassword cmdb t1 t2 > /data/backup/cmdb_t1_t2.sql
    
    4、同时备份多个库
    格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --databases 数据库名1 数据库名2 数据库名3 > 文件名.sql
    例如:mysqldump -h192.168.1.100 -uroot -ppassword --databases cmdb bbs blog > /data/backup/mutil_db.sql
    
    5、备份实例上所有的数据库
    格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --all-databases > 文件名.sql
    例如:mysqldump -h192.168.1.100 -p3306 -uroot -ppassword --all-databases > /data/backup/all_db.sql
    
    6、备份数据出带删除数据库或者表的sql备份
    格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --add-drop-table --add-drop-database 数据库名 > 文件名.sql
    例如:mysqldump -uroot -ppassword --add-drop-table --add-drop-database cmdb > /data/backup/all_db.sql
    
    
    7、备份数据库结构,不备份数据
    格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --no-data 数据库名1 数据库名2 数据库名3 > 文件名.sql
    例如:mysqldump --no-data –databases db1 db2 cmdb > /data/backup/structure.sql
    

    资料来源:https://baijiahao.baidu.com/s?id=1612955427840289665&wfr=spider&for=pc
    注: 可能会报警告:-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.
    解决:命令中加入 --events --ignore-table=mysql.events即可(mysqldump默认是不备份事件表的,问题不大,即使不加也能备份)

  3. 卸载mysql程序
    1. 进入windows控制面板,程序和功能,卸载mysql
    2. 清除残余文件
      1. 原本mysql安装目录删除
      2. C:\ProgramData\MySQL(这里的ProgramData可能是隐藏的)
    3. 清理注册表
  4. 安装MySQL8.0
  5. 添加环境变量
  6. 在此之后出现了一系列mysql 的问题,现做如下笔记:

    1. Navicat无法连接数据库
    2. 看了某教程后修改了权限导致命令行也无法进入mysql了
    3. 报错:Access denied for user ‘root’@‘localhost’ (using password: YES)
    4. 涉及到mysql服务的启动,步骤如下:
      1. 以管理员身份 进入cmd命令行,进入mysql安装目录下的bin目录
      2. 执行mysqld --install
      3. 执行net start mysql启动mysql服务
    5. 出现了MySQL服务无法启动

      解决: 进入mysql 的bin目录,执行mysqld --console查看日志,发现报告 [Server] Can’t start server: Bind on TCP/IP port: 通常每个套接字地址( 协议/网络地址/端口)只允许使用一次。所以进入"服务"-发现有个名为MySQL80的服务,停止,启动上面的MySQL服务.

    6. 还是无法解决权限问题,所以重装了mysql8.0,试试升级Navicat的版本
    7. 解决
  7. 测试连接本地mysql,成功

  8. 导入备份:cmd执行语句mysql -uroot -p123456 <[路径名+文件名],其他相关语法如下

    导入所有数据库
    mysql -uroot -p123456 <all.sql
    
    导入数据库
    Mysql -uroot -p123456 book <book.sql #如果导入时,没有对应的数据库,需要你手动创建一下:
    mysql> create database book;
    
    使用source导入
    mysql> create database book;
    mysql> use book;
    mysql> source /root/book.sql
    
    导入表
    mysql> drop table books;
    mysql> source /root/books.sql; ##导入表时,不需要重新,创建表。要先进到相应的数据库中
    mysql> select * from books;
    
    导入表结构和数据
    mysql> create database book;
    mysql -uroot -p123456 book<booktable.sql
    mysql -uroot -p123456 book<bookdata.sql
    

    资料来源:https://blog.csdn.net/weixin_38777734/article/details/97908189

  9. 进入mysql进行数据库查询SHOW DATABASES;出现问题,报错如下

    The user specified as a definer (‘mysql.infoschema’@‘localhost’) does not exist

    发现是由于视图定义者还是原来的,所以这里不存在,继续百度,网上大部分的解决方案是mysql_upgrade -u root -p,尝试之后又提示错误如下

    The mysql_upgrade client is now deprecated. The actions executed by the upgrade client are now done by the server.
    To upgrade, please start the new MySQL binary with the older data directory. Repairing user tables is done automatically. Restart is not required after upgrade.
    The upgrade process automatically starts on running a new MySQL binary with an older data directory. To avoid accidental upgrades, please use the --upgrade=NONE option with the MySQL binary. The option --upgrade=FORCE is also provided to run the server upgrade sequence on demand.
    It may be possible that the server upgrade fails due to a number of reasons. In that case, the upgrade sequence will run again during the next MySQL server start. If the server upgrade fails repeatedly, the server can be started with the --upgrade=MINIMAL option to start the server without executing the upgrade sequence, thus allowing users to manually rectify the problem.

    问题原因是MySQL 8.0.16开始 mysql_upgrade 升级程序已经废弃,继续百度解决方案。
    网上所解释的新版更新方案试过,无果,最终重装了mysql,并且版本回到了8.0.15.

  10. 重启了电脑还是出现上述问题,但是现在是8.0.15版本,可以使用mysql_upgrade -u root -p命令,操作步骤如下:

    mysql -uroot -p
    输入密码
    mysql>SET GLOBAL innodb_fast_shutdown = 1;
    mysql>\q
    
    mysql_upgrade -u root -p
    

    经过漫长的等待,成功!!!

  11. 感动中国!!全部ok了!

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值