手把手教你如何在Linux服务器上安装mysql

187 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情

本文基于linux版本为Ubuntu 20.04,其他linux版本在安装过程中可能略有不同,请知晓

作为一个net程序员,其实平时用到最多的数据库时SQLServer
但是我的服务器是体验型服务器(各个大平台都有,新用户可以领一个免费的入门级服务器,差不多能玩一个月,具体哪家就不说了,不然有打广告的嫌疑)
免费的东西,配置自然很拉胯,CPU 1核、内存1G...
开始尝试过安装SQLServer,但是报错后才知道,安装SQLServer至少需要2G内存
没办法,相比之下,MySQL就小很多了,对服务器配置要求不高
反正小demo,什么数据库都无所谓,技术不分家

命令行安装mysql

//安装mysql
sudo apt install mysql-server -y

//查看是否安装成功
sudo systemctl status mysql.service

注意:如果执行安装mysql报错的话,可以更新一下apt的软件包:apt-get update

安装成功后,需要设置一下密码

sudo mysql_secure_installation

这个命令执行后,会有几个问题需要确认
比如密码强度:输入0~2,表示低中高、是否禁止root远程登录、移除匿名用户、移除测试数据库机器访问等
不会的,可以直接输入y回车即可

只要设置的密码别忘了就行,否则就要重置密码了

命令行测试登录一下mysql

mysql -u root -p

按回车后,输入密码,即可登录成功 image.png

退出myql

quit

好了,这样mysql就能在本地玩了,是不是很简单
如果要远程使用,还需要进一步配置相关信息,请继续往下看

开启远程登录

首先打开端口信息
mysql默认使用的端口为3306,需要到服务器的控制台(哪个平台购买的,需要到对应官网去找,一般都有专门的控制台和相关配置中心),开启相应的端口信息

查看3306端口

netstat -an | grep 3306

如果服务器的防火墙开启了,还需要设置一下防火墙:允许端口开放

sudo ufw allow 3306

修改mysq的配置文件信息

//进入到指定目录
cd /etc/mysql/musql.conf.d

//用nano编辑配置文件:如果服务器当前登录用户非root用户,需要在命令开头加sudo,否则可能无修改权限 --->这里的root非数据库的用户名,这里也不是在数据库中操作的!
nano mysqld.cnf

//修改内容跟以下一致即可
bind-address            = 127.0.0.1

注意:下面操作就需要登录到数据库中进行操作了

登录数据库,这里就不啰嗦了,上面有命令
创建远程登录账号以及账号的密码

//使用mysql这个数据库(相当于后面操作是指定操作这个数据库,这个数据库为mysql自带的,里面有User表:用于存放数据库用户信息的表)
use mysql;

//创建用户
create user'sa'@'%' identified by 'you_password';

注意:@符号左边为你的用户名,右边为%,他是host字段的值,大概意思为:使用的范围,%是任意地方

还有就是,mysql每一条命令以分号(;)结尾,否则无法执行

千万别写成 :create user'sa'@'localhost' identified by 'you_password';
看过太多文章这样写了,简直是错误引导新手,localhost是仅限本地使用的用户

操作完,查询一下select host,user from user; image.png

看清楚没,上下两个sa用户,host为%的才是可以远程登录的,下面那个只能本地使用

授权

grant all privileges on *.* to 'sa'@'%';

//刷新:非常重要,一定要做
flush privileges;

授权远程

alter user 'sa'@'%' identified with mysql_native_password by 'you_password';

//刷新:非常重要,一定要做
flush privileges;

ok,到这里基本设置完成,可以远程登录使用数据库了!

测试连接

测试的话就不用命令行了,直接用第三方工具测试一下即可
这里用的是Navicat

直接输入ip、端口号、用户名、密码即可 image.png

当然,其他工具同理,这里基本上没啥大问题了

文末总结

技多不压身,什么都要花时间去接触一下
虽然这些东西学的都不深,但是曾经摸过,需要用到时,再拾起来会很快,基本没啥坑了
知识储备,先广再博吧