国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

學習PHP:詳解mysql4.0以后的編碼配置

2024-07-24 12:57:02
字體:
來源:轉載
供稿:網友

簡要說一下mysql4.1以后的問題
第一:mysql4.1的存儲方式已經是utf8的了。。也就是說他的文件編碼是utf8格式,我們不需要擔心會有存儲不了的字符
第二:mysql服務器需要以一種編碼方式來啟動,設定連接(通訊)過來的字符編碼是什么,就是所謂的我們的交流語言
第三:mysql的client端,需要設定一種編碼去和mysql的服務器端通訊,也是交流語言

那么為什么回出現亂碼哪?
就是出在這個連接的過程中,試想一個人用英文和你說話,而你只明白中文,真的和小燕子一樣,三塊肉喂了馬吃了。。

那么如何解決亂碼的問題哪?
有幾個辦法:
第一,服務器端mysql和客戶端mysql編譯時候用相同的charset
./configure --with-extra-charsets=big5,gbk,gb2312,utf8 --with-charset=utf8
其中--with-charset=utf8就是設定服務器或者客戶端的默認連接方式中的編碼,當然你可以用各種編碼,只要統一就可以。
(我感覺這個是嚇唬人的,因為就算你用--with-charset=gbk,在日文或者其他文字中也不會出現亂碼)
第二,在編譯后進行設置,這個也有兩種方式,讀配置文件,或者直接加參數
先說直接加參數的方式:
以下是我用的一個服務器腳本,用來啟動mysql

code:
#!/bin/sh
rundir=`dirname "$0"`
echo "$rundir"
/usr/local/soft/mysql4112/bin/mysqld_safe --user=mysql --pid-file="$rundir"/mysql.pid --datadir="$rundir"/var "$@"/-o max_connection
s=500 -o wait_timeout=60 -o key_buffer=32m --port=6000 --socket="$rundir"/mysql.sock --default-character-set=utf8 &


其中可以看到服務器啟動的連接編碼為utf8,當然你可以用別的方式比如gbk
客戶端那更容易了
/$mysqlpath/bin/mysql -hxxxx -uxxx -pxxx -p6000 --default-character-set=utf8
呵呵,然后你在mysql中看到mysql>show variables;
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8
說一下參數
character_set_system | utf8 這個是系統的文件編碼,所有的都是utf8
| character_set_database | utf8 這個就是我們服務器的啟動的時候設置的編碼
其他幾項是客戶端的連接編碼

然后說通過my.cnf設置的方法,這個也分服務器和客戶端的方式
編譯的時候我們可以通過--sysconfdir=/etc的方式設置my.cnf的讀取目錄

my.cnf的配置,cnf在client端和server端的設置是一樣的,位置不同
以下是client端my.cnf一腳

code:
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
default-character-set=utf8


看一下就明白了,服務器端同理,不過是在[mysqld]下。

ps:my.cnf的位置是個問題,如果編譯的時候不設置sysconfdir的話,默認是在mysql的安裝目錄下的etc下面,這個目錄需要你自己建一個,使用client端連接既可以讀取。
php有個問題,他的mysql連接不會讀取mysql目錄下的,而是讀取/etc的根目錄中的配置文件,不知道是不是個bug

ps:如何找到適合我自己的my.cnf文件那,這個是在mysql安裝目錄下的share/mysql/中,其中有
my-small.cnf
my-medium.cnf
my-large.cnf
my-huge.cnf
my-innodb-heavy-4g.cnf
分別對應數據庫的大小設置相應的配置文件,這些設置的不同只對server端起作用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴彦淖尔市| 疏附县| 自治县| 疏勒县| 栾城县| 新疆| 东丰县| 伊春市| 婺源县| 韶关市| 桃园县| 周至县| 玉树县| 本溪| 科技| 承德市| 汉源县| 杭锦后旗| 迁西县| 平顶山市| 古田县| 曲松县| 襄垣县| 弋阳县| 东莞市| 巴马| 新晃| 渭源县| 和龙市| 大同县| 漳浦县| 密云县| 中山市| 镇江市| 伊金霍洛旗| 白沙| 石林| 神池县| 疏勒县| 和政县| 都江堰市|