• MySQL Tips


    小弟初来乍到,分享一些工作学习中遇到的问题和解决方式,如有不准确或是有错误的地方,希望不吝赐教,谢过了。  --Dogtwo

    处理某问题时遇到的MySQL问题及解决方案.
    1.随着Project数量越来越多,DB的备份文件大小也越来越大,难以导入。
    之前导入备份DB时采用的方法有两种:
    1.将导出的.sql文件打开,复制内容执行。
    2.WorkBench import.
    问题:.sql文件大小过大,以上方法均不能正确执行,程序未响应。
    解决方法: source命令。
    涉及到的命令如下:
    mysql -u root -p
    输入密码
    source path/xxx.sql


    2.Prod DB备份成功导入本地,又出现了新的问题,客户端连接失败。
    客户端连接caching-sha2-password问题。
    MySQL Error: Authentication plugin 'caching_sha2_password' not supported by any of avaliable plugins
    产生原因:
    Server环境DB版本为MySQL 5.7.17
    本地环境为 MySQL 8
    由于SHA1算法被破解,所以MySQL8之后都升级了成了sha2算法。
    MySQL8默认的认证插件是cacheing_sha2_password插件,原来的版本使用的是mysql_native_password插件,这使得原来的MySQL连接客户端出现认证失败的问题。
    所以有两种方式可以解决问题:

    将服务端的加密方式修改为sha1

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码
    FLUSH PRIVILEGES; #刷新权限
    ALTER user 'root'@'localhost' identified by '123qwe'; #再重置下密码


    但笔者使用这种方法未生效,原因待查。另外,关于当前版本MySQL所使用的默认插件可以在MySQL Server自带库MySQL表user中查看(Plugin字段),这个库在DB查看工具中(WorkBench等)默认不显示,建议使用命令行手动查看。

    强客户端的加密方式修改为sha2 (未亲测)

    3.将MySQL安装为Service的方法
    将文件复制至C:Program FilesMySQL下,在bin文件中使用命令:
    Mysqld --install.


    4.Store Procedures DEFINER=`user`@`host`
    Store Procedures处理固定查询很方便,但是在不同环境间切换也会有一些问题。
    在生成SP时,若没有定义DEFINER,则系统会默认加上DEFINER=`user`@`host`,此处的user及host为当前Connect中的user及host,当不同环境中user或host不同时会产生error,此时更改SP中DEFINER定义或更换Connect连接对象即可解决。

    5.ErrorCode 1055

    这个Error有时会遇到,这里讲的很好,不再赘述了.

    未完待续..

    另 SHA1算法是由王小云教授(1966年8月出生于山东诸城,密码学家,中国科学院院士,清华大学高等研究院杨振宁讲座教授,清华大学密码理论与技术研究中心主任)及其团队攻破,这个团队还曾提出了关于MD5的破解的改进。有兴趣可以了解一下.

  • 相关阅读:
    Redis的主从复制
    JVM之jps命令
    ThreadLocal源码分析
    ThreadLocal初体验
    Redis的逐出算法
    Redis的删除策略
    DagScheduler 和 TaskScheduler
    数据挖掘的数据预处理
    日志实时收集和计算的简单方案
    spark ml 的例子
  • 原文地址:https://www.cnblogs.com/dogtwo0214/p/10177840.html
Copyright © 2020-2023  润新知