导航
- 一、购买ECS服务器
- 二、配置mysql
- (一)安装Mysql
- 步骤一:安装mysql
- 步骤二:配置MySQL
- 步骤三:远程访问MySQL数据库
- (二)给实例配置安全组策略
- (三)设置防火墙
一、购买ECS服务器
我的需求:建立一个个人小网站,访问人五人以下,可能就我自己访问。并且开发一个微信小程序。需要用mysql
最后购买的配置:
2核 1GB突发性能实例 t6系列 V
I/O 优化实例:I/O 优化实例
系统盘:高效云盘/dev/xvda40GB模块属性
带宽:1Mbps按固定带宽
CPU:2核
可用区:随机分配
操作系统:Alibaba Cloud Linux 3.2104 LTS 64位Linux64位
内存:1GB
地域:华南 1
网络类型:专有网络
体检服务:是
管家服务:是
已分配公网IP
价格54元/月
二、配置mysql
(一)安装Mysql
点击立即登录
进入linux界面
参考以下链接安装mysql
https://help.aliyun.com/zh/ecs/use-cases/manually-deploy-mysql-on-an-ecs-instance-that-runs-centos
【到配置安全组之前都是这篇文章的,原文比较清晰建议大家去看原文。然后再返回来看】
步骤一:安装mysql
1.运行以下命令,更新YUM源。
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
2.(可选)当操作系统为Alibaba Cloud Linux 3时,请执行如下命令,安装MySQL所需的库文件。
sudo rpm -Uvh https://mirrors.aliyun.com/alinux/3/updates/x86_64/Packages/compat-openssl10-1.0.2o-4.0.1.al8.x86_64.rpm
3.运行以下命令,安装MySQL。
sudo yum -y install mysql-community-server --enablerepo=mysql80-community --nogpgcheck
4.运行以下命令,查看MySQL版本号。
mysql -V
5.返回结果如下,表示MySQL安装成功。
mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)
步骤二:配置MySQL
1.运行以下命令,启动并设置开机自启动MySQL服务。
sudo systemctl start mysqld
sudo systemctl enable mysqld
2.运行以下命令,获取并记录root用户的初始密码。
sudo grep 'temporary password' /var/log/mysqld.log
执行命令结果示例如下。
2022-02-14T09:27:18.470008Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: r_V&f2wyu_vI
说明
示例末尾的r_V&f2wyu_vI为初始密码,后续在对MySQL进行安全性配置时,需要使用该初始密码。
3.运行以下命令,对MySQL进行安全性配置。
sudo mysql_secure_installation
根据提示信息,重置MySQL数据库root用户的密码。
说明
在输入密码时,系统为了最大限度地保证数据安全,命令行将不做任何回显。您只需要输入正确的密码信息,然后按Enter键即可。
Enter password for user root: #输入已获取的root用户初始密码
The existing password for the user account root has expired. Please set a new password.
New password: #输入新的MySQL密码
Re-enter new password: #重复输入新的MySQL密码
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.
Change the password for root ? ((Press y|Y for Yes, any other key for No) :Y #输入Y选择更新MySQL密码。您也可以输入N不再更新MySQL密码。
New password: #输入新的MySQL密码
Re-enter new password: #重复输入新的MySQL密码
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :Y #输入Y确认使用已设置的密码。
根据提示信息,删除匿名用户。
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) :Y #输入Y删除MySQL默认的匿名用户。
Success.
禁止root账号远程登录。
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :Y #输入Y禁止root远程登录。
Success.
删除test库以及对test库的访问权限。
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) :Y #输入Y删除test库以及对test库的访问权限。
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
重新加载授权表。
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) :Y #输入Y重新加载授权表。
Success.
All done!
步骤三:远程访问MySQL数据库
建议您使用非root账号远程登录MySQL数据库。下文示例中,将创建新的MySQL账号,用于远程访问MySQL。
远程连接ECS实例。
关于连接方式的介绍,请参见连接方式概述。
运行以下命令后,输入root用户的密码登录MySQL。
sudo mysql -uroot -p
依次运行以下命令,创建远程登录MySQL的账号,并允许远程主机使用该账号访问MySQL。
本示例账号为dmsTest、密码为Ecs@123****。
重要
实际创建账号时,需将示例密码Ecs@123****更换为符合要求的密码,并妥善保存。密码要求:长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号。可以使用以下特殊符号:
()` ~!@#$%^&*-+=|{}[]:;‘<>,.?/
#创建数据库用户dmsTest,并授予远程连接权限。
create user 'dmsTest'@'%' identified by 'Ecs@123****';
#为dmsTest用户授权数据库所有权限。
grant all privileges on *.* to 'dmsTest'@'%';
#刷新权限。
flush privileges;
执行以下命令,退出数据库。
exit
使用dmsTest账号远程登录MySQL。
在自己的电脑上用Navicat连接该服务器。
navicat连接信息:
这里的IP地址就是你购买ECS服务器配置的公网IP
(二)给实例配置安全组策略
主要是为了允许我们这个linux服务器上运行mysql服务的3306端口可以被访问。(就像你要让一只猫进家里,总得把门打开吧。)
在阿里云的左侧菜单栏点击 实例与镜像->实例
找到要配置端口的云服务器
点击三个点
点击加入安全组
选择一个安全组
然后在左侧的网络与安全->安全组中对刚刚选择的安全组进行配置
点击管理规则
入方向
点击手动添加
然后
到这里,用Navicat连接还是提示
远程连接Linux系统的ECS实例中的MySQL失败,提示“ERROR 2003 (HY000): Can't connect to MySQL server on '112.106.**.**'”错误怎么办?
此时,进入linux,把linux的my.cnf文件备份一下(一开始我看有的人是mysqld.cnf 我说怎么我的没有,后来才知道原来windows是这个,linux是my.cnf)
cp my.cnf my.cnf.bak
修改my.cnf配置文件
首先执行命令,打开my.cnf文件
vim /etc/my.cnf
然后按i进入编辑模式,把bind-address = 0.0.0.0加入到文件中
然后添加完成后按esc退出编辑模式,然后输入:wq后按enter键保存改动并退出文件
bind-address=0.0.0.0
然后重启mysql服务
sudo systemctl restart mysqld
(三)设置防火墙
1.启动并配置 FirewallD
首先,尝试启动 FirewallD 服务:
sudo systemctl start firewalld
然后,确认 FirewallD 已经启动:
sudo systemctl status firewalld
接下来,为了确保远程连接到MySQL服务器的能力,需要确保firewalld防火墙配置正确,允许外部访问服务器上的MySQL端口(默认是3306)。尝试添加3306端口到防火墙规则:
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
之后,重新加载 FirewallD 以应用更改:
sudo firewall-cmd --reload
检查更新后的规则,确认3306端口已被允许:
sudo firewall-cmd --list-all
这个命令将显示所有配置的规则,包括允许的端口。你应该能在列表中看到3306端口。
此时再连接就成功了!