利用云主机搭建MySQL服务器
前言:有了一台云服务器之后,就想着如何物尽其用。利用其不关机(意外除外)的特性,我们可以在服务器上安装数据库服务,实现云数据库服务器,这样就可以随时随地的访问数据库了,不再受各种限制。
这里以MySQL为例——在Linux主机上安装MySQL有很多种方法:
- 通过yum源安装;
- 通过rpm包安装;
- 下载源码安装;
本次以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
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可能出现的结果:
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)远程访问了。