mysql乱码是比较常见的,主要是安装的时候没注意编码的设置
出现乱码 不要慌,俩个命令来帮忙
>mysql show variables like '%chara%';
+--------------------------+----------------------------+
| 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> show variables like '%coll%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
检查是否有编码 不为utf8的,把它改过来 看看插入数据数据是否还存在乱码,前提是你给数据的时候数据是正常的啊~
改过来方法网上比较多,针对不同的两台机器,同一种方法 结果行不通!!??
其实都是修改配置文件
$vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
default-character-set=utf8
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
lower_case_table_name=1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
default-character-set=utf8
通过修改[mysqld] 和 [client]目录 增加default-character-set=utf8
然后重启
$/etc/init.d/mysql restart
就搞定了
但是另外一台服务器 硬是不行,在mysqld目录增加default-character-set=utf8 后,
重启服务起不来,报MySQL...The server quit without updating PID file。。。。错误
百度后。。。。修改/etc/my.cnf
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
character_set_server=utf8
#skip-name-resolve
lower_case_table_names=1
重启服务,竟然,使用俩个show命令,居然OK了