刚刚新购了一个服务器安装了 mysql,就是用 navicat 和本地的 mysql 命令就是死活连接不上
更新系统软件包索引: sudo apt-get update
安装 MySQL 服务器软件包:sudo apt-get install mysql-server
验证 MySQL 服务是否已经启动:sudo systemctl status mysql
使用 MySQL 客户端连接 MySQL: mysql 或mysql -u root -p,然后回车
修改 MySQL密码: ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘new_password’;
修改 root 的主机: use mysq; SELECT User, Host FROM user; update user set host = ‘%’ where user = ‘root’;
修改 MySQL 配置 vim /etc/mysql/mysql.conf.d/mysqld.cnf bind-address =0.0.0.0
重启 MySQL: systemctl restart mysql systemctl status mysql
查看 MySQL的3306端口netstat -antp | grep 3306
tcp 0 0 127.0.0.1:33060 0.0.0.0:* LISTEN 10597/mysqld
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 10597/mysqld
tcp 0 0 0.0.0.0:33060 0.0.0.0:* LISTEN 10597/mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 10597/mysqld
配置阿里云安全组入口开放3306等等等等方法
全部无效!!!
已经确认以下几点:
1、阿里云安全组
2、ufw 防火墙未打开
3、bind-address 也是0.0.0.0
4、MySQL root 的密码
5、MySQL root 的主机
还是未能连接上,问了 AI也无结果;后面经过搜索引擎查到使用ALTER USER ‘username’@’host’ IDENTIFIED WITH mysql_native_password BY ‘new_password’;因为 MySQL8默认的密码加密插件已经改成caching_sha2_password了,而我本地的 mysql 版本比较低,navicat 也没有找到mysql_native_password选项,所以连接不上
WITH mysql_native_password 是解决问题的关键。
发表回复