新安裝mysql設定root帳號C:\mysql\bin> mysql mysqlmysql> delete from user where host='localhost' and user='';mysql> quitC:\mysql\bin> mysqladmin reloadC:\mysql\bin> mysqladmin -u root password "密碼"或是C:\mysql\bin> mysql -u rootmysql> SET PASSWORD FOR root@localhost=PASSWORD('新密碼');
- 11月 23 週五 200720:11
新安裝mysql設定root帳號
- 11月 23 週五 200719:58
big5網頁及資料庫轉utf8程序
網頁使用「utf-8」、mysql語法使用「utf8」(中間沒有一橫)。 全部網頁轉 utf8 編碼。 modifybig5.php 把「許蓋功」處理程式註解起來不執行。 sample_mail.php 等寄信程式檢查編碼,需改為utf-8。 db_mysql.php 的function openDB($database)加上編碼設定
$charset = mysql_query("SET NAMES utf8;");
$charset = mysql_query("SET CHARACTER_SET_CLIENT=utf8;");
$charset = mysql_query("SET CHARACTER_SET_RESULTS=utf8;"); mysqldump 匯出 big5 資料庫資料,複製一份作備份檔。 匯出的 big5 資料庫資料把「許蓋功」的反斜線清掉,資料轉 utf8 編碼。 重新建立資料庫,把資料匯回去資料庫。
$charset = mysql_query("SET NAMES utf8;");
$charset = mysql_query("SET CHARACTER_SET_CLIENT=utf8;");
$charset = mysql_query("SET CHARACTER_SET_RESULTS=utf8;"); mysqldump 匯出 big5 資料庫資料,複製一份作備份檔。 匯出的 big5 資料庫資料把「許蓋功」的反斜線清掉,資料轉 utf8 編碼。 重新建立資料庫,把資料匯回去資料庫。
- 11月 23 週五 200719:55
mysql升級及編碼
【指令】 匯出 mysqldump 匯出整個資料庫 mysqldump -u[username] --password=[password] [db_name] > [file_name]
例:mysqldump -uroot --password=1234 test_db > test_db.sql 匯出某個資料表 mysqldump -u[username] --password=[password] [db_name] [table_name] > [file_name]
例:mysqldump -uroot --password=1234 test_db test_table > test_db.sql 以某種編碼匯出 mysqldump --default-character-set=latin1 -u[username] --password=[password] [db_name] > [file_name]
例:mysqldump --default-character-set=latin1 -uroot --password=1234 test_db > test_db.sql 顯示mysql資訊SHOW語法(在shell下可使用mysqlshow) 顯示MySql設定資訊 mysql語法:show variables;
php語法:mysql_query(”show variables”);
mysql語法:show variables like '%big5%';
php語法:mysql_query(”show variables like '%big5%'”);
shell>mysqladmin variables 顯示編碼 mysql語法:
php語法:mysql_query(”
mysql語法:
php語法:mysql_query(” 【亂碼問題】 未指定編碼方式時,MySQL的預設編碼是「latin1」。 由舊版MySQL升級至4.1版時,若mysqldump出來的資料是亂碼,需指定編碼是「latin1」。例:mysqldump --default-character-set=latin1 -uroot --password=1234 test_db > test_db.sql 資料dump出來以後,用DW開啟,如果是看到亂碼,改一下頁面屬性裡面的編碼方式看看。 【MySQL 升級到 4.1】 升級前要先把資料dump出來,升級後再import進去。 資料dump出來時要加上 「--default-character-set=latin1」,參考【亂碼問題】。 dump出來的資料要先轉成正確的編碼,因為原先dump出來的是偽裝成UTF-8的lantin1不是真正的UTF-8。
修改 my.cnf 或 my.ini 的編碼設定,參考【MySQL 4.1.x 記得要加在 my.cnf 的東西】。 資料import進去之前,mysql4.1的資料庫要設定好每一個database與table的編碼方式,sql檔最前面要加上 「set NAMES=utf8;」。 建立資料庫時,確定要加入這個選項
應該會是這樣的語法
建立資料表時,確定要加入這個選項
應該會是這樣的語法
create table art_activity(
id int unsigned not null auto_increment primary key, /* PK 資料序號 */
subject tinytext not null, /* 標題名稱 */
keyin_date datetime /* 資料建檔日期時間 */
) DEFAULT CHARSET=big5 COLLATE big5_chinese_ci;
剛剛dump出來的sql檔如果原先是Big5里面會有一些像是許功蓋這些字後面會多了一個”\“,記得用文字編輯器把他消掉
import進去時記得還要先修改一下dump出來的sql檔,在最前面加上
SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;
資料匯入時也可以下語法
mysql -uname -ppassword -Ddbname --default-character-set=utf8 < XXX.sql
當資料表都是 utf8 格式後. 你的 php 程式還是跑 big5 阿...這時候該怎麼辦呢?...
只要在連線資料庫後立刻執行下面的SQL語法,設定 client charset ....
SET NAMES big5;
SET CHARACTER_SET_CLIENT=big5;
SET CHARACTER_SET_RESULTS=big5;
這樣取出跟存入的資料就會自動轉碼...
PHP程式連線mysql在開啟資料庫時要加上
$charset = mysql_query("SET NAMES big5;");
$charset = mysql_query("SET CHARACTER_SET_CLIENT=big5;");
$charset = mysql_query("SET CHARACTER_SET_RESULTS=big5;"); 【MySQL 4.1.x 記得要加在 my.cnf 的東西】 [client]
default-character-set=utf8 [mysqld]
init_connect=‘SET NAMES utf8′
default-character-set=utf8
default-collation=utf8_general_ci [mysqldump]
default-character-set=utf8 [mysql]
default-character-set=utf8
例:mysqldump -uroot --password=1234 test_db > test_db.sql
例:mysqldump -uroot --password=1234 test_db test_table > test_db.sql
例:mysqldump --default-character-set=latin1 -uroot --password=1234 test_db > test_db.sql
php語法:mysql_query(”show variables”);
mysql語法:show variables like '%big5%';
php語法:mysql_query(”show variables like '%big5%'”);
shell>mysqladmin variables
SHOW CHARACTER SET;php語法:mysql_query(”
SHOW CHARACTER SET”);mysql語法:
SHOW CHARACTER SET like 'utf8';php語法:mysql_query(”
SHOW CHARACTER SET like 'utf8'”); #mysqldump -u帳號 -p –default-character-set=latin1 資料庫 >output.sql
#piconv -f utf8 -t big5 output.sql > big5.sql
#piconv -f big5 -t utf8 big5.sql >utf8.sql
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci應該會是這樣的語法
CREATE DATABASE `tmp` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
資料表的屬性也要確定為 COLLATE utf8_general_ci
不過直接新增資料表,為跟著資料庫的設定一起,便可以不用加上屬性
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci應該會是這樣的語法
create table art_activity(
id int unsigned not null auto_increment primary key, /* PK 資料序號 */
subject tinytext not null, /* 標題名稱 */
keyin_date datetime /* 資料建檔日期時間 */
) DEFAULT CHARSET=big5 COLLATE big5_chinese_ci;
import進去時記得還要先修改一下dump出來的sql檔,在最前面加上
SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;
再來把每個資料表後面的
TYPE=MyISAM;
改成
ENGINE=MyISAM DEFAULT CHARSET=utf8;
都改好後就可以把他import進去了
#mysql -u帳號 -p 資料庫 < utf8.sql
mysql -uname -ppassword -Ddbname --default-character-set=utf8 < XXX.sql
只要在連線資料庫後立刻執行下面的SQL語法,設定 client charset ....
SET NAMES big5;
SET CHARACTER_SET_CLIENT=big5;
SET CHARACTER_SET_RESULTS=big5;
這樣取出跟存入的資料就會自動轉碼...
$charset = mysql_query("SET NAMES big5;");
$charset = mysql_query("SET CHARACTER_SET_CLIENT=big5;");
$charset = mysql_query("SET CHARACTER_SET_RESULTS=big5;");
參考 default-character-set=utf8 [mysqld]
init_connect=‘SET NAMES utf8′
default-character-set=utf8
default-collation=utf8_general_ci [mysqldump]
default-character-set=utf8 [mysql]
default-character-set=utf8
1
