赞
踩
在mac上弄了一个centso7.9的虚拟机,打算学习一下mysql数据库。
先吐槽一下装mysql的艰辛历程:
我的虚拟机是arm架构,起初安装的是8.0.34版本,未曾想到这个版本安装完毕之后有很大的问题,就是啥啥文件都没有呗,感觉装了一个假的mysql,后来决定安装8.0.28版本,很顺利,很舒服。不知道大家有没有遇到过这个问题,求指点。
我的需求是想在本机连接上虚拟机中的mysql数据库,分享一下这个 过程遇到的一些问题和解决方案供大家参考。
我的mac本机安装的mysql版本也是8.0.28。
linux终端输入:
netstat -apn | grep 3306
查看3306端口(因为数据库是通过3306端口连接的),我这里是没有占用的,如果你的出现127.0.0.1:3306
,这说明这个端口被127.0.0.1
占用了,可能需要你查看一下该端口的进程然后kill
掉。
[root@localhost etc]# netstat -apn|grep 3306
tcp6 0 0 :::33060 :::* LISTEN 19130/mysqld
tcp6 0 0 :::3306 :::* LISTEN 19130/mysqld
然后再检查3306端口,如果出现上图的:::3306
,则说明3306
的端口可以被连接。
如果你继续尝试连接,结果发现报了错误:
ERROR 1130 (HY000): Host '192.168.252.129' is not allowed to connect to this MySQL server
这说明root用户名不能远程登陆,这就需要你**设置远程访问权限**。
linux连接上mysql, 将数据库中的 user
表中用户名为 ‘root’ 的用户的 host
字段更新为 ‘%’,意味着用户可以从任何主机访问数据库。
在 MySQL 中,
host
字段用于指定允许连接到数据库的主机地址。当host
字段的值为 ‘%’ 时,表示该用户可以从任何主机连接到数据库,这通常用于授权超级用户 ‘root’ 从任何地方连接到 MySQL 数据库。
USE mysql;
UPDATE USER SET host='%' WHERE user='root';
FLUSH PRIVILEGES; //刷新访问权限表
查看是否更改成功:
mysql> select host, user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | root |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+------------------+
4 rows in set (0.00 sec)
完成上面两步如果还是没有连接,可能是防火墙打开了,这个时候你需要关闭防火墙,远端才能连接上。
查看一下防火墙状态:
service iptables status
如果你没有iptables这个文件,那么参照这个解决方案安装iptables-services
服务 iptables 信息读取出错:没有那个文件或目录
然后我们打开3306端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
打开端口后,需要重启一下防火墙:
systemctl restart firewalld
查看已打开的防火墙端口:可以看见我们已经是打开了3306这个端口
[root@localhost etc]# firewall-cmd --list-ports
3306/tcp
另外如果想要关闭端口只需要
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
- 1
然后重启防火墙就OK了
最开始使用的是sequel pro,连接的时候出现了问题
在数据库中更改一下密码的加密模式
ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
这里的yourusername
改为root,如果需要远程连接的话localhost
更改成%
,yourpassword
填写为你的密码。
然后再重试远程连接,应该就可以了。
好不容易连接上sequel pro,结果告诉我出现了未知错误,这咋办
晕,决定放弃使用sequel pro。了解到sequel pro已经很久没有维护了,但是 Sequel Pro 的合作者 Jakub Kašpar 自己开发了sequel Ace,这个在app store能下载,果然顺利连上了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。