记一次linux下安装MySQL5.7.21
由于每个人遇到的问题都不一样,所以这篇博客记录的解决方案并不适合所有人,
因为无论对错,最重要的是自己思考得出的结果
一开始参考的安装教程为:https://www.cnblogs.com/moy25/p/8552859.html
但是后来发现其实自己动手安装的时候并不是一帆风顺
由于修改了my.cnf文件 启动时报错
my_print_defaults: Can't read dir of '/etc/my.cnf.' (Errcode: 2 - No such file or directory)
my_print_defaults: [ERROR] Fatal error in defaults handling. Program aborted!
Starting MySQL.my_print_defaults: Can't read dir of '/etc/my.cnf.' (Errcode: 2 - No such file or directory)
my_print_defaults: [ERROR] Fatal error in defaults handling. Program aborted!
my_print_defaults: Can't read dir of '/etc/my.cnf.' (Errcode: 2 - No such file or directory)
my_print_defaults: [ERROR] Fatal error in defaults handling. Program aborted!
The server quit without updating PID file (/data/mysql/iz2z[FAILED]hyn46pifd7z.pid).
看了下翻译,嗯 少个文件
创建了my.cnf.文件后
启动成功,但是登陆时报错
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
于是又找了一下解决方案:https://blog.****.net/weixin_30809173/article/details/98422499
此时登陆
另一个错误来了
ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.
= =? 密码过期是什么鬼?
于是打算重新设置密码,轻车熟路的加上了免密登录skip-grant-tables
启动-------------------------------------------
发现报错信息如下
my_print_defaults: Can't read dir of '/etc/my.cnf' (Errcode: 20 - Not a directory)
顿时傻眼了,怎么把配置文件当成目录来读取了呢?
然后去掉f... 别问我为什么这么随便,因为我也不知道管不管用
然后..启动了.....
登录㕛来了:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
遇事不决先重启
我也不知道什么原理,以后再研究吧
当我准备设置密码永不过期的时候,我看到了这个
[mysqld]
default_password_lifetime=0
设置密码永不过期的全局策略,在my.cnf中[mysqld]加上这一句就完事的事情被我玩了大半天....
然后停一下服务
这就受不了了,我真没动过相关配置 难受的不行
行吧 你说少个那我就建个呗
再次尝试登陆
ok 此时登陆成功了,但是还不够,需要能远程访问
没想到直接给我成功了,还以为至少要配个防火墙什么的
那么附上以前使用过的一些命令,希望能帮到后来人
-----------------------------------------------------------------------------------------------------------------------
systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。
通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。
再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。
如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。
再次执行执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示设置成功
--8080 端口临时指向80端口 (防火墙重启失效)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
---------------------------------------------
firewall-cmd --zone=public --list-ports 查看打开的端口
1.启动防火墙
systemctl start firewalld
2.禁用防火墙
systemctl stop firewalld
3.设置开机启动
systemctl enable firewalld
4.停止并禁用开机启动
sytemctl disable firewalld
5.重启防火墙
firewall-cmd --reload
6.查看状态
systemctl status firewalld或者 firewall-cmd --state
7.查看版本
firewall-cmd --version
8.查看帮助
firewall-cmd --help
9.查看区域信息
firewall-cmd --get-active-zones
10.查看指定接口所属区域信息
firewall-cmd --get-zone-of-interface=eth0
11.拒绝所有包
firewall-cmd --panic-on
12.取消拒绝状态
firewall-cmd --panic-off
13.查看是否拒绝
firewall-cmd --query-panic
14.将接口添加到区域(默认接口都在public)
firewall-cmd --zone=public --add-interface=eth0(永久生效再加上 --permanent 然后reload防火墙)
15.设置默认接口区域
firewall-cmd --set-default-zone=public(立即生效,无需重启)
16.更新防火墙规则
firewall-cmd --reload或firewall-cmd --complete-reload(两者的区别就是第一个无需断开连接,就是firewalld特性之一动态
添加规则,第二个需要断开连接,类似重启服务)
17.查看指定区域所有打开的端口
firewall-cmd --zone=public --list-ports
18.在指定区域打开端口(记得重启防火墙)
firewall-cmd --zone=public --add-port=80/tcp(永久生效再加上 --permanent)
ps -ef|grep java
netstat -anp |grep 端口
tail -f catalina.out
1、开启防火墙
systemctl start firewalld
2、开放指定端口
firewall-cmd --zone=public --add-port=1935/tcp --permanent
命令含义:
--zone #作用域
--add-port=1935/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
3、重启防火墙
firewall-cmd --reload
4、查看端口号
netstat -ntlp //查看当前所有tcp端口·
netstat -ntulp |grep 1935 //查看所有1935端口使用情况·