目录
1.清理虚拟机上原有的MySQL相关文件或者软件
1.1卸载已安装的其他版本MySQL
(1)使用以下命令查询虚拟机上是否有安装MySQL
rpm -qa | grep -i mysql
如果安装的有mysql,且mysql服务正在运行,需要先关闭服务,再开始卸载操作。
##查看mysql服务运行状态
systemctl status mysqld
##关闭mysql服务
systemctl stop mysqld
使用以下命令进行删除卸载
##下面命令能卸载大部分的安装
yum remove -y mysql*
##上面的命令不能卸载下面红框中的文件,如果有该文件,需要单独用命令卸载
yum remove -y perl-DBD-MySQL-4.023-6.el7.x86_64
(2)同时,需要查找mysql的配置文件进行删除
查找配置文件命令
find / -name mysql
使用以下命令进行删除
rm -rf /xxx/xx
命令后面跟配置文件的相对路径或绝对路径
(3)特别地,如果之前是用压缩安装包安装的,系统中会存留有/etc/my.cnf配置文件和/etc/my.cnf.d目录文件夹,也需要删除,否则后面mysql服务启动的时候总是出错。情况介绍可以参考下面的博客:
错误内容及解决,请参考 CentOS7重新安装mysql时出现错误
删除命令:
rm -rf /etc/my.cnf
rm -rf /etc/my.cnf.d
1.2卸载删除 mariadb
通常,CentOS上有安装 mariadb,很多博客介绍说,安装mysql后会对其进行覆盖,也可以直接进行卸载。
查找是否有mariadb命令
rpm -qa | grep mariadb
找到后进行强制删除命令
rpm -e --nodeps mariadb-xxx-xx
以上操作完成后,可以再用查找命令看看有没有删除成功。此时,安装mysql的环境就准备好了。
2.通过yum源方式安装mysql8
2.1 安装mysql
(1)下载yum源,下面链接版本是8.027,rpm文件很小,只有几k,可以用链接下载,非常方便。
wget https://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm
rpm -ivh mysql80-community-release-el7-4.noarch.rpm
(2)更新yum仓库
yum clean all
yum makecache
(3)使用以下命令查看yum仓库中有哪些版本,确认版本正确。
yum repolist all | grep mysql
如果其中mysql8的状态为启动或enabled,说明版本正确,可以进行安装了。
(4) 使用命令安装mysql,这个过程需要下载500多兆的文件,如果网速不给力,可以晚上睡觉前下载安装。
yum -y install mysql-community-server
##建议加上 y 参数,加上后只需要等待安装完成就可以了
经过以上几步就安装好了,真的比压缩安装包安装简单太多了。
2.2 启动mysql,并进行配置
##(1)启动mysql服务
systemctl start mysqld
##(2)查看mysql服务状态
systemctl status mysqld
##(3)设置开机自启
systemctl enable mysqld
2.3登录mysql更改密码
(1)查看初始密码,mysql在安装后会创建一个root@locahost账户,初始的密码放在/var/log/mysqld.log文件中;
grep "password" /var/log/mysqld.log
出来的提示中最后的很复杂的就是初始密码了。
(2)用初始密码登录,更改密码。
##登录命令
mysql -uroot -p
MySQL默认必须修改密码之后才能操作数据库,输入初始密码登录后,此时不能做任何事情,需要先修改用户密码。
根据MySQL的密码设置规范,密码设置需要足够复杂,这主要是与mysql的密码策略有关。为了能修改密码策略进行简单密码设置,可以先将密码修改成一个满
足要求的复杂的密码,然后再进行密码策略的修改,更改策略后就能设置简单密码了。
##查看当前密码策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
##设置密码策略
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=4;
##length要求至少是4,如果命令中写的小于4,会自动改为4.
##特别注意,8.0后策略命令有所变化,password与policy、length之间是“点”。
之后就可以将密码修改为简单好记的密码了。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
(3)给root用户授权,允许远程访问,这样就可以在自己电脑上用Navicat连接了。
mysql> use mysql
mysql> update user set host='%' where user='root';
##更改之后要刷新权限
mysql> FLUSH PRIVILEGES;
(4)一般还需要修改下mysql8登录用户的加密规则,因为mysql8之前的版本中加密规则是mysql_native_password,而在mysql8后,加密规则改为了caching_sha2_password。如果不更改,在用Navicat连接时会报错误:1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client。所以可以在这里直接先将加密规则修改了。
查看及修改命令
##查看规则命令
mysql> select host,user,plugin,authentication_string from mysql.user;
##修改命令
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
## '123456'为设置的数据库密码
## 特别注意,'root'@后面是%,而不是localhost,因为前面已经设置过root用户的远程连接了。
host列为 % 表示不限制ip,localhost表示本机使用。
2.4设置防火墙,开放端口
防火墙需要开启之后才能进行开放端口的设置,而且基于安全的考虑,防火墙也应该日常开启。
##查看防火墙状态
systemctl status firewalld
##开启防火墙
systemctl start firewalld
##查看已开放端口
firewall-cmd --list-ports
##永久开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
##重新加载,使设置生效
firewall-cmd --reload
3.现在可以试试使用Navicat远程连接使用了,在Navicat中新建连接,并填写Linux的IP地址。
4.mysql数据库常用命令介绍
##查看数据库版本
mysql> select version();
##退出数据库
mysql> quit;
##显示数据库
mysql> show databases;
##选择数据库
mysql> use 数据库名称;
##显示数据库中的表
mysql> show tables;
##显示具体的表结构
mysql> describe 表名;