【踩坑】在linux服务器上配置mysql并开放3306端口
在做大作业,数据库零基础,折腾了一天才搞成功,特此记录一下踩过的坑。希望能帮到其他同学吧……
有不对欢迎指出,谢谢啦!
安装mysql
首先
sudo apt update
sudo apt install mysql-server -y
嗯,安装完了。
然后输入
sudo systemctl status mysql.service
如果看到:
尤其是这个绿绿的active,就表示已经启动了。
如果没有active的话,就手动输入命令:
sudo systemctl start mysql.service
修改密码
进入mysql
mysql -u root -p
其中-u后面是用户名,-p后面理论上是直接输入密码,但貌似mysql会建议你不要这么干。如果出现让你输密码的提示的话,直接回车即可,初始密码为空。
看到这样的界面就进入mysql的操作了。如果要退出,输入quit并回车即可。
然后在mysql中输入:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '123456';
即可修改密码。123456是你准备改的密码(它可能会阻止你改成这么弱的密码,那就换个强点的密码吧)
远程编辑数据库
我的服务器没有图形化界面,所以为了方便起见,我用了mysql workbench来远程操作数据库。
去官网下载并安装,一路next就行没什么难的。
打开mysql workbench,点击加号。
然后填好信息,记得第二栏选Standard TCP/IP over SSH。
先点底下的Test Connection,如果弹出了OK的界面的话,再点最右侧的OK按钮
再点最右侧的OK按钮,最右侧的OK按钮,最右侧的OK按钮。重要的事说三遍。Test Connection只是检查是否能连上数据库的,点OK才能保存设置。
然后主界面的“Mysql Connection”应该就多了一个格子,双击即可进入远程数据库的编辑界面。
开放端口
本地mybatis没过ssh,连不上数据库,因此我们需要开放端口。
数据库的默认端口号是3306,不用改。
终端依次输入以下指令即可开放端口:
sudo apt-get install iptables
sudo iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
sudo iptables-save
然后可以安装一个netcat测试一下是否成功:
sudo apt-get install netcat
nc -zv 127.0.0.1 3306
以下是成功和失败的输出结果:
好,重点来了,你的本地机器想连服务器的数据库,当然是不能用127.0.0.1的,然而如果你nc -zv输入服务器ip地址,会发现Connection refused。
输入
netstat -an|grep 3306
红色的那一行,如果显示的是:::3306
,表示可以对外开放。如果显示的是127.0.0.1:3306
,表示只对本地开放。如果你是后者,那么跟着我继续应该就能成功解决了,否则……呃……再排排错找找教程?
首先我们需要编辑一个文件:
cd /etc/mysql/mysql.conf.d/
vim mysqld.cnf
打开后长这样,如果你红框里的内容没有注释掉,将它注释掉。另外,如果你发现你的数据库端口不是3306,把prot=3306那句的注释去掉。
:wq
保存并退出后,终端输入
service mysql restart
重启mysql,然后
netstat -an|grep 3306
nc -zv 服务器ip地址 3306
检查一下,都和上文说的结果一样,就表明3306端口开放成功。
开放数据库权限
接下来要对外开放数据库权限。
首先还是
mysql -u root -p
进mysql
然后输入:
update user set host='%' where user='root';
如果报错说没选择数据库的话,可以用:
show databases;
命令查看一下有哪些数据库,一般来说
use mysql;
(不是你自己建的要开放的数据库)
然后再输入上面的指令就可以了。
最后
flush privileges;
刷新,再quit退出。
最后终端输入:
sudo service mysql restart
重启一下数据库。
现在你的远程连接大概没问题了。
另外我的另一踩坑是mysql-connector-java的版本号问题,要和你的服务器mysql版本对应不然可能连不上。你登入mysql的时候会出一大段文字,里面就有版本号。不知道有没有人会犯和我一样的错……
后记
对着防火墙折腾了个把小时才发现连不上是mysql配置文件的问题,端口只开放给本地了,枯了。
愿天堂对小白友好点。
相关文章
- 敏捷+智能,以技术为核心的BI演进之路
- 首个ML生物医药大型数据集,3行代码能运行
- 2021年的数据科学趋势
- AI求解薛定谔方程,兼具准确度和计算效率,登上《自然-化学》
- 数据科学,数据工程和技术的未来
- IT行业里有这么多聪明人,他们之间的区别在哪里?
- 谷歌云高管预测:2021年这五大数据趋势将会推动业务发展
- 人工智能让遥感数据释放巨大潜能:人口普查中的人工或将被取代
- 新华网评大数据杀熟:不顾吃相,要改!
- 神经形态计算何时带领我们进入 AI 新时代?
- 数字货币怎么研究?数据安全如何保护?听专家怎么说
- Github Star 7.2K,超级好用的OCR数据合成与半自动标注工具,强烈推荐!
- MIT、哈佛合作,这个研究让神经网络认清自己「几斤几两」!
- 关于5G通信,收获2020年最后的“干货”大礼包
- 为什么你做了几年运维,还是徘徊在基础岗?
- 程序员,到底要懂多少业务?
- 中国量子计算原型机「九章」问世:它一分钟完成的任务,超算需要一亿年
- 程序员现状揭秘:平均年薪20.36万,Java人才需求量大
- 中国人民大学-腾讯协同创新实验室正式揭牌,共同推动国产数据库安全可控和自主创新
- 盘点:2020年最炙手可热的10家数据存储初创公司