linux MYSQL 乱码问题

来源:互联网 发布:java应聘自我介绍 编辑:程序博客网 时间:2024/05/22 04:27

安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件;由于linux下MySQL的默认安装目录分布在不同的文件下;不像 windows一样放在同一目录下,只需修改其中的my.ini文件,重起后就生效了;所以先来看看linux下MySQL的数据库文件、配置文件和命令 文件分别在不同的目录 :

1、数据库目录,其所创建的数据库文件都在该目录下
/var/lib/mysql/

2、配置文件 (mysql.server命令及配置文件所在地)
/usr/share/mysql

3、相关命令(如mysql mysqladmin等)
/usr/bin

4、启动脚本(如mysql启动命令)
/etc/rc.d/init.d/


查看默认字符集

#mysql -u root - p

#(输入密码)

mysql> show variables like 'character_set%' ;
+--------------------------+----------------------------+
| Variable_name             | Value                       |
+--------------------------+----------------------------+
| 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      | utf8                        |
| character_sets_dir        | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

修改字符集 :

1.查找/etc目录下是否有my.cnf文件;

 #ls -l | grep my.cnf (在/etc下查找是否有my.cnf文件存在)

2.如果没有就要从/usr/share/mysql,拷贝一个到/etc 下,在/usr/share/mysql目录下有五个后缀为.cnf的文件,分别是

my-huge.cnf    

my-innodb-heavy-4G.cnf    

my-large.cnf   

my-medium.cnf     

my-small.cnf

从中随便拷贝一个到/etc目录下并将其改为my.cnf文件,我选择的是my-medium.cnf :
#cp /usr/share/mysql/my-medium.cnf    /etc/my.cnf

3.修改my.cnf文件,在该文件中的三个地方加上 default-character-set=utf8([client] [mysqld] [mysql]

#vi /etc/my.cnf

修改如下:(红色为添加部分)

[client]
#password        = your_password
 port             = 3306
 socket           = /var/lib/mysql/mysql.sock
 default-character-set=utf8 (经过验证好像这一步不用设置也可以达到效果)

 [mysqld]
 port             = 3306
 socket           = /var/lib/mysql/mysql.sock
 skip-locking
 key_buffer = 16M
 max_allowed_packet = 1M
 table_cache = 64
 sort_buffer_size = 512K
 net_buffer_length = 8K
 read_buffer_size = 256K
 read_rnd_buffer_size = 512K
 myisam_sort_buffer_size = 8M
 default-character-set=utf8
 init_connect='SET NAMES utf8'

  [mysql]
  no-auto-rehash
 default-character-set=utf8
  保存退出;

 4.重起MySQL服务器,使其设置的内容生效

 #/etc/init.d/mysql restart

 5. 重新登入mysql;

 # mysql -u root - p

 #(输入密码)

 mysql> show variables like 'character_set%' ;
+--------------------------+----------------------------+
| Variable_name             | Value                       |
+--------------------------+----------------------------+
| character_set_client      | utf8                        |
| character_set_connection | utf8                        |(都生成了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/ |
+--------------------------+----------------------------+

 mysql启动和停止 操作 :

 可以通过 #/etc/init.d/mysql    [start | stop | restart](实现启动,停止,重启)

 也可以通过 #service mysql [start | stop | restart](实现启动,停止,重启)

 

另转:

全部默认utf8

 linux终端utf-8

方法一:

 

LANG="en_US.UTF-8"

SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"

SYSFONT="latarcyrheb-sun16"

方法二:
vi /etc/profile
export LC_ALL="en_US.UTF-8"
mysql 
vi /etc/my.cnf
[client]
default-character-set=uft8
[mysqld]
default-character-set=utf8
init_connect='SET NAMES utf8'

原创粉丝点击