实现mysql远程访问

时间:2022-09-17 18:58:18

最近两天在搞mysql的主从复制,磕磕碰碰查找了很多资料与方法,终于实现了主从复制,首先我先记录一下怎么实现mysql的远程访问。

首先交代一下环境我的环境:我用的云服务器系统为ubuntu 16.04。mysql的版本均为5.7。然后我的本地系统也为ubuntu 17.04。

首先要让云服务器mysql的相关端口放开。一般的云服务器都会有安全组,你需要在那里配置,把3306(mysql的默认端口)端口放开。

接着是配置mysql远程连接,默认状态下mysql是不能远程连接的,首先要改mysql的表。

mysql -uroot -p

进入mysql,然后输入

#改写mysql表里面,root用户的host行
update user set host = '%' where user = 'root';
#查询改写是否成功
SELECT host, user from user;

如果显示下面的样式证明已经成功连接上了。

+----------------+------------------+
| host | user |
+----------------+------------------+

| % | root |
| localhost | debian-sys-maint |
| localhost | mysql.sys |
| localhost | root |
+----------------+------------------+

接着使用下面命令打开mysql服务器的配置文件:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

把以下这一行代码用#注释掉

bind-address           = 127.0.0.1

接着还要给远程连接的用户赋予权利。

#赋予权限,******是你设置的远程连接的密码,%的意思是任何的计算机都可以连接到你的mysql服务器,可以把%改成对应的电脑ip或者网关,这样只有相应的电脑才能连接得上。
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "*******";
#重新载入权限
mysql> flush privileges;

做完以后再重启以下mysql就行了

接下来你可以通过下面代码连接你的服务器了

#那个ip为你的远程主机ip,输入的密码为你设置的密码。
mysql -h 123.123.123.123 -uroot -p