Linux(centOS7)安装Mysql8
一.准备:
1.使用远程连接工具登录Linux(centOS7)系统;
2.卸载系统自带mysql(方法请自行网查);
3.新建mysql文件夹;
4.MySQL8.0安装包:
链接:https://pan.baidu.com/s/1FfRSJT8M4Eb4o24luhfW9w
提取码:b98h
5.将下载到的文件上传到新建的mysql文件夹内(上传命令:[****@localhost local]# rz)。
二.开始:
1.解压文件:
tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
得到以下文件:
2.安装依赖:
yum -y install libaio
yum -y install net-tools
yum -y install perl
3:安装Mysql组件:
因为具有依赖关系,所以我们需要按顺序执行,顺序如下:
rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm
安以以上组件即可。
默认数据存储路径/var/lib/mysql 配置文件路径/etc/my.cnf。
4:启动mysql:
查看mysql是否启动:service mysqld status
启动mysql:service mysqld start
停止mysql:service mysqld stop
重启mysql:service mysqld restart
启动状态如下图:
5.修改mysql密码:
1) mysql安装完成之后我们是没有设置密码的,但是mysql为我们设置了一个临时的密码,我们可以查看mysql的日志知道这个临时密码:
查看临时密码:grep password /var/log/mysqld.log
得到临时密码为:o.4.R<aakjJ5
2) 命令:mysql -p 登录mysql,密码为刚得到的临时密码(区分大小写):o.4.R<aakjJ5
3)修改密码(mysql8密码设置规则为密码需由大小写英文、数字、特殊符号):
ALTER user 'root'@'localhost' IDENTIFIED BY '[email protected]';
4) 由于mysql8相较之前版本密码加密有所改变,因此我们需要修改加密规则,
一开始鄙人未修改,出现使用navcat连接时,报错1521:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码' PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; #更新一下用户的密码
FLUSH PRIVILEGES; #刷新权限
注意:
在修改加密规则之前需要查看你的root用户下的host是否修改过
查看方法:
先登录mysql
mysql -u root -p
输入密码
mysql> use mysql;
mysql> select user,host from user;
如上roo对应host为%是因为我之前修改过远程访问权限(后边会讲到):
出现以上内容或者执行命令时提示以下错误:
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'
需将'localhost'改为'%'方可执行。
至此 mysql8.0安装以及修改密码设置完成。
6.设置允许远程连接:
mysql -u root -p
use mysql;
update user set host = '%' where user = 'root';
flush privileges;
至此,应该明白,刚刚为什么修改加密规则时执行命令报错或者为什么你的root用户的host为“%”,可能你提前执行了这一步,然后自己又忘了。
以下部分原文
7.防火墙开发3306端口:
以上配置完毕后,需要将3306端口开放,才能使用Navcat连接:
1)查看 firewalld 状态
systemctl status firewalld
2)开启 firewalld
systemctl start firewalld
3)开放端口
// --permanent 永久生效,没有此参数重启后失效
firewall-cmd --zone=public --add-port=3306/tcp --permanent
4)重新载入
firewall-cmd --reload
5)查看是否开启成功(返回:yes即表示成功)
firewall-cmd --zone=public --query-port=80/tcp
6)删除
firewall-cmd --zone=public --remove-port=3306/tcp --permanent