参考手册:
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()
下载后
$ 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没错误就表示已经有这个模块了,可以继续。。。
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中测试是否连接正确
>>> 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