配置mysql默认编码格式 && 解决Can't connect to local MySQL server through socket 问题

原创 2015年12月22日 11:14:44
  • 配置mysql默认编码格式
  • Linux连接MySQL时的错误:Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’

    网页数据一般采用UTF8编码,而数据库默认为latin 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。
    在配置mysql默认编码格式为utf8时遇到如下问题,记下来以作参考。

1. 配置mysql默认编码格式为utf8

    我们可以通过命令查看数据库当前编码:

mysql> SHOW VARIABLES LIKE 'character%';

    发现数据库当前默认编码格式为:

|character_set_client      | latin1                                   |
| character_set_connection | latin1                                   |
| character_set_database   | latin1                                   |
| character_set_filesystem | binary                                   |
| character_set_results    | latin1                                   |
| character_set_server     | latin1                                   |
| character_set_system     | latin1                                   |

    打开mysql配置文件my.cnf,在[client]和[mysql]下添加default-character-set=utf8,在[mysqld]下添加character-set-server=utf8。终端输入命令打开my.cnf:

$ sudo vim /etc/my.cnf

    注:如果/etc下面没有my.cnf配置文件,可从/etc/mysql/my.cnf复制过去,更改的时候/etc/my.cnf和/etc/mysql/my.cnf都更改,并保持一致。

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8

    保存之后重启mysql:

$ sudo /etc/init.d/mysql stop
    * Stopping MySQL database server mysqld                                 [ OK ]
$ sudo /etc/init.d/mysql start
    * Starting MySQL database server mysqld                                 [ OK ]

    进入mysql查看当前数据库默认编码格式:

$ mysql -u root -p

mysql> SHOW VARIABLES LIKE 'character%'; 

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

    进行到这里修改mysql默认编码格式完成!

2. 配置mysql默认编码格式为过程中遇到的问题

    (1)修改好配置文件my.cnf之后,采用了killall mysql 以及killall mysqld,然后重启mysql的时候报错:

$ sudo /etc/init.d/mysql start
* Starting MySQL database server mysqld                                 [ failed]

    使用> mysql -u root -p登陆是出现下面的错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

    通过命令查看mysql启动情况:

>$  ps -ef | grep mysql

root 28221 27474 0 14:18 pts/0 00:00:00 grep mysql   只有这一条

    至此,我可以确定,mysql无法启动。

    (2)我开始排错,首先发现/tmp/mysql.sock不存在

>$ vim /etc/my.cnf

socket=/var/lib/mysql/mysql .sock

/var/lib/mysql/mysql .sock同样不存在 

>$ find / -name mysql.sock

    显示为空,未查询到mysql.sock文件,mysql.sock文件丢失了。

    重启之后仍然有错,mysql.sock未自动生成。
    接下来了解到mysql.sock是一个临时文件,在mysql启动时会自动生成,我的服务器未启动,自然就没有mysql.sock文件。

    我尝试安全启动模式,mysqld_safe试图通过工作目录找到服务器和数据库,但mysqld_safe还是失败。

   >$ mysqld_safe &
     Starting mysqld daemon with databases from ....../mysql/var 
     STOPPING server from pid file   .......pid

     130802 15:17:11 mysqld ended

    各种命令尝试无效的情况下—-学会看错误日志。查看配置文件中log的存储位置:

>$ vim /etc/my.cnf

log_error= /var/log/mysql/error.log

    打开error.log,发现错误:

>$ vim /var/log/mysql/error.log


[ERROR] /usr/sbin/mysqld: unknown variable 'default-character-server=utf8'

    再次打开配置文件my.cnf,才发现修改[mysqld]下面的默认编码格式的时候出现错误,修改之并保存。再次启动安全模式,成功!

>$ mysqld_safe &

    启动mysql,成功!

>$ /etc/init.d/mysql start

    登录mysql,成功!

>$ mysql -u root -p

遇到问题----Can't connect to local MySQL server through socket '/tmp/mysql.sock'

Can't connect to local MySQL server through socket '/tmp/mysql.sock' 提示得很清楚 就是连接的时候要/tmp路径下找一个mysq...
  • q383965374
  • q383965374
  • 2013年11月05日 11:32
  • 26640

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

今天服务器遇到了一个很熟悉的问题 输入#mysql -u root -p ERROR 2002 (HY000):Cant connect to local MySQL server  随即上网找寻答案...
  • lmss82
  • lmss82
  • 2009年08月05日 22:42
  • 176936

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'

author:skatetime :2009/10/23 今天同时问我一个关于mysql的问题,记录一下 错误提示:root@localhost ~]# mysql --socket=/tmp/mys...
  • wyzxg
  • wyzxg
  • 2009年10月23日 18:39
  • 48949

Linux下Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ mysql service 无法正常启动和关闭

Ubuntu下Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ mysql service 无法正常启动和关...
  • dongfangxiaozi_
  • dongfangxiaozi_
  • 2017年06月10日 09:43
  • 1467

解决问题Can’t connect to local MySQL server through socket

摘自http://blog.yousri.org/2009/02/23/mysql-error-2002-mysqlsock.html     不幸遇到Mysql出现ERROR 2002 (HY000...
  • bocycn
  • bocycn
  • 2010年01月07日 15:06
  • 11301

mac终端运行mysql出现Can't connect to local MySQL server through socket '/tmp/mysql.sock'

打开mac的终端,输入mysql -u root -p****** 之后,出现Can't connect to local MySQL server through socket '/tmp/mysq...
  • huanghanqian
  • huanghanqian
  • 2017年03月25日 12:05
  • 4306

Ubuntu14连接MySql报错“can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock'”

起因:我在Ubuntu14 64位系统中安装mysql后,后来通过mysql -u用户名 -p密码 的命令连接             Mysql数据库时,报错"can't connect to lo...
  • qingyuanluofeng
  • qingyuanluofeng
  • 2016年05月26日 17:11
  • 11458

MySQL "Can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock'"问题的解决办法

    今天安装了MySQL 5.5的社区里程碑版,按照顺序,我先卸载了以前的5.0版,然后依照顺序分别安装了服务器、客户端(rpm版)。    谁知在执行mysql命令的时候,总是提示:"Cant ...
  • derryzhang
  • derryzhang
  • 2009年12月22日 11:16
  • 5690

阿里云centos Can't connect to local MySQL server through socket '/tmp/mysql.sock'

昨天在服务器上升级安装了python,费了点劲。 今天发现mysql上不去了,提示 mysql -uroot 提示 Can't connect to local MySQL server throug...
  • u010703523
  • u010703523
  • 2015年03月01日 07:08
  • 1223

启动SQL提示"Can't connect to local MySQL server through socket '/tmp/mysql.sock"参考解决方案

写了个脚本可以定时访问本地安装的mySQL,启动本地sql时,突然报下面错误: ERROR 2002 (HY000): Can't connect to local MySQL server ...
  • lizitao
  • lizitao
  • 2016年11月17日 14:09
  • 2658
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:配置mysql默认编码格式 && 解决Can't connect to local MySQL server through socket 问题
举报原因:
原因补充:

(最多只允许输入30个字)