本教程会运用到Xshell 6和Xftp 6,其实一般主要用Xshell 6即可,但是由于写这个教程的时候,我的Xshell 6还未激活,上传不了文件,且Xftp 6相对于字符界面的Xshell 6更贴近已经习惯了Windows系统的我们,所以使用Xftp 6,当然牛逼一点的,直接使用虚拟机也是可以的,可以不借助这些辅助工具。
1. 从网站https://dev.mysql.com/downloads/mysql/下载安装MySQL 5.7的Linux安装包
(1)点击右侧的"Looking for previous GA versions?",查看以前的版本
(2)Select Version:选择自己想要的MySQL5.7版本,这里我们选择最新的5.7.32版本
Select Operating System:选择Red Hat(红帽),因为CentOS 是基于Red Hat(红帽)的
Select OS Version:选择Linux 7 64位,因为我们的CentOS 7对应的就是Linux 7
当然你也可以在Select Operating System中选择Linux - Generic(Linux通用),Select OS Version选择All
然后选择"RPM Bundle",点击 "Download"进入下载页面
(3)点击"No thanks, just start my download.",进行免登录下载
2. 下载好后,双击打开VMware Workstation Pro,选中要使用的虚拟机CentOS 7,点击"开启此虚拟机",输入root用户和对应的密码
3. 下载完成之后, 打开Xshell 6和Xftp 6,输入虚拟机的连接信息进行连接,具体的连接过程请看我以前写的“Xshell 6或者Xftp 6连接CentOS 7虚拟机”(传送门:https://my.oschina.net/u/3986411/blog/4711296)
4. 通过如下命令查看mariadb的安装包
rpm -qa | grep mariadb
5. 通过如下命令卸载mariadb
rpm -e mariadb-libs-5.5.65-1.el7.x86_64 --nodeps
注意,mariadb的全名要写对,写成和第4步查看mariadb的安装包时出现的名字一样
问题:为什么卸载mariadb?
答案:CentOS 7已经不支持MySQL(由于收费的原因),所以系统就预置了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,才能安装MySQL。
6. 通过如下命令再次查看mariadb的安装包 ,检查是否卸载成功
rpm -qa | grep mariadb
出现如上图所示情况,代表mariadb已经卸载成功了,可以开始进行下一步
7. 通过如下命令进入根目录下的usr目录下的local目录,该目录是专门用来存放一些本地的共享资源的
cd /usr/local/
8. 通过如下命令来查看当前目录下的目录结构,注意这是两个小写的L,不要写错了
ll
9. 通过如下命令在当前目录下创建一个名为mysql的目录
mkdir mysql
10. 再通过如下命令查看当前目录下的目录结构,在查出的结果中,我们可以看到我们刚刚创建的mysql目录
ll
11. 通过如下命令进入mysql目录
cd mysql
12. 然后我们把之前下载的mysql安装包上传到mysql目录,这里我们有两种方法:
方法一:通过Xshell 6上传
点击菜单栏的"窗口"-->"传输新建文件(F)",通过ftp协议来把刚下载好的mysql安装包传输到CentOS 7系统中
方法二:通过Xftp 6上传
我们可以直接在右侧目录那里输入/usr/local/mysql,直接跳转到我们要上传的目录下,然后通过Xftp 6上传 把mysql安装包直接拖拽到Xftp 6的右侧(可以在Xftp 6左侧找,也可以直接打开Windows存放安装包的文件夹),文件就可以传输到CentOS 7系统中
由于我Xshell 6还未激活,Xshell 6上传不了,所以我用的是第二种方法上传
13. 上传完后, 我们通过在Xshell 6输入如下命令来查看mysql目录
ll
14. 通过如下命令解压mysql的安装包
tar -xvf mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar
15. 通过如下命令查看mysql的安装包 ,有可能一开始没有显示后面安装完才显示,或显示不全,不过没关系,你只要记住要安装如下common、libs、client、server这四个就行,记不清全名也没关系,输入到"5.7-"就按"Tab"键就会自动补全文件名
rpm -qa | grep mysql
16. 通过如下命令来安装common
rpm -ivh mysql-community-common-5.7.32-1.el7.x86_64.rpm --nodeps --force
17. 通过如下命令来安装libs
rpm -ivh mysql-community-libs-5.7.32-1.el7.x86_64.rpm --nodeps --force
18. 通过如下命令来安装client
rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm --nodeps --force
19. 通过如下命令来安装server
rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm --nodeps --force
20. 通过以下命令,对mysql数据库进行初始化和相关配置
mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;
21. 通过如下命令来查看数据库的密码
cat /var/log/mysqld.log | grep password
如上图所示,红色方框里面的就是我们的数据库密码
22. 通过如下命令来进入数据库的登录界面,然后输入上一步得到的数据库密码进行登录
mysql -u root -p
注意:这里粘贴密码后密码没有显示,不是出错,且要用点击鼠标右键粘贴来粘贴密码,Ctrl+C是不会粘贴密码的哦
23. 通过如下命令来修改密码,这里我们设置为123,你也可以修改为自己需要的密码,这里我们为了简单易记忆,就设置为123
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';
flush privileges;
24. 通过输入如下命令命令退出MySQL,然后通过新密码重新登录,验证一下密码修改是否真的成功了!
exit;
25. 通过以下命令,进行远程访问的授权
create user 'root'@'%' identified with mysql_native_password by '123';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
26. 通过如下命令来退出MySQL
exit;
27. 通过如下命令来关闭firewall(防火墙)
systemctl stop firewalld.service;
systemctl disable firewalld.service;
systemctl mask firewalld.service;
28. 通过如下命令来安装iptables防火墙
yum -y install iptables-services
29. 通过如下命令来重新启动设置防火墙
systemctl enable iptables;
systemctl start iptables;
30. 通过如下命令来编辑防火墙,添加端口
vim /etc/sysconfig/iptables
注意:之所以这么复杂的通过编辑防火墙,添加端口,而不是修改数据库的配置文件my.cnf(CentOS 7修改的是my.cnf,而windows下修改的是my.ini),是因为我们这里是开放端口,而修改my.cnf是为了修改数据库的默认端口3306
31. 按下"i"键进入插入模式。
如果要通过同时按W+C两个键进入插入模式,要先把游标移到最下面的COMMIT的右边,因为按下这两个键会去掉所在位置的字符
32. 在相关位置写入如下内容:
-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
33. 点击"ESC"键退出插入模式 ,然后输入如下命令再按回车,保存并退出
:wq!
34. 通过如下命令来重启防火墙使配置生效
systemctl restart iptables.service
35. 通过如下命令来设置防火墙开机启动
systemctl enable iptables.service
36. 双击打开sqlyog,输入虚拟机的连接信息,然后点击"连接"进行连接
37. 如果出现如下图所示错误
检查授权给用户登录的密码对不对(上面第25步设置的,不一定是你虚拟机数据库的登录密码或者登录虚拟机root账号的密码),忘记了就再执行如下命令进行重置,其中123就是授权账号访问密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
flush privileges;