如何在纯净的Centos7 中安装 Mysql8.0
打开网卡
ip a
cd /etc/sysconfig/network-scripts/
然后ls命令查看当前目录里的文件
ls
如果看到如下或类似的名字就使用命令修改它
如果找不到这个的话,可能是虚拟机配置了其他网卡,在安装centos7 的时候选择的网卡例如是ifcfg-eth0 那么就选择这个配置文件进入
使用sudo是为了以管理员权限打开并修改
sudo vi ifcfg-ens33
再打开之后,看到红框中的no
修改为yes
保存之后
(如果你说:怎么打不上字?怎么保存?那么请先看Linux的vi使用教程)
用下方命令重启网络服务
service network restart
之后就可以正式部署mysql了
安装Mysql
一、添加yum源
MySQL官网:https://dev.mysql.com/downloads/repo/yum/
进入官网去选择和是的rpm包,包的作用是添加MySQL yum源,请下载对应的yum源,我用的centos7,下载的是 mysql80-community-release-el7-3.noarch.rpm。下载之后通过XFTP上传文件到服务器,然后执行 yum localinstall 命令:
不一定要跟我一样的
yum localinstall mysql80-community-release-el7-3.noarch.rpm
如果权限不够请使用sudo执行,执行完毕过后我们可以使用 cd /etc/yum.repos.d进入到目录中查看文件,发现会有如下两个文件:
mysql-community.repo
mysql-community-source.repo
二、安装
当我们添加好yum源之后就可以执行安装命令:
yum install mysql-community-server
三、启动
安装完成之后使用 systemctl start 执行启动MySQL命令:
systemctl start mysqld.service
使用 systemctl status mysqld.service 可以查看MySQL的运行状态。
关闭命令:
systemctl stop mysqld.service
重启命令:
systemctl restart mysqld.service
四、修改密码
当MySQL服务启动之后我们就需要对密码进行更改:MySQL 默认创建了 root 用户的密码,这个密码打印在 MySQL 的日志文件/var/log/mysqld.log中,可以通过temporary password关键字来找出这个临时的密码。
grep 'temporary password' /var/log/mysqld.log
你好
找到密码之后使用改密码连接数据库:
mysql -u root -p
然后修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
执行上述命令密码将被修改为:NewPassword
PS:新版本的MySQL对密码强度有限制,执行到上一步的时候,会提示密码强度不够,则应更改为更高强度的密码。
如果这里想设置更简单的密码或者数据库远程连接不上,在网上查的是,出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password.
grep 'temporary password' /var/log/mysqld.log
你好
mysql> show variables like "%validate%";
+--------------------------------------+--------+
| 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 |
+--------------------------------------+--------+
#修改全局变量
mysql> set global validate_password.length=6;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)
#重新修改密码,不会再有错误!
mysql> alter user 'root'@'localhost' identified by '123123';
如果上述更改密码出现1396错误,那么把更改密码的语句替换为:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
密码更改完成之后退出mysql重启MySQL服务:
systemctl restart mysqld.service
五、开放远程连接
MySQL默认只对本机开放连接,我们则需要对mysql表的host字段进行修改以支持其他主机连接,%表示所有。
# 先连接数据库
use mysql;
update user set host = '%' where user = 'root';
更改完成之后刷新权限:
flush privileges;
备注:修改端口和防火墙放行
进入mysql数据库,输入show global variables like ‘port’; 查看端口号
mysql> show global variables like ‘port’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| port | 3306 |
±--------------±------+
1 row in set (0.00 sec)
修改端口,编辑文件,vim /etc/my.conf,添加端口参数:
port=2020
注:2020为我自己修改的端口号!之后连接端口就是2020
然后重启mysql:
systemctl restart mysqld.service
防火墙:
查看防火墙状态:
systemctl status firewalld
如图,防火墙正在运行
开放端口放行:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
加上–permanet参数永久生效,如果前面修改了端口号,此处的3306就应改成对应的端口号,然后使用命令重新读取防火墙规则:
firewall-cmd --reload
至此,MySQL端口号和防火墙配置完毕,可以使用Navicat等连接mysql了!