0 安装前事宜:检查系统有无自带的mysql旧版本或者默认的MariaDB
rpm -qa|grep -i mysql
若返回为空即开始安装新版本mysql(8.0)
官网下载tar包,官网链接https://dev.mysql.com/downloads/mysql/
选择redhat-linux,版本的8.0 -bundle.tar(无需注册,直接下载)
1 传包,解压,安装rpm包
使用mobxterm终端工具登陆目标虚拟机,切换至root用户后,在左侧sftp工具栏上传本地mysql8.0 tar包
mkdir -p /usr/local/mysql/ 先创建一个mysql的文件夹
mv mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar /usr/local/mysql/ 移动MySQL安装包到mysql文件夹
在当前文件夹中执行mysql解包:tar -xvf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar
查看解包后的rpm文件 ll
删除原tar包文件
rm -rf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar
安装Mysql安装顺序安装
rpm -ivh mysql-community-common-8.0.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.20-1.el7.x86_64.rpm
在执行安装库文件时报错,报错如下
rpm -ivh mysql-community-libs-8.0.20-1.el7.x86_64.rpm
warning: mysql-community-libs-8.0.20-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
mariadb-libs is obsoleted by mysql-community-libs-8.0.20-1.el7.x86_64
根据依赖报错需要删除原有的库文件yum remove mysql-libs解决
继续安装client和server安装完成后查询
通过rpm -qa | grep mysql 查询已安装的mysql
rpm -qa | grep mysql
mysql-community-server-8.0.20-1.el7.x86_64
mysql-community-common-8.0.20-1.el7.x86_64
mysql-community-libs-8.0.20-1.el7.x86_64
mysql-community-client-8.0.20-1.el7.x86_64
可以看出我们刚才安装的4个mysql的rpm包均已经安装成功。
2 初始化数据库,启动mysqld服务,并加入开机启动项,改变mysql的属主为mysql用户
mysqld --initialize 初始化Mysql
chown mysql:mysql /var/lib/mysql -R 将MySQL的库文件属主和属组变更为mysql账户
systemctl start mysqld.service 启动mysql服务
systemctl enable mysqld 将mysql加入到开机启动
3 查询mysql默认密码,初次登陆mysql并修改默认密码
刚才初始化后,为mysql8.0自动生成了密码,在mysql运行日志里检索密码关键字
cat /var/log/mysqld.log | grep temporary
2020-08-12T07:50:54.460145Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: s?ygtKl)!7_j
通过 mysql -uroot -p 敲回车键进入数据库登陆界面
通过 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; 命令来修改密码
修改密码后报错,报错如下:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'cgsl@123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查询密码策略SHOW VARIABLES LIKE 'validate_password%';
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.01 sec)
validate_password_policy 这个参数用于控制validate_password的验证策略 0-->low 1-->MEDIUM 2-->strong。
重新定义密码字符修改成功。
通过 exit; 命令退出 MySQL,然后通过新密码再次登陆
4 通过以下命令,进行远程访问的授权
创建远程登录账户:
create user 'root'@'%' identified with mysql_native_password by 'Cgsl@456';
赋予远程登录账户所有权限
grant all privileges on *.* to 'root'@'%' with grant option;
刷新权限
flush privileges;
命令修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Cgsl@123' PASSWORD EXPIRE NEVER;
刷新权限
flush privileges;
5 centos7主机上进行mysql服务端口放通
1 firewall-cmd --zone=public --add-port=3306/tcp --permanent
#下面3行是参数说明
#–zone #作用域
#–add-port=80/tcp #添加端口,格式为:端口/通讯协议
#–permanent #永久生效,没有此参数重启后失效
#重启防火墙后看看是否生效
2 firewall-cmd --reload #重启firewall
3 firewall-cmd --list-ports #查看已经开放的端口
3306/tcp
6 图形化工具验证mysql远程登录
先查下本机ip
使用图形化工具登录mysql8.0(推荐使用navicat for Mysql)
连接名:即自定义的会话名 如:mysql8.0
IP地址:远程主机的ip地址
密码:root'@'%
输出这些关键信息后,点击连接测试,连接成功。
连接成功后,可以显示mysql数据库服务器上的数据库,如下: