来源:未知 时间:2015-10-30 09:18 作者:xxadmin 阅读:次
[导读] 先给上一些网址,里面有各种问题与解决 1.httpsqs官方网址 2.python安装与使用mysql 3.mysql插入数据时:Incorrect string value 4.mysql显示中文乱码 5.修改mysql默认编码 6.linux开机以root身份启动一个...
先给上一些网址,里面有各种问题与解决 1. httpsqs官方网址 2. python安装与使用mysql 3.mysql插入数据时:Incorrect string value 4.mysql显示中文乱码 5.修改mysql默认编码 6.linux开机以root身份启动一个脚本 注意:一下的操作建议全部以root身份运行,不然会出现很多权限问题。。。很烦恼 其实碰到的问题都是一些小问题,因为自己之前都没接触过,所以记下来,方便以后使用。我想做的大致流程是,现有几个python脚本,python脚本里都含有死循环,然后在shell脚本里执行python脚本,接着开机的时候自动执行这些shell脚本,同时,我还需要将httpsqs服务,redis服务,mysql服务开机自启动,因为我的python脚本里使用到了这些服务,因此这些服务要在我的脚本执行之前先开启 启动httpsqs的命令为:httpsqs -d -l (httpsqs服务地址) -p (httpsqs服务端口) -x (httpsqs数据存放地址) 启动redis服务的命令为:/home/bigdata/redis-2.8.12/src/redis-server /home/bigdata/redis-2.8.12/redis.conf ;其中,/home/bigdata/redis-2.8.12/redis.conf为你的redis服务的配置文件 启动mysql服务的命令为:/etc/rc.d/init.d/mysqld start 在使用mysql的时候,因为我要往数据库里插入中文数据,但是mysql默认编码并不支持中文,因而显示的数据中文部分全是问号,即乱码,查看mysql的默认编码如下(如何查看可以参见 5.修改mysql默认编码) 可以看到默认并不支持中文 我们需要修改默认配置文件,我的时redhat服务器,默认配置文件位于/etc/my.cnf 使用vi编辑器打开此文件,修改如下 注意:文件里面之前没有 [client],我自己加的,因此,如果你的文件里没有那个就自己加上哪个;同时注意,[mysqld]下的为 character-set-server=utf8 而不是像[client]下面一样为 default-character-set=utf8,否则启动 mysql会提示: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 打开日志查看就会发现日志报错为: mysqld: unknown variable 'default-character-set=utf8' 修改完之后,我们再看看它的默认编码,如下: 修改成功了,但是当我们在代码里往mysql数据库插入中文数据时,问题又来了,如下: Incorrect string value,详情参见3.mysql插入数据时:Incorrect string value 我的修改后的代码如下: 说明:连接数据库的时候设置连接的编码:charset='utf8' 对于字段时中文的,需要在创建表的时候指定其编码,即代码中创建表里的 author text CHARSET utf8,不过好像如果之前设置了Mysql的默认编码,这步不用也可以。 至此,mysql中文乱码的问题解决了 再来说下httpsqs吧,不知道为什么,突然不能在浏览器里查看队列状态了,使用的时候老碰到这个问题: 以为是httpsqs没开启,原来是httpsqs已经开启了,再使用相同的端口开启时便会报错了,这时我们可以使用命令:pkill httpsqs 杀死httpsqs,再开启这个端口就没问题了,如下: 接下来再说说mysql,运行 mysql -u root -p的时候出现如下错误: 又一个问题: 这里首先要一开始就使用root身份运行,而不要先普通用户,然后再su切换到root运行,具体问题再网上查查。。。 再说下redis,运行redis时出现如下问题: 这是因为redis服务没有开启,开启:/home/bigdata/redis-2.8.12/src/redis-server /home/bigdata/redis-2.8.12/redis.conf 就行了。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 今天使用 redis的时候我想多台电脑连接安装了redis服务的机器,发现在装有redis-server的机器上连接redis-server时,连接的ip要设置为127.0.0.1,不能设置为本机器的ip,否则出现如下问题: [T:2015-09-23 16:08:49,684|F:URLUnique.py-mfUniqueURL|L:80|L:ERROR]:Traceback (most recent call last): File "URLUnique.py", line 59, in mfUniqueURL if self.m_redisOb.exists(pageMD5) is True: File "/usr/local/lib/python2.7/dist-packages/redis/client.py", line 852, in exists return self.execute_command('EXISTS', name) File "/usr/local/lib/python2.7/dist-packages/redis/client.py", line 575, in execute_command connection.send_command(*args) File "/usr/local/lib/python2.7/dist-packages/redis/connection.py", line 558, in send_command self.send_packed_command(self.pack_command(*args)) File "/usr/local/lib/python2.7/dist-packages/redis/connection.py", line 534, in send_packed_command self.connect() File "/usr/local/lib/python2.7/dist-packages/redis/connection.py", line 438, in connect raise ConnectionError(self._error_message(e)) ConnectionError: Error 111 connecting to 192.168.11.178:6379. Connection refused. 然而其他机器连接装有redis-server的机器时,连接ip设置为装有redis-server机器的固定ip却能连上。。。 即假设redis-server机器ip为 192.168.11.178,未装redis-server的机器ip为192.168.11.176,那么如果想在192.168.11.178上连接redis-server,则客户端配置的redis连接ip需为127.0.0.1而非 192.168.11.178;若在192.168.11.176上连接192.168.11.178的redis-server,则其客户端redis配置连接ip为192.168.11.178却可以连上 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 最后再来说下将这些python代码写入shell脚本然后再随机启动吧 shell脚本代码: 开启各个服务代码(start_service.sh) 服务端代码(start_server.sh) 这里我在每条python代码后面都加了一个 & ,为的是让这条python代码在后台执行,因为这些python脚本里都含有死循环 客户端代码(start_client.sh) 这里每条python指令后面也都有一个&符号,原理与上面类似,同时有个循环,即一次性开启5个 好了,接下来就要把这些shell脚本开机自启动了,最简便的方法便是在/etc/rc.d/rc.local文件里加入启动这些shell脚本的命令,加入之后的文件为: 这里先定位到shell脚本的目录,然后执行shell脚本,每条shell脚本后面也加了一个 &,原理与上面类似 到这里就全部结束了,看下运行结果: redis结果: mysql结果 支持中文。。。 最后再提醒下:建议直接使用root身份操作,这样会省去很多麻烦。。。 转:http://m.blog.csdn.net/blog/zlp1992/44598027 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com