mysql几个常见问题汇总

时间:2022-09-17 10:07:12

mysql几个常见问题汇总


一.

  1. mysql下的清屏命令

    \! clear;Ctrl+shift+L;Ctrl+L

    Linux下的清屏命令

    Clear ; Ctrl+L; Shift+ctrl+L




二. 查看mysql版本的四种方法

  1:在终端下:mysql -V。 以下是代码片段:

  [shengting@login ~]$ mysql -V
  mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)

  2:在mysql中:mysql> status;
  以下是代码片段:
  mysql> status;
  --------------
  mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)
  Connection id:          416
  SSL:                    Not in use
  Current pager:          stdout
  Using outfile:          ''
  Using delimiter:        ;
  Server version:         3.23.56-log
  Protocol version:       10
  Connection:             Localhost via UNIX socket
  Client characterset:    latin1
  Server characterset:    latin1
  UNIX socket:            /tmp/mysql_3311.sock
  Uptime:                 62 days 21 hours 21 min 57 sec
   Threads: 1 Questions: 584402560 Slow queries: 424 Opens: 59664208 Flush tables: 1 Open tables: 64 Queries per second avg: 107.551

  3:在help里面查找
  以下是代码片段:
  [shengting@login ~]$ mysql --help | grep Distrib
  mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)

  4:使用mysql的函数
  以下是代码片段:
  mysql> select version();
  +-------------+
  | version()   |
  +-------------+
  | 3.23.56-log |
  +-------------+
  1 row in set (0.00 sec)



三.  

mysql 字符集

一). 显示字符集
mysqladmin -uroot -proot variables | grep character     或者 


在mysql命令模式下show variables like '%char%' ;

| character_set_client            | latin1                           |
| character_set_connection        | latin1                           |
| character_set_database          | latin1                           |
| character_set_results           | latin1                           |
| character_set_server            | latin1                           |
| character_set_system            | utf8                             |
| character_sets_dir              | /usr/local/share/mysql/charsets/ |

数据库缺省使用latin1 (ISO-8859)


二). 配置字符集

1. 建库时配置字符集

create database testxxx default charset=utf8

3. 建表时配置字符集

CREATE TABLE `t_agent` (
  `ID` smallint(5) NOT NULL
)  DEFAULT CHARSET=utf8 ;

4. 修改字符集

Windows平台
windows下的mysql配置文件是my.ini,一般在c:\windows\my.ini或者c:\winnt\my.ini可以直接在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
service mysql restart

/etc/init.d/mysql restart
或用其他方法重新启动,就生效了。 



[编辑]Unix平台
linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:
find / -iname my.cnf
在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8

然后重新启动mysql 


注:如果启动报错如下:

/usr/libexec/mysqld: unknown variable 'default_character_set=utf8'


则可以用character_set_server=utf8 来取代 default-character-set=utf8   能解决这个问题,


修改默认字符集的另外方法:

(2) 还有一种修改mysql默认字符集的方法,就是使用mysql的命令

    mysql> SET character_set_client = utf8 ;  
    mysql> SET character_set_connection = utf8 ;   
    mysql> SET character_set_database = utf8 ;   
    mysql> SET character_set_results = utf8 ;    
    mysql> SET character_set_server = utf8 ;   
     
    mysql> SET collation_connection = utf8 ;  
    mysql> SET collation_database = utf8 ;   
    mysql> SET collation_server = utf8 ;

一般就算设置了表的mysql默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:

    SET NAMES 'utf8';  

它相当于下面的三句指令:

    SET character_set_client = utf8;  
    SET character_set_results = utf8;   
    SET character_set_connection = utf8;




本文出自 “技术成就梦想” 博客,请务必保留此出处http://pizibaidu.blog.51cto.com/1361909/1618728