mysql 问题集

环境:ubuntu 12.04/python2.7/django 1.6/mysql:5.5

(1)出现:Access denied for user 'root'@'localhost' (using password: YES)

    原因:root的密码不正确

#借鉴了网友的资料,发现此种方法有效:
#找到/etc/mysql/debian.cnf文件,复制其中的[client]提供的用户名和密码:
#终端下输入:
mysql -udebian-sys-maint -p
Enter password: <输入[client]节的密码>
mysql> use mysql
mysql> UPDATE user SET Password=PASSWORD(’新密码’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
mysql -uroot -p
Enter password: <输入新密码>


(2)mysql重启:

sudo /etc/init.d/mysql start    #启动
sudo /etc/init.d/mysql stop     #暂停
sudo /etc/init.d/mysql restart  #重新启动
#或
sudo /etc/init.d/mysqld start    #启动
sudo /etc/init.d/mysqld stop     #暂停
sudo /etc/init.d/mysqld restart  #重新启动

(3)出现:mysqld_safe A mysqld process already exists,导致数据库无法启动

   原因:已经写的很明白了,有一个mysqld_safe的进程存在,杀掉就好

ps -A|grep mysql #查看mysqld_safe进程ID
kill -9 -pid     # 9:无条件终结pid进程


(4)查看mysql编码和重置编码

show variables like 'char%'; 
set character_set_database(server)=utf8

(5)mysql表名忽略大小写(linux下存在这个问题)

lower_case_table_names=1
需要重启mysql服务生效

(6)中文编码问题:

# 查看字符编码
show variables like 'char%';
# 查看数据库字符编码
show create database DATABASE_NAME;
# 查看表字符编码
show create table TABLE_NAME;


(7)永久性的改变character_set_server=utf8

    实践中发现这样一种情况,set character_set_server = uf8 之后,重启开启客户端,再查询,又变成了latin...

    修改/etc/mysql/my.cnf文件

[client]
default-character-set = utf8
[mysqld_safe]
default-character-set = utf8
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set = utf8
重启mysql服务生效

(8)mysql时区设置

# 查看
show variables like '%time_zone%'; 
# 修改
set time_zone = '+8:00';
# 或者,永久性修改:/etc/mysql/my.cnf 
[mysqld]
default-time-zone = '+8:00'

(9)django syncdb 后同步到mysql数据库后,关于字符集的设定

    官方文档介绍:点击打开链接

# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': '/path/to/my.cnf',
        },
    }
}

# my.cnf
[client]
database = NAME
user = USER
password = PASSWORD
default-character-set = utf8
这样,同步到mysql数据库的表的编码格式就默认utf8了


参考链接:

(1)django创建表时附加数据库自定义选项的方法——如指定数据库的存储引擎

(2)mysql常用的一些命令,用于查看数据库、表、字段编码

(3)Mysql中文乱码问题完美解决方案

(4)ubuntu 系统解决mysql连接问题(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)) 

(5)MySql错误代码1045的解决方案


    


你可能感兴趣的:(mysql,django)