嗯。以下是我踩了好几个小时的所有坑总结出来的血泪史。我希望我能帮你少踩几个坑。正常情况下,一步一步地,不会有任何问题。
[En]
Yeah. The following is the history of blood and tears summed up by all the pits I have stepped on for many hours. I hope I can help you step in fewer pits. Normally, step by step, there won’t be any problems.
背景
用的是百度云的云服务器(其他云服务器同理),系统是Ubuntu 20.04 LTS,Mysql版本8.0+,需求是在Windows上开发,可以随时远程连接读写服务器上的Mysql
建立到服务器的远程连接
用ssh客户端或者云服务器厂家提供的网页版控制台都行,只要你能连上服务器就行
顺便私心推荐一个好看又好用的ssh客户端:NextSSH
用apt-get安装mysql
先更新一下apt仓库:
sudo apt-get update
顺便说一下,因为不知道你们用的都是什么账户,我也搞不清楚哪些指令权限要求比较高,所以我所有指令都加 sudo
了,这样不管是谁复制粘贴都能直接用,不会出现权限问题。
然后安装mysql-server:
sudo apt-get install mysql-server -y
到这一步其实mysql就已经安完了并且自动启动了,可以看一下:
sudo service mysql status
设置root密码
此时mysql的root账户没有设置密码,可以直接用 mysql
指令登录:
设置一下root的密码(mynewpassword
部分改成你自己要设置的密码):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';
退出,输入 mysql
指令发现不能直接登录了:
目前为止可以直接在服务器上用mysql了。
编辑配置文件监听远程连接
默认情况下,MySQL 数据库仅监听本地连接,如果想让外网远程连接到数据库,我们需要修改配置文件,让 MySQL 可以监听远程固定 ip 或者监听所有远程 ip。
这里需要使用一个命令行文本编辑器,我用的vim所以就教一下vim,你们要是会nano或者别的自然知道该怎么弄,要是听不懂就照我的来。安装vim:
sudo apt-get install vim -y
然后用vim打开 mysqld.cnf
配置文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到 bind-address = 127.0.0.1
这一行:
这个值是 127.0.0.1
的时候只监听本地连接,改成 0.0.0.0
可以监听所有连接,或者也可以改成仅允许指定ip连接都可以。
现在vim是阅读模式,按一下 i
进入编辑模式,然后用上下左右键定位到这行(最下面显示INSERT的时候表明处于编辑模式,按Esc可退出返回到阅读模式):
改完之后按Esc退出编辑模式,然后输入 :wq
保存退出。(若输入 :q
则退出但不保存)
重启mysql service使刚才的修改生效:
sudo service mysql restart
允许root账号使用远程连接
mysql默认只允许root账号在本地使用,需要修改一下允许远程使用root账号(没试过其他账号的情况,但原理一致)。先登录mysql:
mysql -u root -p
输入密码,登录。
然后选择 mysql
数据库:
use mysql;
查看账号的主机权限:
select user, host from user;
host
处为 localhost
时只允许本地使用,改成 %
即可远程使用:
update user set host='%' where user='root';
刷新权限:
FLUSH PRIVILEGES;
退出mysql。
检查ubuntu自带的防火墙状态
sudo ufw status
如果是 inactive
说明防火墙没开,那就不用管了。防火墙是干嘛的呢,我自己的理解就是,如果开了防火墙,那服务器上所有端口都是默认禁止连接的,只有你允许的端口才允许连接,类似于这种:
因此,如果防火墙处于打开状态,请将其关闭:
[En]
So if the firewall is on, either turn it off:
sudo ufw disable
要么添加一条规则让防火墙放行3306端口(mysql的默认端口):
sudo ufw allow 3306
检查云服务器厂商的防火墙状态
打开云服务器后端管理页面,找到防火墙:
[En]
Open the backend management page of the CVM and find the firewall:
云服务器厂商默认只开放几个最常用的端口,其他端口默认关闭,所以在这里添加一条规则来释放端口3306:
[En]
CVM vendors only open a few of the most commonly used ports by default, and other ports are closed by default, so add a rule here to release port 3306:
测试连接
使用任何数据库管理软件进行测试:
[En]
Test it with any database management software:
这是有联系的。常见的问题应该已经提到了,如果你仍然无法连接,那么你可以想出一个方法。
[En]
It’s connected. Common problems should have been mentioned, if you still can’t connect, then you can think of a way.
Original: https://www.cnblogs.com/m1ds/p/16386828.html
Author: m1ds
Title: [Mysql]Ubuntu如何安装Mysql+启用远程连接[完整版]
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/505284/
转载文章受原作者版权保护。转载请注明原作者出处!