debuginfo centos?什么是debug

CentOS 6.4中出现Vsftpd中文乱码解决过程

Windows客户端访问FTP应用服务器出现乱码。这是由于UTF-8与GBK不兼容而头疼的引起的,采用源码方式编译安装就可将此问题解决。

乱码解决过程:

1、首先使用 rpm-e vsftpd卸载系统安装的默认VSFTPD应用服务器:

[root@localhost~]# rpm-e vsftpd

2、从网站下载vsftpd-2.2.2-11.el6_3.1.src.rpm源码包。

3、使用 rpm-ivh vsftpd-2.2.2-11.el6_3.1.src.rpm对该包进行安装:

[root@localhost birdofprey]# rpm-ivh vsftpd-2.2.2-11.el6_3.1.src.rpm

安装过程中系统会提示类似如下错误:

warning: vsftpd-2.2.2-11.el6_3.1.src.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

1:vsftpd warning: user mockbuild does not exist- using root

########################################### [100%]

warning: user mockbuild does not exist- using root

warning: group mockbuild does not exist- using root

warning: user mockbuild does not exist- using root

warning: group mockbuild does not exist- using root

warning: user mockbuild does not exist- using root

warning: group mockbuild does not exist- using root

此时需要使用adduser mockbuild命令创建mockbuild用户:

[root@localhost birdofprey]# adduser mockbuild

4、重新使用rpm-ivh vsftpd-2.2.2-11.el6_3.1.src.rpm对该包进行安装:

[root@localhost birdofprey]# rpm-ivh vsftpd-2.2.2-11.el6_3.1.src.rpm

warning: vsftpd-2.2.2-11.el6_3.1.src.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

1:vsftpd########################################### [100%]

5、使用命令 cd/root/ rpmbuild/SOURCES/vsftpd/SOURCES进入vsftpd源码包目录,并使用tar-zxvf vsftpd-2.2.2.tar.gz解压vsftpd-2.2.2.tar.gz源码包:

[root@localhost SOURCES]# tar-zxvf vsftpd-2.2.2.tar.gz

6、使用命令cd vsftdp-2.2.2进入vsfftpd-2.2.2源码目录:

[root@localhost SOURCES]# cd vsftpd-2.2.2

7、使用命令vi features.c修改 features.c文件;将行内容为:vsf_cmdio_write_raw(p_sess," UTF8/r/n");

修改为://vsf_cmdio_write_raw(p_sess," UTF8/r/n")。

8、使用命令vi opts.c修改 opts.c文件;

将handle_opts函数修改成如下:

复制代码

   

代码如下:

void

   handle_opts(struct vsf_session* p_sess)

   {

   str_upper(p_sess-ftp_arg_str);

   //if(str_equal_text(p_sess-ftp_arg_str,"UTF8 ON"))

   //{

   //vsf_cmdio_write(p_sess, FTP_OPTSOK,"Always in UTF8 mode.");

   //}

   //else

   //{

   //vsf_cmdio_write(p_sess, FTP_BADOPTS,"Option not understood.");

   //}

   }

9、返回上层目录并使用 tar-zcvf vsftpd-2.2.2.tar.gz vsftpd-2.2.2/命令重新压缩vsftpd-2.2.2.tar.gz文件:

[root@localhost SOURCES]# tar-zcvf vsftpd-2.2.2.tar.gz vsftpd-2.2.2/

我们使用ls-命令可以看到列表中vsftpd-2.2.2.tar.gz文件创建时间已经为当前创建时间,如下所示:

复制代码

   

代码如下:

-rw-rw-r--. 1 mockbuild mockbuild 186982 5月 3 15:39 vsftpd-2.2.2.tar.gz

   -rw-r--r--. 1 mockbuild mockbuild 2828 2月 13 00:06 vsftpd-2.2.2-uint-uidgid.patch

   -rw-r--r--. 1 mockbuild mockbuild 1640 2月 13 00:06 vsftpd-2.2.2-v6only.patch

   -rw-r--r--. 1 mockbuild mockbuild 514 2月 13 00:06 vsftpd-close-std-fds.patch

   -rwxr-xr-x. 1 mockbuild mockbuild 338 2月 13 00:06 vsftpd_conf_migrate.sh

   -rw-r--r--. 1 mockbuild mockbuild 125 2月 13 00:06 vsftpd.ftpusers

   -rwxr-xr-x. 1 mockbuild mockbuild 2824 2月 13 00:06 vsftpd.init

   -rw-r--r--. 1 mockbuild mockbuild 335 2月 13 00:06 vsftpd.pam

   -rw-r--r--. 1 mockbuild mockbuild 361 2月 13 00:06 vsftpd.user_list

   -rw-r--r--. 1 mockbuild mockbuild 345 2月 13 00:06 vsftpd.xinetd

10、进入源码包下的 SPECS目录,并使用rpmbuild-bb vsftpd.spec命令生成vsftpd-2.2.2-11.el6.1.x86_64.rpm:

[root@localhost SPECS]# rpmbuild-bb vsftpd.spec

此时因为系统缺少依赖包会报如下错误:

error: Failed build dependencies:

libcap-devel is needed by vsftpd-2.2.2-11.el6.1.x86_64

tcp_wrappers-devel is needed by vsftpd-2.2.2-11.el6.1.x86_64

我们可以从CentOS6.4安装盘中找到如下RPM软件包进行手动安装,包名如下:

libattr-2.4.44-7.el6.i686.rpm libcap-devel-2.16-5.5.el6.x86_64.rpm

libattr-2.4.44-7.el6.x86_64.rpm tcp_wrappers-devel-7.6-57.el6.i686.rpm

libattr-devel-2.4.44-7.el6.i686.rpm tcp_wrappers-devel-7.6-57.el6.x86_64.rpm

libattr-devel-2.4.44-7.el6.x86_64.rpm tcp_wrappers-libs-7.6-57.el6.i686.rpm

libcap-2.16-5.5.el6.i686.rpm tcp_wrappers-libs-7.6-57.el6.x86_64.rpm

libcap-2.16-5.5.el6.x86_64.rpm vsftpd-2.2.2-11.el6_3.1.src.rpm

libcap-devel-2.16-5.5.el6.i686.rpm

11、将以上各包使用rpm-ivh*.rpm-force--nodeps命令进行强制安装:

[root@localhost rpm]# rpm-ivh*.rpm--force--nodeps

warning: libattr-2.4.44-7.el6.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

Preparing...########################################### [100%]

1:libattr########################################### [ 8%]

2:libcap########################################### [ 17%]

3:tcp_wrappers-libs########################################### [ 25%]

4:libattr########################################### [ 33%]

5:libcap########################################### [ 42%]

6:tcp_wrappers-libs########################################### [ 50%]

7:tcp_wrappers-devel########################################### [ 58%]

8:libcap-devel########################################### [ 67%]

9:libattr-devel########################################### [ 75%]

10:tcp_wrappers-devel########################################### [ 83%]

11:libcap-devel########################################### [ 92%]

12:libattr-devel########################################### [100%]

12、再次使用rpmbuild-bb vsftpd.spec对vsftpd-2.2.2-11.el6.1.x86_64.rpm包重新进行编译:

[root@localhost SPECS]# rpmbuild-bb vsftpd.spec

13、进入x86_64目录,此时可以看到该目录下已经生成相关RPM包:

命令模式如下:

复制代码

   

代码如下:

[root@localhost RPMS]# cd x86_64/

   [root@localhost x86_64]# ls

   vsftpd-2.2.2-11.el6.1.x86_64.rpm vsftpd-debuginfo-2.2.2-11.el6.1.x86_64.rpm

14、重新安装进行过源码修改的vsftpd应用服务器组件包:

[root@localhost x86_64]# rpm-ivh vsftpd-2.2.2-11.el6.1.x86_64.rpm

Preparing...########################################### [100%]

1:vsftpd########################################### [100%]

15、CentOS6.4修改系统默认字符集:

[root@localhost/]# vi/etc/sysconfig/i18n

将原文件修改为如下内容:

复制代码

   

代码如下:

#LANG="zh_CN.UTF-8"

   LANG="zh_CN.GB18030"

   SUPPORTED="zh_CN.GB18030:zh_CN:zh:zh_CN.GB2312:en_US.UTF-8:en_US:en"

   SYSFONT="latarcyrheb-sun16"

此时所有修改工作已经完成,重起FTP应用服务器之后我们在windows系统中使用IE浏览器以及前期应用软件进行测试中文乱码问题消失。该解决办法同样适用于RHEL6系列操作系统中存在的VSFTPD于windows客户端字符集兼容原因导致的乱码问题。

CentOS64中出现Vsftpd中文乱码解决过程

Windows客户端访问FTP应用服务器出现乱码。这是由于UTF-8与GBK不兼容而头疼的引起的,采用源码方式编译安装就可将此问题解决。

乱码解决过程:

1、首先使用 rpm-e vsftpd卸载系统安装的默认VSFTPD应用服务器:

[root@localhost~]# rpm-e vsftpd

2、从网站下载vsftpd-2.2.2-11.el6_3.1.src.rpm源码包。

3、使用 rpm-ivh vsftpd-2.2.2-11.el6_3.1.src.rpm对该包进行安装:

[root@localhost birdofprey]# rpm-ivh vsftpd-2.2.2-11.el6_3.1.src.rpm

安装过程中系统会提示类似如下错误:

warning: vsftpd-2.2.2-11.el6_3.1.src.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

1:vsftpd warning: user mockbuild does not exist- using root

########################################### [100%]

warning: user mockbuild does not exist- using root

warning: group mockbuild does not exist- using root

warning: user mockbuild does not exist- using root

warning: group mockbuild does not exist- using root

warning: user mockbuild does not exist- using root

warning: group mockbuild does not exist- using root

此时需要使用adduser mockbuild命令创建mockbuild用户:

[root@localhost birdofprey]# adduser mockbuild

4、重新使用rpm-ivh vsftpd-2.2.2-11.el6_3.1.src.rpm对该包进行安装:

[root@localhost birdofprey]# rpm-ivh vsftpd-2.2.2-11.el6_3.1.src.rpm

warning: vsftpd-2.2.2-11.el6_3.1.src.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

1:vsftpd########################################### [100%]

5、使用命令 cd/root/ rpmbuild/SOURCES/vsftpd/SOURCES进入vsftpd源码包目录,并使用tar-zxvf vsftpd-2.2.2.tar.gz解压vsftpd-2.2.2.tar.gz源码包:

[root@localhost SOURCES]# tar-zxvf vsftpd-2.2.2.tar.gz

6、使用命令cd vsftdp-2.2.2进入vsfftpd-2.2.2源码目录:

[root@localhost SOURCES]# cd vsftpd-2.2.2

7、使用命令vi features.c修改 features.c文件;将行内容为:vsf_cmdio_write_raw(p_sess," UTF8\r\n");

修改为://vsf_cmdio_write_raw(p_sess," UTF8\r\n")。

8、使用命令vi opts.c修改 opts.c文件;

将handle_opts函数修改成如下:

复制代码代码如下:

void

handle_opts(struct vsf_session* p_sess)

{

str_upper(&p_sess->ftp_arg_str);

//if(str_equal_text(&p_sess->ftp_arg_str,"UTF8 ON"))

//{

//vsf_cmdio_write(p_sess, FTP_OPTSOK,"Always in UTF8 mode.");

//}

//else

//{

//vsf_cmdio_write(p_sess, FTP_BADOPTS,"Option not understood.");

//}

}

9、返回上层目录并使用 tar-zcvf vsftpd-2.2.2.tar.gz vsftpd-2.2.2/命令重新压缩vsftpd-2.2.2.tar.gz文件:

[root@localhost SOURCES]# tar-zcvf vsftpd-2.2.2.tar.gz vsftpd-2.2.2/

我们使用ls-命令可以看到列表中vsftpd-2.2.2.tar.gz文件创建时间已经为当前创建时间,如下所示:

复制代码代码如下:

-rw-rw-r--. 1 mockbuild mockbuild 186982 5月 3 15:39 vsftpd-2.2.2.tar.gz

-rw-r--r--. 1 mockbuild mockbuild 2828 2月 13 00:06 vsftpd-2.2.2-uint-uidgid.patch

-rw-r--r--. 1 mockbuild mockbuild 1640 2月 13 00:06 vsftpd-2.2.2-v6only.patch

-rw-r--r--. 1 mockbuild mockbuild 514 2月 13 00:06 vsftpd-close-std-fds.patch

-rwxr-xr-x. 1 mockbuild mockbuild 338 2月 13 00:06 vsftpd_conf_migrate.sh

-rw-r--r--. 1 mockbuild mockbuild 125 2月 13 00:06 vsftpd.ftpusers

-rwxr-xr-x. 1 mockbuild mockbuild 2824 2月 13 00:06 vsftpd.init

-rw-r--r--. 1 mockbuild mockbuild 335 2月 13 00:06 vsftpd.pam

-rw-r--r--. 1 mockbuild mockbuild 361 2月 13 00:06 vsftpd.user_list

-rw-r--r--. 1 mockbuild mockbuild 345 2月 13 00:06 vsftpd.xinetd

10、进入源码包下的 SPECS目录,并使用rpmbuild-bb vsftpd.spec命令生成vsftpd-2.2.2-11.el6.1.x86_64.rpm:

[root@localhost SPECS]# rpmbuild-bb vsftpd.spec

此时因为系统缺少依赖包会报如下错误:

error: Failed build dependencies:

libcap-devel is needed by vsftpd-2.2.2-11.el6.1.x86_64

tcp_wrappers-devel is needed by vsftpd-2.2.2-11.el6.1.x86_64

我们可以从CentOS6.4安装盘中找到如下RPM软件包进行手动安装,包名如下:

libattr-2.4.44-7.el6.i686.rpm libcap-devel-2.16-5.5.el6.x86_64.rpm

libattr-2.4.44-7.el6.x86_64.rpm tcp_wrappers-devel-7.6-57.el6.i686.rpm

libattr-devel-2.4.44-7.el6.i686.rpm tcp_wrappers-devel-7.6-57.el6.x86_64.rpm

libattr-devel-2.4.44-7.el6.x86_64.rpm tcp_wrappers-libs-7.6-57.el6.i686.rpm

libcap-2.16-5.5.el6.i686.rpm tcp_wrappers-libs-7.6-57.el6.x86_64.rpm

libcap-2.16-5.5.el6.x86_64.rpm vsftpd-2.2.2-11.el6_3.1.src.rpm

libcap-devel-2.16-5.5.el6.i686.rpm

11、将以上各包使用rpm-ivh*.rpm-force--nodeps命令进行强制安装:

[root@localhost rpm]# rpm-ivh*.rpm--force--nodeps

warning: libattr-2.4.44-7.el6.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

Preparing...########################################### [100%]

1:libattr########################################### [ 8%]

2:libcap########################################### [ 17%]

3:tcp_wrappers-libs########################################### [ 25%]

4:libattr########################################### [ 33%]

5:libcap########################################### [ 42%]

6:tcp_wrappers-libs########################################### [ 50%]

7:tcp_wrappers-devel########################################### [ 58%]

8:libcap-devel########################################### [ 67%]

9:libattr-devel########################################### [ 75%]

10:tcp_wrappers-devel########################################### [ 83%]

11:libcap-devel########################################### [ 92%]

12:libattr-devel########################################### [100%]

12、再次使用rpmbuild-bb vsftpd.spec对vsftpd-2.2.2-11.el6.1.x86_64.rpm包重新进行编译:

[root@localhost SPECS]# rpmbuild-bb vsftpd.spec

13、进入x86_64目录,此时可以看到该目录下已经生成相关RPM包:

命令模式如下:

复制代码代码如下:

[root@localhost RPMS]# cd x86_64/

[root@localhost x86_64]# ls

vsftpd-2.2.2-11.el6.1.x86_64.rpm vsftpd-debuginfo-2.2.2-11.el6.1.x86_64.rpm

14、重新安装进行过源码修改的vsftpd应用服务器组件包:

[root@localhost x86_64]# rpm-ivh vsftpd-2.2.2-11.el6.1.x86_64.rpm

Preparing...########################################### [100%]

1:vsftpd########################################### [100%]

15、CentOS6.4修改系统默认字符集:

[root@localhost/]# vi/etc/sysconfig/i18n

将原文件修改为如下内容:

复制代码代码如下:

#LANG="zh_CN.UTF-8"

LANG="zh_CN.GB18030"

SUPPORTED="zh_CN.GB18030:zh_CN:zh:zh_CN.GB2312:en_US.UTF-8:en_US:en"

SYSFONT="latarcyrheb-sun16"

此时所有修改工作已经完成,重起FTP应用服务器之后我们在windows系统中使用IE浏览器以及前期应用软件进行测试中文乱码问题消失。该解决办法同样适用于RHEL6系列操作系统中存在的VSFTPD于windows客户端字符集兼容原因导致的乱码问题。

在CentOS上安装Percona服务器的方法

在这篇文章中我们将了解关于 Percona服务器,一个开源的MySQL,MariaDB的替代品。InnoDB的数据库引擎使得Percona服务器非常有吸引力,如果你需要的高性能,高可靠性和高性价比的解决方案,它将是一个很好的选择。

在下文中将介绍在CentOS 7上 Percona服务器的安装,以及备份当前数据,配置的步骤和如何恢复备份。

1.什么是Percona,为什么使用它

Percona是一个MySQL,MariaDB数据库的开源替代品,它是MySQL的一个分支,相当多的改进和独特的功能使得它比MYSQL更可靠,性能更强,速度更快,它与MYSQL完全兼容,你甚至可以在Oracle的MySQL与Percona之间使用复制。

在Percona中独具特色的功能

分区适应哈希搜索

快速校验算法

缓冲池预加载

支持FlashCache

MySQL企业版和Percona中的特有功能

从不同的服务器导入表

PAM认证

审计日志

线程池

现在,你肯定很兴奋地看到这些好的东西整合在一起,我们将告诉你如何安装和对Percona Server做基本配置。

2.备份你的数据库

接下来,在命令行下使用SQL命令创建一个mydatabases.sql文件,来重建或恢复salesdb和employeedb数据库,根据你的设置替换数据库名称,如果没有安装MySQL则跳过此步:

代码如下:

mysqldump-u root-p--databases employeedb salesdb mydatabases.sql

复制当前的配置文件,如果你没有安装MYSQL也可跳过:

代码如下:

cp my.cnf my.cnf.bkp

3.删除之前的SQL服务器

停止MYSQL/MariaDB,如果它们还在运行:

代码如下:

systemctl stop mysql.service

卸载MariaDB和MYSQL:

代码如下:

yum remove MariaDB-server MariaDB-client MariaDB-shared mysql mysql-server

移动重命名放在/var/lib/mysql当中的MariaDB文件。这比仅仅只是移除更为安全快速,这就像2级即时备份。:)

代码如下:

mv/var/lib/mysql/var/lib/mysql_mariadb

4.使用二进制包安装Percona

你可以在众多Percona安装方法中选择,在CentOS中使用Yum或者RPM包安装通常是更好的主意,所以这些是本文介绍的方式,下载源文件编译后安装在本文中并没有介绍。

从Yum仓库中安装:

首先,你需要设置Percona的Yum库:

代码如下:

yum install

接下来安装Percona:

代码如下:

yum install Percona-Server-client-56 Percona-Server-server-56

上面的命令安装Percona的服务器和客户端、共享库,可能需要Perl和Perl模块,以及其他依赖的需要,如DBI::MySQL。如果这些尚未安装,可能需要安装更多的依赖包。

使用RPM包安装:

我们可以使用wget命令下载所有的rpm包:

代码如下:

wget-r-l 1-nd-A rpm-R"*devel*,*debuginfo*"/

使用rpm工具,一次性安装所有的rpm包:

代码如下:

rpm-ivh Percona-Server-server-55-5.5.42-rel37.1.el7.x86_64.rpm/

Percona-Server-client-55-5.5.42-rel37.1.el7.x86_64.rpm/

Percona-Server-shared-55-5.5.42-rel37.1.el7.x86_64.rpm

注意在上面命令语句中最后的反斜杠'/'(只是为了换行方便)。如果您安装单独的软件包,记住要解决依赖关系,在安装客户端之前要先安装共享包,在安装服务器之前请先安装客户端。

5.配置Percona服务器

恢复之前的配置

当我们从MariaDB迁移过来时,你可以将之前的my.cnf的备份文件恢复回来。

代码如下:

cp/etc/my.cnf.bkp/etc/my.cnf

创建一个新的my.cnf文件

如果你需要一个适合你需求的新的配置文件或者你并没有备份配置文件,你可以使用以下方法,通过简单的几步生成新的配置文件。

下面是Percona-server软件包自带的my.cnf文件

代码如下:

# Percona Server template configuration

[mysqld]

#

# Remove leading# and set to the amount of RAM for the most important data

# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

# innodb_buffer_pool_size= 128M

#

# Remove leading# to turn on a very important data integrity option: logging

# changes to the binary log between backups.

# log_bin

#

# Remove leading# to set options mainly useful for reporting servers.

# The server defaults are faster for transactions and fast SELECTs.

# Adjust sizes as needed, experiment to find the optimal values.

# join_buffer_size= 128M

# sort_buffer_size= 2M

# read_rnd_buffer_size= 2M

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

根据你的需要配置好my.cnf后,就可以启动该服务了:

代码如下:

systemctl restart mysql.service

如果一切顺利的话,它已经准备好执行SQL命令了,你可以用以下命令检查它是否已经正常启动:

代码如下:

mysql-u root-p-e'SHOW VARIABLES LIKE"version_comment"'

如果你不能够正常启动它,你可以在/var/log/mysql/mysqld.log中查找原因,该文件可在my.cnf的[mysql_safe]的log-error中设置。

代码如下:

tail/var/log/mysql/mysqld.log

你也可以在/var/lib/mysql/文件夹下查找格式为[主机名].err的文件,就像下面这个例子:

代码如下:

tail/var/lib/mysql/centos7.err

如果还是没找出原因,你可以试试strace:

代码如下:

yum install strace systemctl stop mysql.service strace-f-f mysqld_safe

上面的命令挺长的,输出的结果也相对简单,但绝大多数时候你都能找到无法启动的原因。

6.保护你的数据

好了,你的关系数据库管理系统已经准备好接收SQL查询,但是把你宝贵的数据放在没有最起码安全保护的服务器上并不可取,为了更为安全最好使用mysqlsecureinstall来安装,这个工具可以帮助你删除未使用的默认功能,并设置root的密码,限制使用此用户进行访问。只需要在shell中执行该命令,并参照屏幕上的说明操作。

代码如下:

mysql_secure_install

7.还原备份

如果您参照之前的设置,现在你可以恢复数据库,只需再用mysqldump一次。

代码如下:

mysqldump-u root-p mydatabases.sql

恭喜你,你刚刚已经在你的CentOS上成功安装了Percona,你的服务器已经可以正式投入使用;你可以像使用MySQL一样使用它,你的服务器与它完全兼容。

总结

为了获得更强的性能你需要对配置文件做大量的修改,但这里也有一些简单的选项来提高机器的性能。当使用InnoDB引擎时,将innodbfileper_table设置为on,它将在一个文件中为每个表创建索引表,这意味着每个表都有它自己的索引文件,它使系统更强大和更容易维修。

可以修改innodbbufferpool_size选项,InnoDB应该有足够的缓存池来应对你的数据集,大小应该为当前可用内存的70%到80%。

将innodb-flush-method设置为O_DIRECT,关闭写入高速缓存,如果你使用了RAID,这可以提升性能,因为在底层已经完成了缓存操作。

如果你的数据并不是十分关键并且并不需要对数据库事务正确执行的四个基本要素完全兼容,可以将innodbflushlogattrx_commit设置为2,这也能提升系统的性能。

阅读剩余
THE END