环境: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的解决方案