linux常见问题汇总(长期顶置更新)

2014/12/23更新:

7.glibc版本查看

把libc.so.6当成执行文件运行下就可以看到版本号

6.GLIBCXX版本查看

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX


 

5.mysql++静态编译方法

mysql++下载来后无法静态编译,加了 –enable-static=yes也不行,不过我们可以直接使用ar命令编译.o文件,命令如下

ar rcu libmysqlpp.a mysqlpp_beemutex.o mysqlpp_cmdline.o mysqlpp_connection.o mysqlpp_cpool.o mysqlpp_datetime.o mysqlpp_dbdriver.o mysqlpp_field_names.o mysqlpp_field_types.o mysqlpp_manip.o mysqlpp_myset.o mysqlpp_mysql++.o mysqlpp_mystring.o mysqlpp_null.o mysqlpp_options.o mysqlpp_qparms.o mysqlpp_query.o mysqlpp_result.o mysqlpp_row.o mysqlpp_scopedconnection.o mysqlpp_sql_buffer.o mysqlpp_sqlstream.o mysqlpp_ssqls2.o mysqlpp_stadapter.o mysqlpp_tcp_connection.o mysqlpp_transaction.o mysqlpp_type_info.o mysqlpp_uds_connection.o mysqlpp_utility.o mysqlpp_vallist.o mysqlpp_wnp_connection.o ssqls2parse_parsev2.o

然后直接使用libmysqlpp.a就好了

 

4.linux下服务自启动几种方法

(1)chkconfig

例如将httpd自启动,首先查看httpd服务是否已经自启动了

#chkconfig --list | grep httpd
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off

如果结果是上述,则使用下面命令打开自启动

#chkconfig httpd on
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

如果httpd没有加入自启动列表,先增加进列表中

#chkconfig --add httpd

(2)修改rc.local文件

例如我们想自启动mysqld_safe,在rc.local中增加如下命令

#mysql
/usr/local/mysql/bin/mysqld_safe &

保存后就可以了

(3)ln软链接的方法就不做介绍了,感觉太麻烦了,大家请自行查阅

 

3.SQLSTATE[HY000] [2003] Can’t connect to MySQL server on ‘ip’ (13)

项目用的centos服务器无故死机,重启后发现上面安装的禅道项目管理软件无法打开,看了log之后发现是连不上数据库,查了好久,才发现是SELinux 不让 httpd 访问外网,使用如下命令查看httpd的参数配置

[root@jzsj sbin]# getsebool -a | grep httpd
allow_httpd_anon_write –> off
allow_httpd_mod_auth_ntlm_winbind –> off
allow_httpd_mod_auth_pam –> off
allow_httpd_sys_script_anon_write –> off
httpd_builtin_scripting –> on
httpd_can_check_spam –> off
httpd_can_network_connect –> off
httpd_can_network_connect_cobbler –> off
httpd_can_network_connect_db –> off
httpd_can_network_memcache –> off
httpd_can_network_relay –> off
httpd_can_sendmail –> off
httpd_dbus_avahi –> on
httpd_enable_cgi –> on
httpd_enable_ftp_server –> off
httpd_enable_homedirs –> off
httpd_execmem –> off
httpd_manage_ipa –> off
httpd_read_user_content –> off
httpd_run_stickshift –> off
httpd_serve_cobbler_files –> off
httpd_setrlimit –> off
httpd_ssi_exec –> off
httpd_tmp_exec –> off
httpd_tty_comm –> on
httpd_unified –> on
httpd_use_cifs –> off
httpd_use_fusefs –> off
httpd_use_gpg –> off
httpd_use_nfs –> off
httpd_use_openstack –> off
httpd_verify_dns –> off

果然httpd_can_network_connect –> off,使用如下命令开启

[root@jzsj sbin]# setsebool httpd_can_network_connect 1

然后禅道访问正常了,用内网IP,127.0.0.1,  0.0.0.1均正常

 

2.codeblocks调试过程中出现Program received signal SIGSEGV, Segmentation fault弹窗

使用CB调试服务器过程中,出现了一个黄色的弹窗,上面提示 Program received signal SIGSEGV, Segmentation fault,而且断点光标停在了一个很明显没有错误的地方。google之signal SIGSEGV。

SIGSEGV:在POSIX兼容的平台上,SIGSEGV是当一个进程执行了一个无效的内存引用,或发生段错误时发送给它的信号。SIGSEGV的符号常量在头文件signal.h中定义。因为在不同平台上,信号数字可能变化,因此符号信号名被使用。通常,它是信号#11。

这个问题大多是因为内存越界,溢出等问题,不过我的并没有这些问题,找了半天也没发现,而且我的程序没有core dump。后来去掉了几个断点发现正常了,觉得应该还是CB的问题,如果你也有这样的问题,先检查代码,然后检查环境。

求一个cb下可以在调试查看指针数据内容的插件,VS用习惯了,用CB感觉不会再爱了

 

1. apache httpd外部机器不能访问网站问题

安装了apache httpd之后,可以通过127.0.0.1或者localhost访问,别的机器不能通过该机器的IP访问,需要修改httpd.conf中的ServerName为本机的IP,这样别的机器就可以通过IP访问了

(本问题是在安装禅道项目管理软件中遇到的)

httpd.conf对于不同的linux系统可能放置的位置不同,可以使用查找命令 find / -name httpd.conf


NickYang

NickYang

无知一码农,现居住于上海,从事游戏服务器端开发
http://www.cppfans.org


Comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注