CentOS7中安装MySQL的详细过程以及配置

首先使用yum安装mariadb,它是MySQL的一个分支。

1
2
sudo yum install -y mariadb-server # 安装mariadb
rpm -qa | grep mariadb # 查看mariadb已安装的相关包

要连上数据库,就得先启动它。所以先尝试下面的启动命令。

1
2
3
4
systemctl start mariadb.service #启动服务
systemctl enable mariadb.service #设置开机启动
systemctl restart mariadb.service #重新启动
systemctl stop mariadb.service #停止MariaDB

启动后,在命令行中输入mysql -u root -proot密码默认为空,直接按回车即可。此时的密码为空,先设置一个密码,方法有多种,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1.用root 进入mysql后
mysql>set password =password('你的密码');
# 或者
mysql>set password for root@localhost = password('hellomysql');
mysql>flush privileges;

2.使用GRANT语句
mysql>grant all on *.* to 'root'@'localhost' IDENTIFIED BY '你的密码'with grant option ;
mysql>flush privileges;

3.进入mysql库修改user表
mysql>use mysql;
mysql>update user set password=password('你的密码') where user='root';
mysql>flush privileges;

如果要从局域网中访问数据库,那么需要紧接着进行下面的配置:

1
2
3
4
5
6
# 选择mysql这个数据库
use mysql;
# 这一句执行完可能会报错,不用管它。
update user set host = '%' where user = 'root';
# 刷新配置
FLUSH PRIVILEGES;

接下来配置防火墙,将3306端口开放:

1
2
sudo firewall-cmd --add-port=3306/tcp --permanent # 开放3306端口
sudo firewall-cmd --reload # 重新读入配置

这个时候应该就可以通过局域网访问了。

如果忘记了root密码怎么办?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 首先,先关闭mysql原来的服务:
systemctl stop mariadb.service

# 开启mysql的安全模式
sudo mysqld_safe --skip-grant-tables&
# 进入mysql,直接修改表中root的密码
mysql>update user set password=password("hellomysql") where user='root';
mysql>flush privileges; # 刷新权限
mysql>exit;
# 然后关闭mysql的安全模式。这里只需要将之前开启的mysql进程关闭掉即可。
ps aux | grep mysqld # 列出mysql的进程信息
sudo kill -s 9 xxxx # 强制关闭进程

# 重新打开mysql服务
systemctl start mariadb.service

关于MySQL中的用户与host
这里写图片描述
仔细观察这个表,我们可以发现同一个root,可能对于不同的host。换个角度,也就是说,同一个用户的不同host,我们可以设置不同的权限以及密码。这是一个在解决了局域网中不能访问数据库这个问题后,本地访问数据库出现了不能访问的情况。不能用密码访问,但是可以无密码访问,无密码访问后,没有任何修改的权限。仔细看上表中的第5行,之前不是这样,上图是被我修改过之后,正常运行的截图。未修改之前,User那一栏是空的,Password也是空的,其它三项权限都是N,所以也不难理解为什么会出现上述的情况。后面手动修改成上面的数据后,变可以以“root+密码”进行访问,并且有相应的权限。

nginx的安装与配置、使用

安装依赖库sudo yum -y install gcc pcre zlib zlib-devel openssl openssl-devel下载&安装下载页面:http://nginx.org/en/download.html此处的下载版本为:http://nginx.org/downlo
阅读更多

CentOS7中FTP服务器的搭建

安装

1
sudo yum -y install vsftpd

配置

首先要新建一个目录,用来充当主目录,然后再新建一个不可登录的用户,指定主目录为之前创建的目录。

1
2
3
4
sudo mkdir /home/ftpfile # 新建目录
sudo useradd ftpuser -d /home/ftpfile -s /sbin/nologin # 新建不可登录用户
sudo chown -R ftpuser.ftpuser /home/ftpfile # 将归属改成新用户
sudo passwd ftpuser # 给新用户设密码

配置可用来登录ftp服务器的用户

1
2
3
4
5
# 将上面新建的用户名填写进去,然后保存退出
sudo vim /etc/vsftpd/chroot_list
# 显示结果如下:
[asahi@localhost ~]$ cat /etc/vsftpd/chroot_list
ftpuser

打开vsftpd的配置文件,位置为:/etc/vsftpd/vsftpd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 登录成功时的欢迎信息
ftpd_banner=Welcome to blah FTP service.
# 登录用户的主页目录
local_root=/home/ftpfile
# 匿名用户的主页目录
anon_root=/home/ftpfile
# 不允许匿名登录,可考虑删除/注释上面一条
anonymous_enable=NO
# 使用本地时间
use_localtime=YES
# 参考一些遇到的问题的解释
allow_writeable_chroot=YES
# 设置可登录的账号
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list # 指向之前创建的chroot_list文件

启动/重启/关闭vsftpd服务

1
2
3
4
sudo systemctl start vsftpd.service
sudo systemctl restart vsftpd.service
sudo systemctl stop vsftpd.service
sudo systemctl status vsftpd.service

一些遇到的问题

ftp相关端口无法访问
因其防火墙设置的原因,相应的端口未开放,所以开启ftp服务后没办法访问。在CentOS7中可以参考下面的设置,来将ftp所需要的一些端口,加入防火墙的开放端口中:

1
2
3
4
5
6
7
8
9
10
11
# 暫時開放 ftp 服務
firewall-cmd --add-service=ftp

# 永久開放 ftp 服務
firewall-cmd --add-service=ftp --permanent

# 永久關閉
firewall-cmd --remove-service=ftp --permanent

# 讓設定生效
systemctl restart firewalld

**vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()**:
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES

Mac中没有ftp命令如何解决:
10.13 以后就没了……..这样操作亲测可以恢复

1
2
3
brew install telnet 
brew install inetutils
brew link --overwrite inetutils

参考:
https://blog.csdn.net/bluishglc/article/details/42399439
http://blog.sina.com.cn/s/blog_43b39e250102v4zt.html
https://blog.csdn.net/zwlww1/article/details/78994698

解决宿主机Mac不能访问虚拟机中CentOS的Tomcat服务器

情况描述

虚拟机中的系统为CentOS,充当服务器,但是开启Tomcat后,在宿主机Mac中无法访问,显示请求被拒接,如下:
这里写图片描述
除此之外,但是可以使用ssh,也可以ping通

分析

初步认为就是防火墙的问题,但是参考iptables的一些停用方法,直接显示没有iptables这个服务;后面想验证到底是宿主机还是虚拟机的问题,在5000端口,跑了一个简单的Flask服务器(在虚拟机中可通过本机ip地址+端口号进行访问),在宿主机中仍然无法访问,同时也通过其他的一些设备来访问相应的服务器,都无法访问,从这里看来,问题还是出在了虚拟机中;后面又在宿主机mac中开启了一个服务器,在虚拟机和其它局域网设备中都可以访问,因此断定还是虚拟机的问题。那么,没有安装iptables的CentOS,究竟是出了什么问题呢?

解决办法

因为我使用的是CentOS 7,使用iptables的版本是7以前的,CentOS 7使用firewall作为防火墙。

查看已经开放的端口:firewall-cmd --list-ports
开启端口:firewall-cmd --zone=public --add-port=80/tcp --permanent

命令含义:

1
2
3
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

重启、停止、禁用、查看防火墙

1
2
3
4
firewall-cmd --reload #重启firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

因此结合上述命令来看,需要将8080端口添加到防火墙的开放端口中,然后重新载入防火墙的配置即可。如下:

1
2
3
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports

最后面来一张成功访问的截图:
这里写图片描述

参考:https://www.cnblogs.com/oskyhg/p/7293915.html

CentOS服务器的简单配置

修改软件源

这里使用阿里云的源,阿里云的镜像地址为:https://opsx.alibaba.com/mirror
1、备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2、下载新的CentOS-Base.repo/etc/yum.repos.d/
CentOS 5
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3、之后运行yum makecache生成缓存

安装以及配置JDK

1、卸载预装的OpenJDK

1
2
rpm -qa | grep jdk
sudo yum remove ****(软件包名,上条命令的输出结果)

2、从Oracle官网下载JDK

下载地址

3、下载完成后,进行安装

1
2
3
4
# 安装
sudo rpm -ivh jdk-8u181-linux-x64.rpm
# 验证安装是否成功
java -version

安装&配置Tomcat

安装操作如下

1
2
3
4
5
6
7
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.33/bin/apache-tomcat-8.5.33.tar.gz
tar -xzvf apache-tomcat-8.5.33.tar.gz
sudo vim /etc/profile
# 添加CATALINA_HOME到最后一行
# export CATALINA_HOME=/home/asahi/devtools/apache-tomcat-8.5.33
# 保存-退出
source /etc/profile

配置UTF-8字符集

因为默认不使用UTF-8,所以我们在web中使用中文时,会出现乱码。
所要修改文件的位置:conf/server.xml
文件需要修改的地方:
这里写图片描述

如何在macOS中编译OpenJDK10源代码

这段时间准备开始学习《深入理解Java虚拟机》,先搭个可以调试的环境出来。按照书中的配置,感觉有许多问题的,这篇文章就用来记录成功编译OpenJDK源代码的一些过程,以及其中的一些配置。配置信息综述系统版本:macOS 10.14 BetaOpenJDK版本:jdk-10+46,TAG链接、zip包
阅读更多

Java中的注解与Spring中的常用注解

在Spring中,有很多的注解,比如@Controller、@Service什么的。之前对注解的了解不够,在使用SSM时,在想到底什么是注解,它的工作原理又是什么或者说它是怎么工作的,为什么注解了之后就能达到某个功能呢?带着这样的一个疑问,开始探索之旅吧!常见的Java内置的注解以及源代码@Over
阅读更多

Linux中的运行级别以及修改

什么是运行级别0: 关机1: 单用户2: 无网络的多用户3: 命令行模式4: 未用5: GUI(图形桌面 模式)6 : 重启一般默认是5,也就是图形模式。在这里作为一个服务器,不怎么需要图形界面,通过ssh来连接,然后做一些服务器的部署应该是足够了。所以需要将默认的5改成3即可。如何切换运行级别使用
阅读更多

jQuery的基础使用方法

jQuery 语法jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。基础语法: $(selector).action()美元符号定义 jQuery选择符(selector)"查询"和"查找" HTML 元素jQuery 的 action
阅读更多

关于org.springframework.web.bind.annotation.RequestMapping

仔细查看maven构建的输入日志后,发现是因为在这个org.springframework.web.bind.annotation包没有导入成功。要怎么才能导入这个包?后面再Stack Overflow上找到一个回答,成功地解决了问题。回答如下:I had the same problem. Aft
阅读更多