Heim >Datenbank >MySQL-Tutorial >解决Ubuntu 12.04中更改MySQL默认编码报错

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

WBOY
WBOYOriginal
2016-06-07 17:25:311216Durchsuche

Ubuntu 12.04,安装了MySQL,完了之后,更改了字符编译,就报错。感觉很郁闷。 环境: root@ubuntu:~# uname -a Linux ubuntu 3.2

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" 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" 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)

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn