天天看點

【Mysql】character-set-server參數

對于資料庫級的字元集,如果沒有辦法重建資料庫,可以在my.cnf檔案中使用character-set-server = utf8(要重新開機資料庫服務),對于之前已經存在資料庫,此參數不産生影響。如果之前的資料庫A是latin1,在A中建立的表預設還是latin1,除非指定DEFAULT CHARSET!然而對于建立的資料庫,則繼承 my.cnf檔案中使用character-set-server = utf8!

[root@rac3 ~]# more /etc/my.cnf 

[mysqld]

datadir=/var/lib/mysql

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

user=mysql

old_passwords=1

character-set-server = utf8 

關閉資料庫服務,并重新啟動!

[root@rac3 ~]# mysqladmin shutdown

[root@rac3 ~]# mysqld_safe &

[1] 15102

[root@rac3 ~]# Starting mysqld daemon with databases from /var/lib/mysql

[root@rac3 ~]# mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show variables like '%server%';

+----------------------+-----------------+

| Variable_name        | Value           |

| character_set_server | utf8            | 

| collation_server     | utf8_general_ci | 

| server_id            | 0               | 

3 rows in set (0.00 sec)

--重建立立資料庫,檢視其預設字元集:為utf8

mysql> create database yql;

Query OK, 1 row affected (0.00 sec)

mysql> use yql;

Database changed

建立表的預設字元集和資料庫的預設字元集一緻!

mysql> create table t(id int);

Query OK, 0 rows affected (0.00 sec)

mysql> show create table t;

+-------+-------------------------------------------------------------------------------------+

| Table | Create Table                                                                        |

| t     | CREATE TABLE `t` (

  `id` int(11) default NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8 | 

1 row in set (0.00 sec)

mysql> show create database yql \G;  

*************************** 1. row ***************************

       Database: yql

Create Database: CREATE DATABASE `yql` /*!40100 DEFAULT CHARACTER SET utf8 */

ERROR: 

No query specified