地址:https://dev.mysql.com/downloads/mysql/
点击Archives选择自己想要的版本,一般5.7版本,我在这里尝尝鲜研究研究新版本选择最高版本8,系统并没有指定的Centos系统,在这里选择Red Hat Enterprise Linux / Oracle Linux即可,安装包带el加数字字样的就表示是此系统,版本的话我的是centos7,选择Linux7的安装包进行点击下载
然后上传到虚拟机解压出现这么一堆东西:
1.卸载mariadb
先检查Linux里面有没有安装其他的数据库,一般在安装虚拟机会自带mariadb数据库,将其进行卸载避免冲突,只要名字带mariadb的都卸载干净。
检查命令:
rpm -qa |grep mariadb
卸载命令:
rpm -e --nodeps 文件名字
运行检查命令发现都卸载干净了:
2.进入到解压后的安装包进行安装
顺序不可乱:common-client_plugins(旧版本安装包无此文件可省略)-libs-client-icu(旧版本安装包无此文件可省略)-server
安装命令:
rpm -ivh 文件名字
过程如下(顺序不可乱):
rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm #旧版本5.7无此文件可省略此步骤
rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm #旧版本5.7无此文件可省略此步骤
rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm
安装连接工具,一般都已经有了,这里运行着试一下,已经安装了会给你更新一下:
yum install net-tools –y
启动数据库服务:
systemctl start mysqld
查看启动状态,running就表示启动成功了:
systemctl status mysqld
查找数据库密码,然后复制:
cat /var/log/mysqld.log |grep password
登录MySQL、用刚才复制的密码:
mysql -u root –p密码 #-p和密码之间不要空格,不然系统就会认为你输入的密码是数据库名字而密码为空
上面我的密码中出现了特殊字符&、(,需要进行转义,在需要转义的字符前加反斜杠\即可,比如,我的密码是rfk&o(Qta2fP就需要输入rfk\&o\(Qta2fP,完整登录命令如下:
如果未进行转义会报错:-bash: 未预期的符号 `xxxxxx' 附近有语法错误,看到这个错误就应该意识到他说的字符串前面的那个字符就需要进行转义了,注意特殊字符出现在密码最后一个字符的情况。
mysql -u root -prfk\&o\(Qta2fP
然后就登录成功了:
修改账号或者密码:
直接修改报错:
alter user 'root'@'localhost' identified by '123456';
这时我们就需要修改密码等级和密码长度,这里修改密码等级为low,长度为6,密码为123456,根据自己安装的版本进行修改:
旧版本MySQL5.7左右:
set global validate_password_policy=0; #修改级别为0或low set global validate_password_length=6; #默认为8
alter user 'root'@'localhost' identified by '123456';
新版本MySQL8.0左右:
先设置一个符合的密码:
alter user 'root'@'localhost' identified by 'Abc_123_def';
什么样的密码是符合的呢?规则如下表所示,有数字、字符、大小写字母、>8的长度准符合,当然,你也可以设置个符合的能记住的密码直接用算了,还安全,我这里为了演示整个操作过程操作设置个低级、长度为6的进行连接:
Policy | Tests Performed |
0 or LOW | Length |
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
注意:validate_password.policy (是 . 不是 _ ),和5.7的不同之处就在这。
set global validate_password.policy=0; #修改级别为0或low set global validate_password.length=6; #设置长度为6 alter user 'root'@'localhost' identified by '123456'; #修改后的密码
修改MySQL连接地址-不修改第三方工具连接不上:
use mysql; update user set host='%' where user='root'; commit; exit;
关闭防火墙,也可以设置放行
首先查看防火墙状态
systemctl status firewalld.service
关闭防火墙
systemctl stop firewalld.service
关闭防火墙开机自启动:
systemctl disable firewalld.service
最后查看防火墙状态可以看到关闭了,不设置防火墙的话sqlyog、navicat等工具连接不上
然后重启MySQL服务---先关闭,再启动
systemctl stop mysqld
systemctl start mysqld
输入自己虚拟机的ip地址,数据库账号密码(root---123456)后可以看到连接成功了,然后你就可以为所欲为了。
如果你安装了mysql8版本,并且遇到如下错误:
就说明你的连接工具版本太低了,不支持8.0以上版本数据库的连接,换个高版本工具进行连接即可。