django连接mysql mysql安装

来源:互联网 发布:网络上的爱国行为 编辑:程序博客网 时间:2024/06/03 09:15

参考了多处,加上自己总结,终于配置好了,小激动  


参考手册:http://www.farfree.cn/book/mysql/
1、安装mysql:
INSTALL上的安装步骤
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip <> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf (我没加)
shell> cd /usr/local/mysql
shell> bin/mysql_install_db --user=mysql (第一次初始化授权)
shell> chown -R root .
shell> chown -R mysql var
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=mysql & (启动)

讲一下我碰到的问题
./configure --prefix=/usr/local/mysql --enable-assembler --enable-thread-safe-client --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --with-charset=`gb2312'
(我尝试过不同的选项,--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock没用,后来装上了还是/tmp/mysql.sock,--with-charset=`gb2312'用这个到后来显示不支持。。)所以去掉了这两个选项,不过最初我安装时一个都没加选项,似乎也可以。
sudo make ——so long time
sudo make install
sudo bin/mysql_install_db --user=mysql
shengyan@LIZZIE:/usr/local/mysql$ sudo chown -R root .
shengyan@LIZZIE:/usr/local/mysql$ sudo chown -R mysql var
shengyan@LIZZIE:/usr/local/mysql$ sudo chgrp -R mysql .
shengyan@LIZZIE:/usr/local/mysql$ sudo bin/mysqld_safe --user=mysql &
接着
bin/mysql -u root -p (输入密码后就可以进入mysql了
但直接输入mysql说ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)是不是没装client??
一些其他的~
mysqladmin version
kill `sudo cat var/HOSTNAME.pid` 停止

sudo bin/mysqld_safe --user=mysql --skip-grant-tables & 不加授权的启动,当密码忘记了可以用这个,进入后再改
sudo bin/mysqladmin -h localhost flush-privileges 更新授权表

sudo bin/mysqladmin -u mysql stop
sudo bin/mysqladmin -u root -p stop????

shengyan@LIZZIE:/usr/local/mysql$ bin/mysql -u root -p*******(作为root)

***************************
网上的资料
如果你忘记了你的MYSQL的root口令的话,你可以通过下面的过程恢复。 
1. 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。
kill `cat /mysql-data-directory/hostname.pid` 
你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。 
2. 使用`--skip-grant-tables' 参数来启动 mysqld。 
3. 使用`mysql -h hostname mysql'命令登录到mysqld server ,用grant命令改变口令。 
也可以用use mysql; update user set password =password('yourpass') where user='root' 
也可以这样做:mysqladmin -h hostname -u user password 'new password'   
4. 载入权限表: mysqladmin -h hostname flush-privileges ,或者使用 SQL 命令`FLUSH PRIVILEGES'。
重启mysqld

2、安装MySQL_python(http://www.djangobook.com/en/beta/chapter05/)
下载后
$ tar xfz MySQL-python-1.2.1.tar.gz
$ cd MySQL-python-1.2.1
$ # edit site.cfg if necessary (编辑mysql_config = /usr/local/mysql/bin/mysql_config为你系统的路径)
$ python setup.py build
$ sudo python setup.py install # or su first
没什么错误的话就安装好了,可以测试
python shell中
import MySQLdb没错误就表示已经有这个模块了,可以继续。。。



1、下载mysql-python

官网地址: http://sourceforge.net/projects/mysql-python/

# cd /usr/local

# wget http://nchc.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz

2、解压

# tar -zxvf MySQL-python-1.2.2.tar.gz

# cd MySQL-python-1.2.2

3、在安装前要做下面几步

     a、修改setup_posix.py中的mysql_config.path为你mysql安装目录的mysql_config路径

         mysql_config.path = "/usr/local/mysql/bin"

(注:mysql_config是一个命令文件,用于编译mysql客户端程序,在进行这一步之前先确定自己是否已经安装libmysqld-dev,否则会在安装的过程中会出现“mysql_config not found”这样的字样。

安装libmysqld-dev命令如下:

[plain] view plaincopy
  1. sudo apt-get install libmysqld-dev  

      修改setup_posix.py中的mysql_config.path为你mysql安装目录的mysql_config路径 ‘/usr/local/mysql/bin/mysql_conf’
 /////这个文件想修改但是一直保存不了 修改了都写和用户权限还是不行,就没修改了

     b、修改site.cfg中的threadsafe = False,mysql_config = /usr/local/mysql/bin/mysql_config

     c、执行命令:(注意这个地方,三条命令都执行)

          # export LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql

          # ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so /usr/lib/libmysqlclient.so.14

          # ldconfig (这个重要)

          否则后面会报错ImportError: libmysqlclient.so.14: cannot open shared object file

4、build和install
    //这里好像少工具,我用的是ubuntu11.10 ,sudo apt-get install python-setuptools 安装个工具
# python setup.py build


(这一步我出错了,出错信息如下:

 

解决方法:

输入命令

[plain] view plaincopy
  1. sudo apt-get install python-dev  

再重复上步


# python setup.py install

5、使用

# python

# >>> import MySSQLdb

如果报错

/usr/lib/python2.3/site-packages/MySQL_python-1.2.2-py2.3-linux-i686.egg/_mysql.py:3: UserWarning: Module _mysql was already imported from /usr/lib/python2.3/site-packages/MySQL_python-1.2.2-py2.3-linux-i686.egg/_mysql.pyc, but /usr/local/src/MySQL-python-1.2.2 is being added to sys.path

原因是,install后MySQLdb模块已经被放到python的site-pachages目录中;但我在当前目录也存在相同的模块,所以可能会重复导入。只要切换到其他目录运行python就可以了。


参考 

http://www.cnphp.info/mysql-python-install-record.html    mysql-python安装记录

   http://blog.csdn.net/jiuduan2009/article/details/6679290  最新linux下安装mysql-python(转载+部分补充)


3、django连接mysql
进入mysql新建一个数据库Blog,并且 GRANT ALL PRIVILEGES ON Blog.* TO lizzie@localhost IDENTIFIED BY '*******' WITH GRANT OPTION;
退出mysql进入一个工程,修改settings.py
DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = 'Blog' # Or path to database file if using sqlite3.
DATABASE_USER = 'lizzie' # Not used with sqlite3.
DATABASE_PASSWORD = '****' # Not used with sqlite3.
DATABASE_HOST = '/tmp/mysql.sock' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '3306'

保存后可以在python shell中测试是否连接正确

python manage.py shell

>>> from django.db import connection
>>> cursor = connection.cursor()
这步没有错误的话就表示连接正确了
然后创建你的models,完成之后执行以下命令
python manage.py validate #检查modes语法逻辑是否正确
python manage.py sqlall blog #blog为工程名,执行这步产生creattable的sql语句,但没有真正的在数据库中创建表
python manage.py syncdb #初始化数据库,真正创建表
ok,没什么错误就可以runserver了

另外:若修改了表结构就是models中的内容,需python manage.py sqlreset blog 或者 python manage.py reset blog
原创粉丝点击