【Mysql】character-set-server引數

楊奇龍發表於2011-10-27
對於資料庫級的字符集,如果沒有辦法重建資料庫,可以在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 */
1 row in set (0.00 sec)
ERROR: 
No query specified

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-709813/,如需轉載,請註明出處,否則將追究法律責任。

相關文章