利用云主机搭建MySQL服务器

时间:2024-03-09 16:44:10

前言:有了一台云服务器之后,就想着如何物尽其用。利用其不关机(意外除外)的特性,我们可以在服务器上安装数据库服务,实现云数据库服务器,这样就可以随时随地的访问数据库了,不再受各种限制。

这里以MySQL为例——在Linux主机上安装MySQL有很多种方法:

  1. 通过yum源安装;
  2. 通过rpm包安装;
  3. 下载源码安装;

本次以yum的方式安装MySQL8.0版本。

1.准备工作

1.1查看系统是否已安装数据库:

rpm -qa | grep mysql     

检查是否安装数据库

1.2如果你系统有安装,则依次执行下面命令进行卸载(没有直接跳过这一步):

yum remove mysql-xxx-xxx    # remove 后面接的是文件名称,例如:mysql-community-libs-8.0.16-2.el7 

1.3卸载完成后删除MySQL配置文件:

1.3.1查找mysql文件:

find / -name mysql

删除mysql遗留文件

1.3.2根据需要删除文件和文件夹:

rm -rf  /var/lib/mysql
rm -rf /usr/lib64/mysql
rm -rf /etc/my.cnf   
...

1.4若是第一次安装MySQL,系统自带MariaDB数据库,找到文件,然后卸载:

rpm -pa | grep mariadb

1.4.1可能出现的结果:

系统自带数据库MariaDB

1.4.2使用以下命令删除:

yum -y remove mariadb-libs.x86_64

至此,准备工作就完成了,加下来开始MySQL的安装了。

2.以rpm方式安装MySQL8.0

因为CentOS 7默认安装的数据库是Mariadb,单纯的使用yum命令是无法安装MySQL的,只会更新Mariadb,本教程为了方便而使用rpm来进行安装

当前使用的是MySQLu8.0版本,你也可以在repo仓库选择自己想要的版本。

2.1下载yum源:

wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm

2.2rpm包:

sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm

安装完成后会在 /etc/yum.repos.d文件夹里面获得两个文件:mysql-community.repo && mysql-community-source.repo

2.3安装MySQL服务:

sudo yum install mysql-server

如果显示以下内容说明安装成功
Complete!

2.4检查是否已经设置为开机启动MySQL服务

systemctl list-unit-files|grep mysqld

若mysqld.service为enabled&&mysqld@.service为disabled则为开机启动。

3.进行初始化配置

当前只是完成了服务的安装,还需要进行一系列的初始化配置:

3.1MySQL初始化:

mysqld --initialize

3.2查看初始化密码:

grep \'temporary password\' /var/log/mysqld.log

复制 root@localhost: 后面的密码,登录mysql,并粘贴默认密码
[注意]:因为MySQL8.0的更改,导致必须要重置密码

3.3登录并修改密码(此处有超级大坑)

mysql -uroot -p  # 回车后粘贴密码

若此时报错:无法通过套接字连接数据库——英文翻译过来的。只需要重启MySQL服务就行(是不是很简单?博主当年在此被坑的老惨了)。

systemctl restart mysqld.service   # 重启命令

3.4修改密码:

mysql>alter user \'root\'@\'localhost\' identified by \'your_password\';

若此时报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,表示需要降低policy的等级后在执行,执行下面命令:set global validate_password.policy=0;

mysql>set global validate_password.policy=0;

再执行一遍修改密码命令便可以成功了!

3.5授权root用户远程登录:

use mysql;
update user set host = \'%\' where user = \'root\';
grant all privileges on *.* to \'root\'@\'%\' with grant option;
flush privileges;

3.6新增MySQL用户,创建数据库,授权

create user \'zyhcs\'@\'%\' identified by \'password\';
create database zyhcs;
grant all privileges on zyhcs.* to \'zyhcs\'@\'%\';
flush privileges;

至此,云服务器已经搭建好了,如果想远程连接数据库服务器,还有最关键的一步(重要);

4.配置云服务器安全组

注意:服务器安全组规则限制着服务器实例与外网和内网之间的访问连接,我们要远程数据库,就必须打开远程服务器的数据库服务端口,以MySQL为例,端口 为3306,我们需要在服务器实例安全组规则中配置MySQL的组规则。

以阿里云服务器为例:

4.1步骤1:

登录阿里云平台->控制台->(左侧菜单)云服务器->实例与镜像->实例->(右侧操作)管理->(左侧菜单)本实例安全组;

4.2步骤2:

本实例安全组->(右侧)配置规则->手动添加或者快速添加->(协议类型)自定义TCP、(端口范围)3306、(授权对象:0.0.0.0表示任意允许ip访问,可以指定ip访问)0.0.0.0,保存配置。
然后去安全组规则列表看有没有生效,如果列表有,说明已经生效,然后就可以通过第三方客户端(比如Navicat)远程访问了。