MySQL的使用

MySQL的连接

正常使用中直接通过 TCP/IP 协议连接 MySQL Server,公司的连接好像是用 ssh 连接服务器,而这台服务器有权限去连接线上的 MySQL Server。所以在使用 workbench 的时候新建连接时采用了 standard TCP/IP over SSH。连接细节技术总监大概交代过后,自己试了下就 success connection 了。应该没什么难的,网上也应该会有很多文章,文档。

连接遇到的一些问题

  • navicat SSH 连接报错expected key exchange group packet from server

    解决方法,在服务器的ssh配置文件里添加下面的代码

    # Add this to /etc/ssh/sshd_config
    KexAlgorithmsncurve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521diffie-hellman-group14-sha1
    # systemctl restart sshd
    参考链接

  • navicat 连接报错2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found

原因,在电脑上新装的mysql是8.0.x版本的,默认root用户的密码加密使用了plugin caching_sha2_password,而navicat不支持。把插件设置改回默认的 mysql_native_password

1
2
3
4
brew list mysql #查询mysql的配置文件my.cnf的路径
vi /....../my.cnf #my.cnf的绝对路径
#新一行添加 default_authentication_plugin=mysql_native_password
brew services restart mysql

or

1
ALTER USER 'root'@'host' IDENTIFIED WITH mysql_native_password BY 'password'; #从命令行进入mysql数据库后更改