设为首页 收藏本站
查看: 576|回复: 0

[经验分享] 解决Ubuntu中更改MySQL默认编码报错

[复制链接]

尚未签到

发表于 2018-9-30 12:46:37 | 显示全部楼层 |阅读模式
  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)
  




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-606748-1-1.html 上篇帖子: Jdbc操作Mysql产生中文乱码的问题 下篇帖子: CentOS 6.5编译安装Nginx+MySQL+PHP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表