显示标签为“mysql”的博文。显示所有博文
显示标签为“mysql”的博文。显示所有博文

2010年7月22日星期四

Python2.6.5不能访问Mysql解决办法

安装ubuntu10.04后,急不可待,安装上python2.6.5(最新版).
再安装上mysql : sudo apt-get install mysql-server-5.1
安装Mysql-python-1.2.3.
>import MySQLdb
报错: libmysqlclient.so.15找不到.

但是在/usr/lib/下,执行: ls libmysql*,发现有libmysqlclient.so.16,于是把16作一个连接符号到15上.发现还是有错.

10.04上已经没有15,只有16,而Mysql-python只使用15,使用ldd可看出
/usr/local/lib/python2.6/dist-packages/MySQL_python-1.2.3c1-py2.6-linux-i686.egg$
ldd _mysql.so
linux-gate.so.1 => (0x0095c000)
libmysqlclient_r.so.15 => /usr/lib/libmysqlclient_r.so.15 (0x00653000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x003e5000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00110000)
libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0x008d4000)
libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0x0026a000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00293000)
libz.so.1 => /lib/libz.so.1 (0x00365000)
/lib/ld-linux.so.2 (0x00df7000)

所以还是要找到15装上.

使用: libmysqlclient15off, 解决问题,下载地址:
http://packages.ubuntu.com/karmic/i386/libmysqlclient15off/download
文件:libmysqlclient15off_5.1.30really5.0.83-0ubuntu3_i386.deb
安装后,再到/usr/local/lib下,输入: ls libmysql*,有了:
libmysqlclient.a libmysqlclient_r.so.15.0.0 libmysqlclient.so.16
libmysqlclient.la libmysqlclient_r.so.16 libmysqlclient.so.16.0.0
libmysqlclient_r.a libmysqlclient_r.so.16.0.0 libmysqlpp.a
libmysqlclient_r.la libmysqlclient.so libmysqlpp.so
libmysqlclient_r.so libmysqlclient.so.15 libmysqlpp.so.3
libmysqlclient_r.so.15 libmysqlclient.so.15.0.0 libmysqlpp.so.3.0.9


再运行import MySQLdb,一切正常.

2009年10月29日星期四

在linux下快速安装一个测试版的Mysql5.4

===========紧作记录,请自行飘过===================

在64位机器上打算安装一个最新的Mysql5.4,下载rpm安装莫名不能使用,版本下错了?!于是转到快速搭建一个mysql,使用上没什么区别。

这里有个参考不知道是在网上到处copy的,可以作为过程参考:http://hi.baidu.com/tim_bi/blog/item/c7a3dd07cf877fca7a894769.html。

这里介绍更为简单。

1. 下载

到http://dev.mysql.com/downloads下找具体版本的mysql,选择Linux (non RPM packages)软件包:mysql-5.4.3-beta-linux-i686-glibc23.tar.gz,其它版本一样。

2. 安装

把此文件包cp|mv到你的home目录,

$tar -zvxf mysql-5.4.3-beta-linux-i686-glibc23.tar.gz

解压后产生一个目录,建议吧此目录名修改短点,如mysql5.4,这样后面好操作点。

$mv mysql-5.4.3-beta-linux-i686-glibc23 mysql5.4

$cd mysql5.4

$cd scripts

创建系统库

$./mysql_install_db --user=用户名&

3. 启动

在mysql5.4目录下

$bin/mysqld_safe --user=用户名&

有输出,回车退出。

$bin/mysql -u root

进入mysql命令行,说明数据库已经可以了。

4. 修改mysql root密码

mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "新密码"

不要把localhost修改为%,保证root用户不能通过网络访问。

也可以使用:

$bin/mysqladmin -u root password 新密码

修改以后,再使用root登陆就要

$bin/mysql -u root -p

再输入密码即可。

5. 停止

$bin/mysqladmin -u root -p shutdown

2008年12月25日星期四

在linux下安装MySQLdb

想试用一下django,使用到mysql,需要安装MySQLdb模块,才能访问数据库,linux是ubuntu。

1 下载:http://sourceforge.net/project/showfiles.php?group_id=22307
下载的文件为:MySQL-python-1.2.2.tar.gz

2 安装
先安装一个包(就这个问题把我折磨半天):
#sudo apt-get install libmysqlclient15-dev

#tar zxvf MySQL-python-1.2.2.tar.gz
#cd MySQL-python-1.2.2
#vi site.cfg
在安装libmysqlclient15-dev时会产生一个文件mysql_config,需要在此配置文件里指明(去掉前面的注释,把值设为下面的值):
mysql_config = /usr/bin/mysql_config

#sudo python ./setup.py build
#sudo python ./setup.py install
完成。

3 试用一下
#python
Python 2.5.2 (r252:60911, Oct 21 2008, 19:50:08)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>>

一切OK!!!

4 补记
我估计另外一种安装可能更方便。
#sudo apt-get install libmysqlclient15-dev
#sudo apt-get install python-mysqldb
一开始就apt-get安装python-mysqldb,装完后却不能用,可能是由于没有安装libmysqlclient15-dev有关。
所以就转到源码安装,也错误一堆,现在想想都是没有安装libmysqlclient15-dev引起的。按照上面的步骤安装好后,可以使用了,就没有尝试apt-get install python-mysqldb是否也好使,你可以试试apt-get安装,若不行的话,转到源码安装。


没想到一个小安装问题,花了4个小时,网上的一些类似问题眼花缭乱,但适用的不多,但有时能寻到一些蛛丝马迹,就是费时。

2008年12月12日星期五

mysql初步记录

1 在ubuntu上一般默认就安装好mysql,可以在命令行
$mysql
试试,若进入mysql控制台说明已经安装。我的输出信息如下:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.0.51a-3ubuntu5.1 (Ubuntu)

2 若没有安装,在ubuntu下安装软件是件愉悦的事:
$sudo apt-get install mysql
不再多说。

3 启停
/etc/init.d/mysql stop|start|restart
或 sudo /usr/sbin/mysqld

4 修改root密码
参看:http://www.linuxdiyf.com/bbs/thread-104290-1-8.html
下面的简要引述。
登录到安全模式下:
$sudo /etc/init.d/mysql stop
$sudo mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
$sudo mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('新密码') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

# /etc/init.d/mysql restart
# mysql -u root -p
Enter password:
以root身份登录到控制台。

5 修改权限
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost;
给root用户付所有权限,也可以使用
GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "新密码";
赋值和修改密码。

6 创建一个用户以及库
mysql>create database 库名;
mysql>GRANT ALL PRIVILEGES ON 库名.* TO 用户名@localhost IDENTIFIED BY "密码";
或下面语句,给予从其它机器上执行的权力:
mysql>GRANT ALL PRIVILEGES ON 库名.* TO 用户名@"%" IDENTIFIED BY "密码";

7 一些常用的命令
mysql>show engines;
#显示支持哪些存储引擎
mysql>show databases;
mysql>use 库名;
mysql>create database 库名;
mysql>drop database 库名;

mysql>create table 表名 engine=
mysql>show tables;
mysql>desc 表名; 或 describe 表名
#查看表的元信息
mysql>load '文件';
#执行文件里的sql(批量执行)

创建表时后面加上 ENGINE=InnoDB 或 Type=InnoDB,指定该表使用InnoDB存储引擎,默认是使用MyISAM,不支持事务。
也可以使用 alter table engine=InnoDB 或 MyISAM

8 配置
mysql默认安装在/etc/mysql下,主要配置文件my.cnf也是在此目录下。
需要修改的并不多,处于优化和定制目的,可能需要修改的列出如下:

#使得远程机器也能访问,活指定一个具体地址
bind-address = 0.0.0.0

#指定数据存放的目录(建议把数据文件存放在不同的物理分区上,会得到更好的性能)
innodb_data_home_dir = /ibdata
innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend:max:500M
innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend:max:1G
还有些和innodb相关的参数。
请参考详细的参数的含义:
http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html#innodb-init

注:默认的一些数据文件存放在/var/lib/mysql/下,如ibdata1是数据文件,ib_logfile0、ib_logfile1为日志文件。


9 参考
更多参考手册:
http://dev.mysql.com/doc/refman/5.1/zh/index.html

2008年11月4日星期二

python访问mysql

import MySQLdb

#host,user,password,dbname
cxn = MySQLdb.connect('10.0.32.83','devuser','devuser1234','supplier_site')
cur = cxn.cursor()
cur.execute('select * from findex limit 0,100')
for rs in cur.fetchall():
print rs

安装MySQLdb模块,参看:

在linux下安装MySQLdb