Ubuntu中更改MySQL默认编码报错的解决

Ubuntu 12.04,安装了MySQL,完了之后,更改了字符编译,就报错。感觉很郁闷。

环境:

root@ubuntu:~# uname -a

Linux ubuntu 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

使用的  apt-get install mysql-server安装的,然后改变了一下默认的字符集,在/etc/mysql/my.cnf里面的[mysqld]和[client]里加了
default-character-set=utf8,重启就不行了。

root@ubuntu:~# service mysql start

start: Job failed to start

看了系统日志,报了以下内容

Jun 11 22:56:42 ubuntu kernel: [ 4051.584941] init: mysql main process (4021) terminated with status 7

Jun 11 22:56:42 ubuntu kernel: [ 4051.584981] init: mysql main process ended, respawning

Jun 11 22:56:43 ubuntu kernel: [ 4052.134766] init: mysql post-start process (4022) terminated with status 1

Jun 11 22:56:43 ubuntu kernel: [ 4052.154739] type=1400 audit(1339469803.511:40): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=4068 comm="apparmor_parser"

Jun 11 22:56:44 ubuntu kernel: [ 4053.619246] init: mysql main process (4072) terminated with status 7

Jun 11 22:56:44 ubuntu kernel: [ 4053.619296] init: mysql main process ended, respawning

Jun 11 22:56:45 ubuntu kernel: [ 4054.248707] init: mysql post-start process (4073) terminated with status 1

Jun 11 22:56:45 ubuntu kernel: [ 4054.269778] type=1400 audit(1339469805.627:41): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=4119 comm="apparmor_parser"

Jun 11 22:56:47 ubuntu kernel: [ 4055.733347] init: mysql main process (4123) terminated with status 7

Jun 11 22:56:47 ubuntu kernel: [ 4055.733389] init: mysql respawning too fast, stopped

root@ubuntu:~#

纠结了很长时间,今天无意中测试,意外解决了问题,呵呵,不得不说,RP爆发。

配置文件如下

root@ubuntu:/etc/mysql# cat /etc/mysql/my.cnf | grep -v '^#'

[client]
default-character-set=utf8 #这里其实不用指定的,如果要指定,要用这个指令。
port            = 3306
socket          = /var/run/mysqld/mysqld.sock 

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
character_set_server=utf8 #要使用这个命令,default-character-set=utf8会报错
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
bind-address            = 127.0.0.1
key_buffer              = 16M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8
myisam-recover         = BACKUP
query_cache_limit       = 1M
query_cache_size        = 16M
expire_logs_days        = 10
max_binlog_size         = 100M 

[mysqldump]
quick
quote-names
max_allowed_packet      = 16M 

[mysql] 

[isamchk]
key_buffer              = 16M 

!includedir /etc/mysql/conf.d/
root@ubuntu:/etc/mysql#

可以看出,在[client]和[myslqd]段中,设置字符编码使用的指令不一样。

然后重启mysql就可以了

root@ubuntu:/etc/mysql# service mysql restart
mysql stop/waiting
mysql start/running, process 6981
root@ubuntu:/etc/mysql# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 147
Server version: 5.5.22-0ubuntu1 (Ubuntu) 

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索mysql
, ubuntu
, kernel
, init
, process
, ubuntu profile
, mysqld
, ubuntu oracle
Ubuntu中mysql操作
ubuntu mysql默认密码、ubuntu mysql 编码、ubuntu mysql编码设置、ubuntu 更改mysql密码、ubuntu修改mysql编码,以便于您获取更多的相关知识。

时间: 2025-01-02 06:39:35

Ubuntu中更改MySQL默认编码报错的解决的相关文章

求助:ubuntu中dpkg 安装deb时候报错

问题描述 求助:ubuntu中dpkg 安装deb时候报错 ubuntu中dpkg 安装deb时候报错:unable to open file '/var/lib/dpkg/tmp.ci//.svn': Is a directory 解决方案 https://lkubuntu.wordpress.com/2011/06/29/easy-way-to-fix-dpkg-svn-error/ 解决方案二: 多谢,这个方法中 http://pastebin.com/AvtFVRuK打不开,没办法得到s

Ubuntu下开启php调试模式报错信息解决办法_Linux

Ubuntu下开启php调试模式报错信息解决办法 在Ubuntu下php的缺省设置是不显示错误信息的,如果程序出错会显示"无法处理此请求的错误提示",这在开发环境下非常不方便. 其实我们只要编辑下apache的配置文件就好 1.我的apache 配置文件目录是/etc/apache2/apache2.conf sudo vim /etc/apache2/apache2.conf 再最后加入以下两行 php_flag display_errors on php_value error_r

mysql查询语句报错,怎么解决?

问题描述 mysql查询语句报错,怎么解决? unexpected token: h near line 1, column 142 [select count(o) from com.hm.dao.entity.Tenant o ,Houserentalinfo r ,com.hm.dao.entity.Houses h where o.id = r.userId and r.houseId = h.id and h.housePurpose = ' 公寓房 ' ] 解决方案 错误日志呢?可能

ubuntu下修改mysql的datadir报错

执行/etc/init.d/mysql start启动后,报错内容如下:  代码如下 复制代码 Can't find file: "./mysql/plugin.frm'(errno:13) [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 执行mysql_upgrade时,同样报错.将配置还原,重启正常.因为只改动了/etc/mysql/my.cnf的这一项值,确定修改内容正确.在

MySQL Administrator 登录报错的解决方法_Mysql

使用MySQL Administrator 登录,报错: Either the server service or the configuration file could not be found.Startup variable and service section are there for disabled. 使用Root 登录进去以后看到管理功能都是禁止掉的,提示: This section is only avaliable when connected to localhost

node.js缺少mysql模块运行报错的解决方法_node.js

发现问题 在用node.js连接数据库,运行报错:cannot find module 'mysql: 然后 在管理员和用户下分别用npm安装数据库但是都是失败: 解决方法 按照错误日志应该是找不到文件夹,无法打开package.json这个文件,刚开始没有理解这个错误,最后我进入到project目录运行npm安装数据库成功: 在项目的modules下面也有这个模块了: 总结

Ubuntu下更改Mysql默认字符集

在ubuntu安装Mysql Server比较简单,一条命令就可以搞定,如下: sudo apt-get install mysql-server 但是用apt-get安装mysql不能设置默认字符集,可能是我不明白怎么弄,安装完默认字符集是latin1,可以登录mysql后用status命令查看,显示内容如下: root@ubuntu-vm:/home/kuuyee# mysql -u root -p Enter password: Welcome to the MySQL monitor.

hql-HQL中使用占位符查询mysql数据老是报错...

问题描述 HQL中使用占位符查询mysql数据老是报错... 执行语句如下: Session session = HibernateUtil.getSession(); String hql = "from Category where name=?"; Query query = session.createQuery(hql); query.setString(0, "饮品"); 错误: ava.lang.NoSuchMethodError: org.hiber

如何在 Ubuntu 中更改默认浏览器和 Email 客户端

Ubuntu 自带了一些已经预装的默认应用程序,包括非常流行的 Mozilla 火狐浏览器和 Thunderbird 的 e-mail 客户端. 尽管这两个应用都有它们自己的粉丝,但是没有一个应用能符合每个人的口味和需要.我们经常收到邮件或者推文,询问我们可以怎样在 Ubuntu 上更改默认浏览器或者设置处理邮件链接为不同的电子邮件客户端等. 我们在这里不仅讨论如何安装不同的软件,还包括如何给一个特定的文件,链接或者内容类型设置其系统处理应用. 在 Ubuntu 中更改默认应用程序,包括浏览器.