一、下载MySQL安装包
以MySQL5.7.29为例,进入MySQL官方的Community Server选择历史版本:
https://downloads.mysql.com/archives/community/
可以使用wget命令下载,或直接点击Download下载。然后将tar包放在Ubuntu的一个目录中。
使用wget命令下载tar包
sudo wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_5.7.29-1ubuntu18.04_amd64.deb-bundle.tar
解压tar包
sudo tar -xvf mysql-server_5.7.29-1ubuntu18.04_amd64.deb-bundle.tar
解压后目录
二、安装MySQL
更新依赖源数据
sudo apt-get update
安装依赖lib包
sudo apt-get install ./libmysql*
sudo apt-get install libtinfo5
安装客户端和服务端,按提示可能要先安装community版本
sudo apt-get install ./mysql-community-client_5.7.29-1ubuntu18.04_amd64.deb
sudo apt-get install ./mysql-client_5.7.29-1ubuntu18.04_amd64.deb
sudo apt-get install ./mysql-community-server_5.7.29-1ubuntu18.04_amd64.deb
sudo apt-get install ./mysql-server_5.7.29-1ubuntu18.04_amd64.deb
第三行命令执行时会提示设置MySQL的密码,用户名默认root
三、启动MySQL
检查状态
一般安装成功就自动启动,输入命令检查启动状态,绿色的active表示运行中
systemctl status mysql.service
登录MySQL
使用root用户登录MySQL
mysql -u root -p
此时mysql安装完成了,但是不能为我们的程序提供服务(使用连接工具现在是连接不上的)。 因为还需要配置远程连接,使我们可以远程登录才可以。
四、开启远程访问功能
1、允许其他主机通过root访问数据库
进入mysql库,查看user表。 表中host、user字段标识了可以访问数据库的主机和用户
use mysql;
select User,Host from user;
默认情况下 mysql 只接受本地访问,需要执行 mysql 语句授权外网用户访问。例如下面的数据就表示只能用本地主机通过root用户访问数据库。为了让数据库支持远程主机访问,有两种方法可以开启远程访问功能。
(1)第一种(改表法):
修改host字段的值,将localhost修改成需要远程连接数据库的ip地址,或者直接修改成%,使所有主机都可以通过root用户访问数据库。
以下是将user为root对应的host字段直接修改成%的命令:
update user set host = '%' where user = 'root';
输入命令使修改生效
flush privileges;
再次查看user表, 修改成功。
(2)第二种(授权法):
例如,你想root使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
输入命令使修改生效
flush privileges;
这两种方法选择一种即可,接下来配置允许其他IP访问
2、修改配置文件,允许其他IP通过自定义端口访问
现在需要配置服务器的接口,从而使服务器能够侦听远程可访问的接口。默认情况下,绑定地址为“127.0.0.1”。
修改位于/etc/mysql/mysql.conf.d/mysqld.cnf 的配置文件,将bind-address=127.0.0.1修改成0.0.0.0,并添加 port = 开放的具体端口号,默认端口号为3306 ,即可实现开放外网访问和自定义端口的目的。
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
或
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
重启mysql服务
systemctl restart mysql