第一步:首先你得有阿里云ECS云服务器吧
我相信但凡来的应该都已经购买这项云服务了,但不妨碍我给没买的小伙伴展示一下,注册阿里云账号登录后,总归一顿操作你能看到以下页面。
大概意思就是小白可以使用阿里云推荐的s6这款打包默认配置好的ecs服务器,也贴心的告诉你搭建ecs步骤,点击开始搭建右下角出现具体操作步骤,创建一台云服务器在你购买时就一起创建好了,是这样滴
当然我是自定义选购配置的,没选它推荐的s6,然后我是按量付费但需要充值100而不是包月,购买好后这个实例就显示在实例列表里了,此时显示运行中,那么你就拥有一台自己的服务器了,但是怎么访问服务器呢。阿里云提供了很多方式,其中在网页中就可以连接,往右看看有个远程连接的link点击一顿操作相信你会连上的。
但是我用的是xshell ssh工具,连上了
这样你可以在这台服务器上为所欲为了,阿里云建议安装Apache服务测试一下80端口能不能访问,我跳过了,直接安装mysql,但是注意它安装的是mysql57,但我要装mysql8
第一步:准备安装文件mysql8
网址:https://dev.mysql.com/downloads/mysql/
然后选它选它选它
然后再点它
下载好后,就开始操作xshell吧,先用 rpm -qa | grep mariadb 命令查看 mariadb 的安装包
然后 rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps 命令装卸 mariadb
卸载完成后,cd /usr/local/ 命令进入根目录下的usr目录下的local目录,ll查看一下当前目录内容
执行mkdir mysql 命令 在当前目录下创建一个名为 mysql 的目录
此时多了一个mysql文件,创建成功,然后 cd mysql 命令进入 mysql 目录
现在就可以通过xshell上传mysql8安装包到服务武器mysql这个目录下
选择mysql安装包右击传输
传输完成右侧服务器mysql目录下就有了,然后关闭当前xftp页面
查看一下ls
tar -xvf mysql-8.0.23-1.el7.x86_64.rpm-bundle.tar 命令解压 tar 包
通过 rpm -ivh mysql-community-common-8.0.23-1.el7.x86_64.rpm --nodeps --force 命令安装 common
注意:复制命令到xshell执行时注意空格,别把空格复制进去,容易出错。
rpm -ivh mysql-community-libs-8.0.23-1.el7.x86_64.rpm --nodeps --force 命令安装 libs
rpm -ivh mysql-community-client-8.0.23-1.el7.x86_64.rpm --nodeps --force 命令安装 client
rpm -ivh mysql-community-server-8.0.23-1.el7.x86_64.rpm --nodeps --force 命令安装 server
rpm -qa | grep mysql 命令查看 mysql 的安装包
数据库的初始化和相关配置
mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;
执行第一个命令报错
解决这个问题需执行yum install -y libaio完成后,再次执行mysqld --initialize;成功
执行第二个命令 修改数据库的属主和属组成功。 命令格式:chown 属主:属组 文件/文件夹
执行第三个命令 systemctl start mysqld.service;启动服务报错
查看mysql配置文件cat /etc/my.cnf 找到mysql日志文件路径
查看mysql日志文件 the designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it 指定的数据目录/var/lib/mysql/不可用。您可以删除服务器添加到其中的所有文件
好吧,执行cd /var/lib/mysql/ 进入这个目录,然后执行 rm -rf * 全部删除后,再次运行systemctl start mysqld.service;启动mysql服务成功
执行第四个命令 systemctl enable mysqld表示开机自启动
cat /var/log/mysqld.log | grep password 查看数据库的密码,因为启动后会将初始密码打印到日志文件里
我们先登录数据库mysql -uroot -p 敲回车再将刚才的密码右键复制粘贴输入,注意粘贴后密码是不会显示的直接回车即可登录成功
刚才密码太复杂,我们修改简单一点 执行ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; 命令来修改密码,结果失败,root密码过于简单不符合mysql要求的安全级别,可以设置validate_password_policy的值将密码结构变简单一点,我这由于是生产环境所以还是按照默认的高级别来设置密码吧,参考原来的密码格式大小写字母数组符号等,DogDog2020/这个密码就可以
exit; 命令退出 MySQL,然后通过新密码DogDog2020/再次登陆成功
现在用Navicat远程还不可以访问,通过以下命令,进行远程访问的授权
create user 'root'@'%' identified with mysql_native_password by 'DogDog2020/';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
分别执行成功
设置防火墙,关闭 firewall,依次执行成功
systemctl stop firewalld.service;
systemctl disable firewalld.service;
systemctl mask firewalld.service;
yum -y install iptables-services 命令安装 iptables 防火墙
通过以下命令启动设置防火墙
systemctl enable iptables;
systemctl start iptables;
分别执行成功
vim /etc/sysconfig/iptables 命令编辑防火墙,添加端口,默认打开是这样的
点击i进入编辑模式,编辑写入该文件以下内容,然后esc键退出编辑模式,然后:wq回车保存退出
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
systemctl restart iptables.service 命令重启防火墙使配置生效
systemctl enable iptables.service 命令设置防火墙开机启动
此时看看能不能远程连接访问mysql,结果失败
阿里云服务器实例好像也需要配置安全组访问规则
此时依然不能访问,需要设置阿里云实例自带的防火墙,执行命令firewall-cmd --permanent --zone=public --add-port=3306/tcp开放3306端口,结果失败显示防火墙没有启动,然后执行命令systemctl start firewalld启动防火墙,结果也失败,
解决,执行命令systemctl unmask firewalld后,再次重启成功
此时执行命令 firewall-cmd --permanent --zone=public --add-port=3306/tcp 开放3306端口就ok了,然后执行命令firewall-cmd --reload 重载防火墙配置
然后我们再次尝试连接就成功了
好复杂哦,答应我以后再也不装了。