存档

文章标签 ‘mysql’

puppet dashboard安装备忘-数据库

2012年2月3日 没有评论

执行rake RAILS_ENV=production db:migrate之前必须配置database.yml文件,

cp yourapp/config/database.yml.sample database.yml

然后去修改,database.yml文件里面有说明。 也可以参考rubyonrails官方文档

我遇到的错误及解决方法:

提示缺包:直接gem install XXX

执行rake RAILS_ENV=production db:migrate的时候提示“找不到 /tmp/mysql.sock”或者“数据库未配置”

解决方法:1、找到你的mysql.sock路径(查看my.cnf可以看到路径) 做个软连接

ln –s /path/to/mysql.sock /tmp/mysql.sock

2、修改my.cnf [mysqld] 区块的

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

    然后重启mysql server

3、修改yourapp/config/database.yml使用host+port的方式连接数据库,指定host和port。

分类: 关于技术 标签: , , ,

mysql出现诡异错误

2009年4月10日 1 条评论

今天想在装个在线考试系统,就临时在虚拟机里搭了个LAMP环境。

我是用源码编译的方式安装的httpd-2.2.11,php-5.2.9和mysql-5.1.32。

httpd,mysqld都正常启动。

我高兴的把那个ppframe代码mv到到网站目录/usr/local/apache2/htdoc/pp内。

访问 172.16.1.102/pp/ 正常访问,进入安装,但是令人气愤的事情来了,数据库连接失败

错误信息如下:

Connect Database Server Failed:Can’t connect to local MySQL server through socket ‘/usr/local/mysql/tmp/mysql.sock’ (2) Errno(2002)

进入虚拟机,用mysql –u root –p 可以正常连接,囧!可以建库,可以建表。

问了下google,得到的信息也没什么建设性的作用,他们说的可能的错误,我都检查了,没问题

郁闷ing!

明天有事,回来再研究,有熟悉mysql的朋友也帮忙分析分析!

分类: 关于技术 标签: , ,

Mysql命令行下实现数据的导入

2009年1月31日 没有评论

mysql

昨天有个哥们博客搬家,数据库死活搞不上去,用mysql-front连上去也不行。

就向我求助了,我就帮他搞,一会就搞定。现在我就把我的数据导入过程给大家分享下。

本来我机器上装了mysql,所以我就直接用命令行上。

首先,连上数据库

>mysql  -h  mysql服务器ip地址 –u 用户名 –p 数据库名

>输入密码

接下来就是创建库了,很重要的,开始我就是忽略了这一步,才一直导入一直失败!因为你要搬迁到新的mysql服务器,就没有对应你的数据库,所以建个

mysql >create database  你的数据库名;   记住mysql下每个语句后边要加“;”再回车执行

然后使用“use”命令切换到你建的数据库

mysql>use  你的数据库名;

然后导入你备份的数据库,就是.sql文件,利用”source”命令导入

mysql >source 你的.sql文件地址;

导入完就ok了!

简单吧!呵呵

分类: 关于技术 标签: , ,

Python备份Mysql脚本

2009年1月2日 没有评论

这个脚本是基于Python2.x的,是最初学的时候在网上Down的代码,贴出来给大家研究下!

#!/usr/bin/python
import os
import time
import ftplib
import traceback
#config vars
systempathchr="/" #路径分割符,*nix用"/" win32用"\\"
dbuser="root" #数据库用户名
dbpwd="dbpwd" #数据库密码
dbnamelist=["dbone","dbtwo","dbthree"] #需要备份那些数据库
workdir="/path/to/backup/" #本地备份文件夹
errlogfile="databack.log" #错误日志名
ftp_addr="192.168.0.2" #ftp地址
ftp_port="2102" #ftp端口
ftp_user="databack" #ftp用户名
ftp_pwd="backpwd" #ftp密码
ftp_path="/" #存放到ftp路径
ftpqueue=[]

没有仔细看,不过下面这两句,推荐看看os.path模块里面的函数,可能就不用针对linux和win分别设定不同的分隔符了 引用
#config vars
systempathchr=”/” #路径分割符,*nix用”/” win32用”\\”
看到代码里面是用在得到文件名的,可以试试os.path.basename或者os.path.split了

import os.path
>>>os.path.basename("c:\\test\\aa.txt")
'aa.txt'
>>> os.path.split("c:\\test\\aa.txt")
('c:\\test', 'aa.txt')
>>>os.path.split("c:\\test\\aa.txt")[-1]
'aa.txt'
>>>; os.path.basename("/home/test/aa.txt")
'aa.txt'
>>>os.path.split("/home/test/aa.txt")
('/home/test', 'aa.txt')
>>>os.path.basename("/home/test/aa.txt")
'aa.txt'

def ftpstor():
#login
bufsize=1024
ftp=ftplib.FTP()
try:
ftp.connect(ftp_addr,ftp_port)
ftp.login(ftp_user,ftp_pwd)
ftp.cwd(ftp_path)
for filepath in ftpqueue:
#open file for input as binary
f=open(filepath,"rb")
#store file as binary
print getfilename(filepath)
ftp.storbinary("STOR "+getfilename(filepath),f,bufsize)
f.close()
ftp.quit()
except:
path=os.path.join(workdir,errlogfile)
traceback.print_exc(file=open(path,"a"))

def dumpdb(dbname):
global ftpqueue
timeformat="%Y%m%d"
sqlvalformat="mysqldump -u%s -p\"%s\" \"%s\" >\"%s\""
tarvalformat="tar --directory=\"%s\" -zcf \"%s\" \"%s\""
nowdate=time.strftime(timeformat)
dumpfile=os.path.join(workdir,dbname+".dump")
zipfile=os.path.join(workdir,dbname+nowdate+".tar.gz")
sqlval=sqlvalformat % (dbuser,dbpwd,dbname,dumpfile)
result=os.system(sqlval)
tarval=tarvalformat % (workdir,zipfile,dbname+".dump")
result=os.system(tarval)
os.remove(dumpfile)
ftpqueue.append(zipfile)
def getfilename(path):
pt=path.rfind(systempathchr)
return path[pt+1:]
def main():
for dbname in dbnamelist:
dumpdb(dbname)
ftpstor()
main()

Python 3.0的新特性

2009年1月2日 没有评论

呵呵,用了2.5学习很久了。3.0出来了,就安装了个体验一下。发现3.0和2.x有很多不同,我把我发现的给大家分享出来。欢迎大家交流。

First:编码,默认使用UTF-8编码,中文支持变好了,高兴ing,

Second:语法,1)去除了<>,全部改用!=。 

                                2)去除“,全部改用repr() 

                                3)关键词加入as和with。 

                                4)整型除法返回浮点数,要得到整型结果,请使用//。 

                                5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量。 

                                6)去除print语句,加入print()函数实现相同的功能。同样的还有exec语句,已经改为exec()函数。

                                7)去除元组参数解包。不能def(a, (b, c)):pass这样定义函数了。 

                                8)新式的8进制字面量,相应地修改了oct()函数。 

                                9)增加了2进制字面量和bin()函数: 

                               10)扩展的可迭代解包。在Py3.0里,a, b, *rest = seq 和   *rest, a = seq都是合法的。只要求两点:rest                                是list对象和seq是可迭代的。 

                              11)新的super(),可以不再给super()传参数。