centos linux7指令,centos7.4 linux 指令(示例代码)

本文档详细介绍了如何在Linux系统中配置FTP服务器,包括安装vsftpd、启动服务、设置权限,以及禁止用户切换目录。同时,讲解了MySQL的编码设置,通过修改my.cnf文件确保所有编码为UTF-8,并重启服务生效。此外,针对MySQL报错'ONLY_FULL_GROUP_BY',解释了其原因并提供了解决方案。
摘要由CSDN通过智能技术生成

1.查看版本

lsb_release -a

2.查看mysql路径

whereis mysql

3.查看编码

locale

4.安装ftp

安装

yum install -y vsftpd // 安装

systemctl start vsftpd.service // 启动vsftpd服务

ftp权限配置:

vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:

1、vsftpd.conf // 主配置文件

2、ftpusers // 禁止访问 FTP 服务器的用户列表

3、user_list // 用户访问控制

这里只做简单配置,禁止切换目录。编辑 /etc/vsftpd/vsftpd.conf,找到下面两处配置并修改:

anonymous_enable=NO (改为NO) // 禁用匿名用户

chroot_local_user=YES (改为YES) // 禁止切换根目录

切换目录权限配置:

chroot_list_enable=YES/NO(NO)

设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。

chroot_list_file=/etc/vsftpd/chroot_list

用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。

chroot_local_user=YES/NO(NO)

用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。

通过搭配能实现以下几种效果:

1、当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。

2、当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。

3、当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。

4、当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。

故上面配置属于第三种情况,所有用户不能切换到其他目录。

如果使用情况1或者情况2时,要在/etc/vsftpd下新建chroot_list文件,配置相关用户。

重启服务:

systemctl restart vsftpd.service

5.杀进程 PID

kill -9 23754

6.登录mysql

mysql -u root -p

7设置mysql编码

/etc/my.cnf

进入etc文件夹>>vim my.cnf

20180601112726486494.png

* 查看当前mysql运行状态

mysql>status

此时所有编码应该都是UTF-8

8.mysql重启

service mysqld restart

/etc/inint.d/mysqld start

常见问题:

1、本地测试没有问题,部署到客户服务器之后报如下错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘testID’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

原因:

看一下group by的语法:

select 选取分组中的列+聚合函数 from 表名称 group by 分组的列

从语法格式来看,是先有分组,再确定检索的列,检索的列只能在参加分组的列中选。

我当前Mysql版本5.7.17,

再看一下ONLY_FULL_GROUP_BY的意思是:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中,也就是说查出来的列必须在group by后面出现否则就会报错,或者这个字段出现在聚合函数里面。

解决方法:

在 、etc/my.cnf文件添加 (去掉ONLY_FULL_GROUP_BY)

SET sql_mode =‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION‘;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值